Files
dali_cpp/include/bacnet_bridge.hpp
T

44 lines
1.3 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;
BridgeOperation operation = BridgeOperation::unknown;
BridgeDaliTarget target;
};
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_;
};