#pragma once #include "bridge.hpp" #include #include #include #include struct BacnetBridgeConfig { uint32_t deviceInstance = 4194303; std::string localAddress; uint16_t udpPort = 47808; }; struct BacnetObjectBinding { std::string modelID; BridgeObjectType objectType = BridgeObjectType::unknown; int objectInstance = -1; std::string property; BridgeOperation operation = BridgeOperation::unknown; BridgeDaliTarget target; }; class DaliBacnetBridge { public: explicit DaliBacnetBridge(DaliBridgeEngine& engine); void setConfig(const BacnetBridgeConfig& config); const BacnetBridgeConfig& config() const; DaliBridgeResult handlePropertyWrite(BridgeObjectType objectType, int objectInstance, const std::string& property, const DaliValue& value) const; std::optional findObject(BridgeObjectType objectType, int objectInstance, const std::string& property) const; std::vector describeObjects() const; private: DaliBridgeEngine& engine_; BacnetBridgeConfig config_; };