7424b43bdd
- Introduced new enum value `kShortDiagnosticBit` to `GatewayModbusGeneratedKind`. - Enhanced `GatewayModbusPoint` and `GatewayModbusPointBinding` structures to include diagnostic snapshot, boolean key, and device type. - Added new diagnostic bit specifications and updated the corresponding arrays for generated discrete inputs and holding registers. - Implemented `addGeneratedDiagnosticPoint` function to handle the creation of diagnostic points. - Updated `rebuildMap` method to include generated diagnostic points during the map rebuilding process. Co-authored-by: Copilot <copilot@github.com>
56 lines
1.8 KiB
C++
56 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include "bridge.hpp"
|
|
|
|
#include <cstdint>
|
|
#include <optional>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace gateway {
|
|
|
|
struct GatewayBacnetBridgeConfig {
|
|
uint32_t deviceInstance{4194303};
|
|
std::string localAddress;
|
|
uint16_t udpPort{47808};
|
|
};
|
|
|
|
struct GatewayBacnetModelBinding {
|
|
std::string modelID;
|
|
BridgeObjectType objectType{BridgeObjectType::unknown};
|
|
int objectInstance{-1};
|
|
std::string property;
|
|
BridgeOperation operation{BridgeOperation::unknown};
|
|
BridgeDaliTarget target;
|
|
std::optional<int> bitIndex;
|
|
};
|
|
|
|
class GatewayBacnetBridgeAdapter {
|
|
public:
|
|
explicit GatewayBacnetBridgeAdapter(DaliBridgeEngine& engine);
|
|
|
|
void setConfig(const GatewayBacnetBridgeConfig& config);
|
|
const GatewayBacnetBridgeConfig& config() const;
|
|
|
|
DaliBridgeResult handlePropertyWrite(BridgeObjectType object_type,
|
|
int object_instance,
|
|
const std::string& property,
|
|
const DaliValue& value) const;
|
|
DaliBridgeResult readProperty(BridgeObjectType object_type,
|
|
int object_instance,
|
|
const std::string& property) const;
|
|
std::optional<GatewayBacnetModelBinding> findObject(BridgeObjectType object_type,
|
|
int object_instance,
|
|
const std::string& property) const;
|
|
std::vector<GatewayBacnetModelBinding> describeObjects() const;
|
|
|
|
private:
|
|
DaliBridgeResult executeBinding(const GatewayBacnetModelBinding& binding,
|
|
const std::string& sequence,
|
|
const DaliValue* value) const;
|
|
|
|
DaliBridgeEngine& engine_;
|
|
GatewayBacnetBridgeConfig config_;
|
|
};
|
|
|
|
} // namespace gateway
|