Enhance DALI bridge: add BridgeOperation and BridgeDaliTarget support, refactor address resolution and provisioning methods

This commit is contained in:
Tony
2026-05-02 21:33:57 +08:00
parent 16907857c0
commit 307c480aa0
8 changed files with 285 additions and 102 deletions
+13
View File
@@ -25,6 +25,12 @@ enum class BridgeObjectType {
multiStateValue = 9,
};
enum class BridgeDaliTargetKind {
shortAddress = 0,
group = 1,
broadcast = 2,
};
enum class BridgeOperation {
unknown = 0,
send = 1,
@@ -46,6 +52,7 @@ enum class BridgeOperation {
getEmergencyFailureStatus = 17,
startEmergencyFunctionTest = 18,
stopEmergencyTest = 19,
startEmergencyDurationTest = 20,
};
enum class BridgeValueEncoding {
@@ -80,12 +87,15 @@ struct BridgeExternalPoint {
};
struct BridgeDaliTarget {
BridgeDaliTargetKind kind = BridgeDaliTargetKind::shortAddress;
std::optional<int> shortAddress;
std::optional<int> groupAddress;
std::optional<int> rawAddress;
std::optional<int> rawCommand;
static BridgeDaliTarget fromJson(const DaliValue::Object* json);
DaliValue::Object toJson() const;
std::optional<int> logicalAddress() const;
};
struct BridgeModel {
@@ -110,6 +120,9 @@ BridgeProtocolKind bridgeProtocolKindFromString(const std::string& value);
const char* bridgeObjectTypeToString(BridgeObjectType type);
BridgeObjectType bridgeObjectTypeFromString(const std::string& value);
const char* bridgeDaliTargetKindToString(BridgeDaliTargetKind kind);
BridgeDaliTargetKind bridgeDaliTargetKindFromString(const std::string& value);
const char* bridgeOperationToString(BridgeOperation operation);
BridgeOperation bridgeOperationFromString(const std::string& value);