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.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include "bridge.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
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<BacnetObjectBinding> findObject(BridgeObjectType objectType,
|
||||
int objectInstance,
|
||||
const std::string& property) const;
|
||||
std::vector<BacnetObjectBinding> describeObjects() const;
|
||||
|
||||
private:
|
||||
DaliBridgeEngine& engine_;
|
||||
BacnetBridgeConfig config_;
|
||||
};
|
||||
Reference in New Issue
Block a user