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,40 @@
|
||||
#pragma once
|
||||
|
||||
#include "bacnet_bridge.hpp"
|
||||
#include "bridge_model.hpp"
|
||||
#include "modbus_bridge.hpp"
|
||||
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#ifdef ESP_PLATFORM
|
||||
extern "C" {
|
||||
#include "esp_err.h"
|
||||
}
|
||||
#else
|
||||
using esp_err_t = int;
|
||||
#endif
|
||||
|
||||
struct BridgeRuntimeConfig {
|
||||
std::vector<BridgeModel> models;
|
||||
std::optional<ModbusBridgeConfig> modbus;
|
||||
std::optional<BacnetBridgeConfig> bacnet;
|
||||
DaliValue::Object metadata;
|
||||
|
||||
static BridgeRuntimeConfig fromJson(const DaliValue::Object& json);
|
||||
DaliValue::Object toJson() const;
|
||||
};
|
||||
|
||||
class BridgeProvisioningStore {
|
||||
public:
|
||||
explicit BridgeProvisioningStore(std::string nvsNamespace = "dali_bridge")
|
||||
: nvsNamespace_(std::move(nvsNamespace)) {}
|
||||
|
||||
esp_err_t save(const BridgeRuntimeConfig& config) const;
|
||||
esp_err_t load(BridgeRuntimeConfig* config) const;
|
||||
esp_err_t clear() const;
|
||||
|
||||
private:
|
||||
std::string nvsNamespace_;
|
||||
};
|
||||
Reference in New Issue
Block a user