feat(gateway): add support for DALI scene handling and relative brightness adjustments
Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
@@ -43,6 +43,8 @@ class EtsDeviceRuntime {
|
||||
void setProgrammingMode(bool enabled);
|
||||
void toggleProgrammingMode();
|
||||
EtsMemorySnapshot snapshot() const;
|
||||
uint8_t paramByte(uint32_t addr) const;
|
||||
bool paramBit(uint32_t addr, uint8_t shift) const;
|
||||
|
||||
// Accessors for OpenKNX integration (DIB construction, IP parameter object).
|
||||
DeviceObject& deviceObject();
|
||||
|
||||
@@ -86,6 +86,8 @@ enum class GatewayKnxDaliDataType : uint8_t {
|
||||
kBrightness = 2,
|
||||
kColorTemperature = 3,
|
||||
kRgb = 4,
|
||||
kBrightnessRelative = 5,
|
||||
kScene = 6,
|
||||
};
|
||||
|
||||
enum class GatewayKnxDaliTargetKind : uint8_t {
|
||||
@@ -143,6 +145,7 @@ class GatewayKnxBridge {
|
||||
explicit GatewayKnxBridge(DaliBridgeEngine& engine);
|
||||
|
||||
void setConfig(const GatewayKnxConfig& config);
|
||||
void setRuntimeContext(const openknx::EtsDeviceRuntime* runtime);
|
||||
const GatewayKnxConfig& config() const;
|
||||
size_t etsBindingCount() const;
|
||||
|
||||
@@ -164,6 +167,8 @@ class GatewayKnxBridge {
|
||||
GatewayKnxDaliDataType data_type,
|
||||
GatewayKnxDaliTarget target,
|
||||
const uint8_t* data, size_t len);
|
||||
DaliBridgeResult executeReg1SceneWrite(uint16_t group_address, const uint8_t* data,
|
||||
size_t len);
|
||||
DaliBridgeResult executeEtsBindings(uint16_t group_address,
|
||||
const std::vector<GatewayKnxDaliBinding>& bindings,
|
||||
const uint8_t* data, size_t len);
|
||||
@@ -194,6 +199,7 @@ class GatewayKnxBridge {
|
||||
|
||||
DaliBridgeEngine& engine_;
|
||||
GatewayKnxConfig config_;
|
||||
const openknx::EtsDeviceRuntime* runtime_{nullptr};
|
||||
std::map<uint16_t, std::vector<GatewayKnxDaliBinding>> ets_bindings_by_group_address_;
|
||||
bool commissioning_scan_done_{true};
|
||||
bool commissioning_assign_done_{true};
|
||||
|
||||
Reference in New Issue
Block a user