Refactor DALI component: remove BACnet bridge support and update related documentation

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Tony
2026-05-04 02:25:39 +08:00
parent 402d6a451b
commit fa4acef881
9 changed files with 6 additions and 181 deletions
+2 -3
View File
@@ -1,6 +1,6 @@
# ESP32-S3 Bridge Example
This ESP-IDF example wires `dali_cpp` into a standalone application and demonstrates how to register strongly typed bridge and BACnet models. Modbus runtime support now lives in the native gateway project.
This ESP-IDF example wires `dali_cpp` into a standalone application and demonstrates how to register strongly typed bridge models. Modbus and BACnet runtime support now live in the native gateway project.
## Environment
@@ -21,9 +21,8 @@ idf.py build
- `DaliBridgeEngine` resolving model bindings.
- `BridgeProvisioningStore` loading and saving model/config state in NVS.
- `DaliBacnetBridge` mapping BACnet property writes to DALI brightness percentage updates.
- Placeholder DALI gateway callbacks where you can connect your UART transport.
## Modbus Notes
The gateway implementation in `gateway/components/gateway_modbus` owns Modbus TCP, generated DALI point tables, and provisioned Modbus overrides. Use `gateway/apps/gateway` to exercise Modbus behavior.
The gateway implementation in `gateway/components/gateway_modbus` owns Modbus TCP, generated DALI point tables, and provisioned Modbus overrides. `gateway/components/gateway_bacnet` owns BACnet/IP object publishing and present-value routing. Use `gateway/apps/gateway` to exercise protocol behavior.
-37
View File
@@ -1,4 +1,3 @@
#include "bacnet_bridge.hpp"
#include "bridge.hpp"
#include "bridge_model.hpp"
#include "bridge_provisioning.hpp"
@@ -56,32 +55,10 @@ BridgeModel makeStatusQueryModel() {
return model;
}
BridgeModel makeBacnetBrightnessModel() {
BridgeModel model;
model.id = "bacnet-zone-2";
model.name = "BACnet zone 2 level";
model.protocol = BridgeProtocolKind::bacnet;
model.external.network = "floor-2";
model.external.device = "bacnet-controller";
model.external.objectType = BridgeObjectType::analogOutput;
model.external.objectInstance = 2;
model.external.property = "presentValue";
model.dali.shortAddress = 2;
model.operation = BridgeOperation::setBrightnessPercent;
model.valueEncoding = BridgeValueEncoding::percentage;
return model;
}
BridgeRuntimeConfig makeDefaultRuntimeConfig() {
BridgeRuntimeConfig config;
config.models.push_back(makeBrightnessModel());
config.models.push_back(makeStatusQueryModel());
config.models.push_back(makeBacnetBrightnessModel());
BacnetBridgeConfig bacnet;
bacnet.deviceInstance = 1001;
bacnet.localAddress = "192.168.10.20";
config.bacnet = bacnet;
config.metadata["example"] = "esp32s3_bridge";
return config;
@@ -115,26 +92,12 @@ extern "C" void app_main(void) {
engine.upsertModel(model);
}
static DaliBacnetBridge bacnet(engine);
BacnetBridgeConfig bacnet_config = runtime_config.bacnet.value_or(BacnetBridgeConfig{});
bacnet.setConfig(bacnet_config);
for (const auto& binding : bacnet.describeObjects()) {
ESP_LOGI(kTag, "bacnet binding model=%s object=%s:%d property=%s",
binding.modelID.c_str(), bridgeObjectTypeToString(binding.objectType),
binding.objectInstance, binding.property.c_str());
}
DaliBridgeRequest brightness_request;
brightness_request.sequence = "startup-brightness";
brightness_request.modelID = "line-1-brightness";
brightness_request.value = 180;
logResult("bridge brightness", engine.execute(brightness_request));
const DaliBridgeResult bacnet_result =
bacnet.handlePropertyWrite(BridgeObjectType::analogOutput, 2, "presentValue", 75.0);
logResult("bacnet write", bacnet_result);
DaliBridgeRequest status_request;
status_request.sequence = "startup-status";
status_request.modelID = "line-1-status";