Files
dali_cpp/include/bacnet_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

42 lines
1.2 KiB
C++

#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_;
};