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:
Tony
2026-04-22 10:14:42 +08:00
parent ec5f36b581
commit 21afc6b942
22 changed files with 2045 additions and 35 deletions
+40
View File
@@ -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_;
};