Enhance DALI Component Configuration and Functionality
- Updated README.md to include new configuration options for native timing values, TX/RX polarity, power-down polling, and logging levels. - Introduced new default values for query response timeout and double-send delay in dali.c. - Implemented a function to drain stale RX frames from the queue to improve query handling. - Enhanced DALI HAL implementation in dali_hal_idf5.c with additional configuration options for timer resolution and bus power check intervals. - Added logging capabilities to track bus states and message transmissions in the DALI HAL. - Improved error handling and message response mechanisms in dali_domain.cpp and gateway_usb_setup.cpp for better communication reliability. - Refactored GPIO handling to support configurable TX/RX active states in dali_hal.h. - Introduced legacy query response handling for backward compatibility in the DALI domain. Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
@@ -82,6 +82,19 @@ void GatewayUsbSetupBridge::handleBytes(const uint8_t* data, size_t len) {
|
||||
}
|
||||
|
||||
const uint8_t gateway_id = setupGatewayId();
|
||||
if (data[0] == 0x12) {
|
||||
const auto response = dali_domain_.transactBridgeFrame(gateway_id, data, len);
|
||||
if (!response.empty()) {
|
||||
const int written = usb_serial_jtag_write_bytes(response.data(), response.size(),
|
||||
pdMS_TO_TICKS(config_.write_timeout_ms));
|
||||
if (written < 0 || static_cast<size_t>(written) != response.size()) {
|
||||
ESP_LOGW(kTag, "failed to write USB raw query response channel=%u len=%u",
|
||||
config_.channel_index, static_cast<unsigned>(response.size()));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dali_domain_.writeBridgeFrame(gateway_id, data, len)) {
|
||||
ESP_LOGW(kTag, "failed to write USB raw setup frame channel=%u len=%u", config_.channel_index,
|
||||
static_cast<unsigned>(len));
|
||||
|
||||
Reference in New Issue
Block a user