fix(gateway): enhance DALI logging and error handling in gateway_knx

Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
Tony
2026-05-21 13:22:38 +08:00
parent e8bf8c56cd
commit 7ab1855295
2 changed files with 51 additions and 3 deletions
@@ -15,10 +15,14 @@
#include "gateway_knx.hpp"
#include "gateway_modbus.hpp"
#include "gateway_provisioning.hpp"
#include "log.hpp"
#include "security_storage.h"
#include "cJSON.h"
#include "driver/uart.h"
#ifndef LOG_LOCAL_LEVEL
#define LOG_LOCAL_LEVEL ESP_LOG_DEBUG
#endif
#include "esp_log.h"
#include "freertos/semphr.h"
#include "lwip/inet.h"
@@ -44,6 +48,7 @@ namespace gateway {
namespace {
constexpr const char* kTag = "gateway_bridge";
constexpr const char* kDaliCppLogTag = "dali_cpp";
constexpr const char* kBridgeConfigKey = "bridge_cfg";
constexpr const char* kDiscoveryInventoryKey = "bridge_disc";
constexpr int kMaxDaliShortAddress = 63;
@@ -58,6 +63,16 @@ constexpr uint32_t kBacnetReliabilityCommunicationFailure = 12;
constexpr const char* kModbusManagementPrefix = "@DALIGW";
constexpr uint8_t kDaliGroupRawMin = 0x80;
constexpr uint8_t kDaliGroupRawMax = 0x9F;
void ConfigureDaliCppLogging() {
static bool configured = false;
if (configured) return;
configured = true;
DaliLog::instance().setLevel(LogLevel::debug);
DaliLog::instance().setSink([](const std::string& line) {
ESP_LOGD(kDaliCppLogTag, "%s", line.c_str());
});
}
constexpr uint8_t kDaliCmdOff = 0x00;
constexpr uint8_t kDaliCmdRecallMax = 0x05;
@@ -3938,6 +3953,7 @@ GatewayBridgeService::GatewayBridgeService(DaliDomainService& dali_domain,
GatewayBridgeService::~GatewayBridgeService() = default;
esp_err_t GatewayBridgeService::start() {
ConfigureDaliCppLogging();
if (!config_.bridge_enabled) {
ESP_LOGI(kTag, "bridge service disabled");
return ESP_OK;