#pragma once #include "bridge.hpp" #include #include #include #include struct ModbusBridgeConfig { std::string transport = "tcp"; std::string host; uint16_t port = 502; uint8_t unitID = 1; }; struct ModbusRegisterBinding { std::string modelID; int registerAddress = -1; }; class DaliModbusBridge { public: explicit DaliModbusBridge(DaliBridgeEngine& engine); void setConfig(const ModbusBridgeConfig& config); const ModbusBridgeConfig& config() const; DaliBridgeResult handleHoldingRegisterWrite(int registerAddress, int value) const; std::optional findHoldingRegister(int registerAddress) const; std::vector describeHoldingRegisters() const; private: DaliBridgeEngine& engine_; ModbusBridgeConfig config_; };