Files
dali_cpp/include/modbus_bridge.hpp
T
Tony 21afc6b942 Implement DALI Bridge Engine and Model Management
- Added `bridge.cpp` to handle DALI bridge operations including model management, command execution, and response formatting.
- Introduced `bridge_model.cpp` for defining bridge models, value transformations, and JSON serialization/deserialization.
- Created `bridge_provisioning.cpp` for managing bridge configuration storage and retrieval using NVS on ESP platform.
- Enhanced `gateway_cloud.cpp` to integrate DALI bridge requests and responses with cloud communication.
- Introduced `modbus_bridge.cpp` to handle Modbus-specific operations and register management.
- Implemented utility functions for converting between DaliValue and cJSON formats.
- Added error handling and metadata management in bridge responses.
2026-04-22 10:14:42 +08:00

36 lines
831 B
C++

#pragma once
#include "bridge.hpp"
#include <cstdint>
#include <optional>
#include <string>
#include <vector>
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<ModbusRegisterBinding> findHoldingRegister(int registerAddress) const;
std::vector<ModbusRegisterBinding> describeHoldingRegisters() const;
private:
DaliBridgeEngine& engine_;
ModbusBridgeConfig config_;
};