Fixed wrong datamodel in Level Cluster (#23656)
Added: Cluster code to LevelControlOptions Bitmap
Fixed: LevelControlOptions was defined wrong as Enum, Changed it to a Bitmap
Changed/Fixed: Level Cluster Attribute 15 (OPTIONS) datatype from BITMAP8 to LevelControlOptions (Bitmap8) type
Changed/Fixed: Level Command datatype for 'OptionsMask' and 'OptionsOverride' from BITMAP8 to LevelControlOptions
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index 62cf857..4f87fd2 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -300,6 +300,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -307,7 +312,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -320,55 +325,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index 9c29b7e..65d9b42 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -269,8 +269,13 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
@@ -278,55 +283,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index df5f85e..935c1c8 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -105,6 +105,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -112,7 +117,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -125,55 +130,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
index 46a52ab..e7583f9 100644
--- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -169,11 +169,16 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
readonly attribute command_id generatedCommandList[] = 65528;
@@ -185,55 +190,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter
index f5684bb..691f043 100644
--- a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter
+++ b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter
@@ -189,9 +189,14 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
readonly attribute command_id generatedCommandList[] = 65528;
@@ -203,55 +208,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
index 49f75ce..4ef2b98 100644
--- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -169,11 +169,16 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
readonly attribute command_id generatedCommandList[] = 65528;
@@ -185,55 +190,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
index e576750..6266fa4 100644
--- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
+++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
@@ -169,11 +169,16 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
readonly attribute command_id generatedCommandList[] = 65528;
@@ -185,55 +190,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
index d0ee4e4..e8b1081 100644
--- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
+++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
@@ -165,6 +165,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -178,55 +183,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
index c87555b..de8ed09 100644
--- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
+++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
@@ -169,11 +169,16 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
readonly attribute command_id generatedCommandList[] = 65528;
@@ -185,55 +190,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
index 7144dd9..acc8ff4 100644
--- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
+++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
@@ -162,10 +162,15 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
@@ -176,55 +181,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/dynamic-bridge-app/bridge-common/bridge-app.matter b/examples/dynamic-bridge-app/bridge-common/bridge-app.matter
index df5f85e..935c1c8 100644
--- a/examples/dynamic-bridge-app/bridge-common/bridge-app.matter
+++ b/examples/dynamic-bridge-app/bridge-common/bridge-app.matter
@@ -105,6 +105,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -112,7 +117,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -125,55 +130,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index d685bdd..68d7564 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -185,6 +185,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -192,7 +197,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -205,55 +210,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/lighting-app/nxp/zap/lighting-on-off.matter b/examples/lighting-app/nxp/zap/lighting-on-off.matter
index 273c23c..5a4d282 100644
--- a/examples/lighting-app/nxp/zap/lighting-on-off.matter
+++ b/examples/lighting-app/nxp/zap/lighting-on-off.matter
@@ -189,11 +189,16 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
readonly attribute command_id generatedCommandList[] = 65528;
@@ -205,55 +210,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index c8c0dbc..f6d04ad 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -343,6 +343,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
@@ -350,55 +355,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index c8c0dbc..f6d04ad 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -343,6 +343,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
@@ -350,55 +355,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter
index 7531278..b1b48d3 100644
--- a/examples/pump-app/pump-common/pump-app.matter
+++ b/examples/pump-app/pump-common/pump-app.matter
@@ -102,10 +102,15 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute nullable int8u onLevel = 17;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
@@ -116,55 +121,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/tv-app/linux/include/level-control/LevelControl.cpp b/examples/tv-app/linux/include/level-control/LevelControl.cpp
index 78da6a1..278c42f 100644
--- a/examples/tv-app/linux/include/level-control/LevelControl.cpp
+++ b/examples/tv-app/linux/include/level-control/LevelControl.cpp
@@ -25,7 +25,7 @@
#include <app-common/zap-generated/command-id.h>
using namespace chip;
-
+using namespace chip::app::Clusters;
#define MAX_LEVEL 99
#define MIN_LEVEL 1
@@ -45,7 +45,8 @@
}
static void stepHandler(CommandId commandId, uint8_t stepMode, uint8_t stepSize, pp::DataModel::Nullable<uint16_t> transitionTimeDs,
- uint8_t optionMask, uint8_t optionOverride)
+ BitMask<LevelControl::LevelControlOptions> optionMask,
+ BitMask<LevelControl::LevelControlOptions> optionOverride)
{
EndpointId endpoint = emberAfCurrentEndpoint();
@@ -124,7 +125,8 @@
}
bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, pp::DataModel::Nullable<uint8_t> transitionTime,
- uint8_t optionMask, uint8_t optionOverride)
+ BitMask<LevelControl::LevelControlOptions> optionMask,
+ BitMask<LevelControl::LevelControlOptions> optionOverride)
{
stepHandler(ZCL_STEP_COMMAND_ID, stepMode, stepSize, transitionTime, optionMask, optionOverride);
return true;
diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter
index f143582..0a8fa96 100644
--- a/examples/tv-app/tv-common/tv-app.matter
+++ b/examples/tv-app/tv-common/tv-app.matter
@@ -66,6 +66,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -73,7 +78,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -86,55 +91,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/examples/tv-casting-app/tv-casting-common/include/LevelControl.h b/examples/tv-casting-app/tv-casting-common/include/LevelControl.h
index a1fd172..01c07f2 100644
--- a/examples/tv-casting-app/tv-casting-common/include/LevelControl.h
+++ b/examples/tv-casting-app/tv-casting-common/include/LevelControl.h
@@ -30,7 +30,9 @@
StepCommand() : MediaCommandBase(chip::app::Clusters::LevelControl::Id) {}
CHIP_ERROR Invoke(chip::app::Clusters::LevelControl::StepMode stepMode, uint8_t stepSize,
- chip::app::DataModel::Nullable<uint16_t> transitionTime, uint8_t optionMask, uint8_t optionOverride,
+ chip::app::DataModel::Nullable<uint16_t> transitionTime,
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> optionMask,
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> optionOverride,
std::function<void(CHIP_ERROR)> responseCallback);
};
@@ -40,8 +42,10 @@
public:
MoveToLevelCommand() : MediaCommandBase(chip::app::Clusters::LevelControl::Id) {}
- CHIP_ERROR Invoke(uint8_t level, chip::app::DataModel::Nullable<uint16_t> transitionTime, uint8_t optionMask,
- uint8_t optionOverride, std::function<void(CHIP_ERROR)> responseCallback);
+ CHIP_ERROR Invoke(uint8_t level, chip::app::DataModel::Nullable<uint16_t> transitionTime,
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> optionMask,
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> optionOverride,
+ std::function<void(CHIP_ERROR)> responseCallback);
};
// SUBSCRIBER CLASSES
diff --git a/examples/tv-casting-app/tv-casting-common/src/LevelControl.cpp b/examples/tv-casting-app/tv-casting-common/src/LevelControl.cpp
index 48de522..2f0c1b4 100644
--- a/examples/tv-casting-app/tv-casting-common/src/LevelControl.cpp
+++ b/examples/tv-casting-app/tv-casting-common/src/LevelControl.cpp
@@ -22,7 +22,9 @@
using namespace chip::app::Clusters;
CHIP_ERROR StepCommand::Invoke(LevelControl::StepMode stepMode, uint8_t stepSize, app::DataModel::Nullable<uint16_t> transitionTime,
- uint8_t optionMask, uint8_t optionOverride, std::function<void(CHIP_ERROR)> responseCallback)
+ BitMask<LevelControl::LevelControlOptions> optionMask,
+ BitMask<LevelControl::LevelControlOptions> optionOverride,
+ std::function<void(CHIP_ERROR)> responseCallback)
{
LevelControl::Commands::Step::Type request;
request.stepMode = stepMode;
@@ -33,8 +35,10 @@
return MediaCommandBase::Invoke(request, responseCallback);
}
-CHIP_ERROR MoveToLevelCommand::Invoke(uint8_t level, app::DataModel::Nullable<uint16_t> transitionTime, uint8_t optionMask,
- uint8_t optionOverride, std::function<void(CHIP_ERROR)> responseCallback)
+CHIP_ERROR MoveToLevelCommand::Invoke(uint8_t level, app::DataModel::Nullable<uint16_t> transitionTime,
+ BitMask<LevelControl::LevelControlOptions> optionMask,
+ BitMask<LevelControl::LevelControlOptions> optionOverride,
+ std::function<void(CHIP_ERROR)> responseCallback)
{
LevelControl::Commands::MoveToLevel::Type request;
request.level = level;
diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
index 976496d..0c992d3 100644
--- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
+++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
@@ -320,6 +320,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -327,7 +332,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -340,55 +345,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
@@ -418,6 +423,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -425,7 +435,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -438,55 +448,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/src/app/clusters/level-control/level-control.cpp b/src/app/clusters/level-control/level-control.cpp
index 5bca058..87f60446 100644
--- a/src/app/clusters/level-control/level-control.cpp
+++ b/src/app/clusters/level-control/level-control.cpp
@@ -28,6 +28,7 @@
#include <app/util/util.h>
#include <app/reporting/reporting.h>
+#include <lib/core/Optional.h>
#include <platform/CHIPDeviceConfig.h>
#include <platform/CHIPDeviceLayer.h>
#include <platform/PlatformManager.h>
@@ -99,17 +100,24 @@
static EmberAfLevelControlState * getState(EndpointId endpoint);
static EmberAfStatus moveToLevelHandler(EndpointId endpoint, CommandId commandId, uint8_t level,
- app::DataModel::Nullable<uint16_t> transitionTimeDs, uint8_t optionsMask,
- uint8_t optionsOverride, uint16_t storedLevel);
+ app::DataModel::Nullable<uint16_t> transitionTimeDs,
+ chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride, uint16_t storedLevel);
static void moveHandler(EndpointId endpoint, CommandId commandId, uint8_t moveMode, app::DataModel::Nullable<uint8_t> rate,
- uint8_t optionsMask, uint8_t optionsOverride);
+ chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride);
static void stepHandler(EndpointId endpoint, CommandId commandId, uint8_t stepMode, uint8_t stepSize,
- app::DataModel::Nullable<uint16_t> transitionTimeDs, uint8_t optionsMask, uint8_t optionsOverride);
-static void stopHandler(EndpointId endpoint, CommandId commandId, uint8_t optionsMask, uint8_t optionsOverride);
+ app::DataModel::Nullable<uint16_t> transitionTimeDs,
+ chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride);
+static void stopHandler(EndpointId endpoint, CommandId commandId, chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride);
static void setOnOffValue(EndpointId endpoint, bool onOff);
static void writeRemainingTime(EndpointId endpoint, uint16_t remainingTimeMs);
-static bool shouldExecuteIfOff(EndpointId endpoint, CommandId commandId, uint8_t optionsMask, uint8_t optionsOverride);
+static bool shouldExecuteIfOff(EndpointId endpoint, CommandId commandId,
+ chip::Optional<chip::BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<chip::BitMask<LevelControlOptions>> optionsOverride);
#if !defined(IGNORE_LEVEL_CONTROL_CLUSTER_OPTIONS) && defined(EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP)
static void reallyUpdateCoupledColorTemp(EndpointId endpoint);
@@ -185,7 +193,7 @@
#if !defined(IGNORE_LEVEL_CONTROL_CLUSTER_OPTIONS) && defined(EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP)
static void reallyUpdateCoupledColorTemp(EndpointId endpoint)
{
- uint8_t options;
+ LevelControl::Attributes::Options::TypeInfo::Type options;
EmberAfStatus status = Attributes::Options::Get(endpoint, &options);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
@@ -195,7 +203,7 @@
if (emberAfContainsAttribute(endpoint, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id))
{
- if (READBITS(options, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL))
+ if (options.Has(LevelControlOptions::kCoupleColorTempToLevel))
{
emberAfPluginLevelControlCoupledColorTempChangeCallback(endpoint);
}
@@ -346,7 +354,9 @@
#endif // EMBER_AF_PLUGIN_ON_OFF
}
-static bool shouldExecuteIfOff(EndpointId endpoint, CommandId commandId, uint8_t optionsMask, uint8_t optionsOverride)
+static bool shouldExecuteIfOff(EndpointId endpoint, CommandId commandId,
+ chip::Optional<chip::BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<chip::BitMask<LevelControlOptions>> optionsOverride)
{
#ifndef IGNORE_LEVEL_CONTROL_CLUSTER_OPTIONS
if (emberAfContainsAttribute(endpoint, LevelControl::Id, Attributes::Options::Id))
@@ -370,14 +380,13 @@
return true;
}
- uint8_t options;
+ LevelControl::Attributes::Options::TypeInfo::Type options;
EmberAfStatus status = Attributes::Options::Get(endpoint, &options);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
emberAfLevelControlClusterPrintln("Unable to read Options attribute: 0x%X", status);
// If we can't read the attribute, then we should just assume that it has its
// default value.
- options = 0x00;
}
bool on;
@@ -408,23 +417,22 @@
// ---------- The following order is important in decision making -------
// -----------more readable ----------
//
- if (optionsMask == 0xFF && optionsOverride == 0xFF)
+ if (!optionsMask.HasValue() || !optionsOverride.HasValue())
{
- // 0xFF are the default values passed to the command handler when
- // the payload is not present - in that case there is use of option
+ // in case optionMask or optionOverride is not set, use of option
// attribute to decide execution of the command
- return READBITS(options, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF);
+ return options.Has(LevelControlOptions::kExecuteIfOff);
}
// ---------- The above is to distinguish if the payload is present or not
- if (READBITS(optionsMask, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF))
+ if (optionsMask.Value().Has(LevelControlOptions::kExecuteIfOff))
{
// Mask is present and set in the command payload, this indicates
// use the over ride as temporary option
- return READBITS(optionsOverride, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF);
+ return optionsOverride.Value().Has(LevelControlOptions::kExecuteIfOff);
}
// if we are here - use the option bits
- return (READBITS(options, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF));
+ return options.Has(LevelControlOptions::kExecuteIfOff);
}
#endif // IGNORE_LEVEL_CONTROL_CLUSTER_OPTIONS
@@ -442,18 +450,19 @@
if (transitionTime.IsNull())
{
- emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL %x null %x %x", "RX level-control:", level, optionsMask,
- optionsOverride);
+ emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL %x null %x %x", "RX level-control:", level, optionsMask.Raw(),
+ optionsOverride.Raw());
}
else
{
emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL %x %2x %x %x", "RX level-control:", level, transitionTime.Value(),
- optionsMask, optionsOverride);
+ optionsMask.Raw(), optionsOverride.Raw());
}
- EmberAfStatus status =
- moveToLevelHandler(commandPath.mEndpointId, Commands::MoveToLevel::Id, level, transitionTime, optionsMask, optionsOverride,
- INVALID_STORED_LEVEL); // Don't revert to the stored level
+ EmberAfStatus status = moveToLevelHandler(commandPath.mEndpointId, Commands::MoveToLevel::Id, level, transitionTime,
+ Optional<BitMask<LevelControlOptions>>(optionsMask),
+ Optional<BitMask<LevelControlOptions>>(optionsOverride),
+ INVALID_STORED_LEVEL); // Don't revert to the stored level
emberAfSendImmediateDefaultResponse(status);
@@ -471,17 +480,18 @@
if (transitionTime.IsNull())
{
- emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL_WITH_ON_OFF %x null %x %x", "RX level-control:", level, optionsMask,
- optionsOverride);
+ emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL_WITH_ON_OFF %x null %x %x", "RX level-control:", level,
+ optionsMask.Raw(), optionsOverride.Raw());
}
else
{
emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL_WITH_ON_OFF %x %2x %x %x", "RX level-control:", level,
- transitionTime.Value(), optionsMask, optionsOverride);
+ transitionTime.Value(), optionsMask.Raw(), optionsOverride.Raw());
}
EmberAfStatus status = moveToLevelHandler(commandPath.mEndpointId, Commands::MoveToLevelWithOnOff::Id, level, transitionTime,
- optionsMask, optionsOverride,
+ Optional<BitMask<LevelControlOptions>>(optionsMask),
+ Optional<BitMask<LevelControlOptions>>(optionsOverride),
INVALID_STORED_LEVEL); // Don't revert to the stored level
emberAfSendImmediateDefaultResponse(status);
@@ -499,15 +509,17 @@
if (rate.IsNull())
{
- emberAfLevelControlClusterPrintln("%pMOVE %x null %x %x", "RX level-control:", moveMode, optionsMask, optionsOverride);
+ emberAfLevelControlClusterPrintln("%pMOVE %x null %x %x", "RX level-control:", moveMode, optionsMask.Raw(),
+ optionsOverride.Raw());
}
else
{
- emberAfLevelControlClusterPrintln("%pMOVE %x %u %x %x", "RX level-control:", moveMode, rate.Value(), optionsMask,
- optionsOverride);
+ emberAfLevelControlClusterPrintln("%pMOVE %x %u %x %x", "RX level-control:", moveMode, rate.Value(), optionsMask.Raw(),
+ optionsOverride.Raw());
}
- moveHandler(commandPath.mEndpointId, Commands::Move::Id, moveMode, rate, optionsMask, optionsOverride);
+ moveHandler(commandPath.mEndpointId, Commands::Move::Id, moveMode, rate, Optional<BitMask<LevelControlOptions>>(optionsMask),
+ Optional<BitMask<LevelControlOptions>>(optionsOverride));
return true;
}
@@ -521,16 +533,17 @@
if (rate.IsNull())
{
- emberAfLevelControlClusterPrintln("%pMOVE_WITH_ON_OFF %x null %x %x", "RX level-control:", moveMode, optionsMask,
- optionsOverride);
+ emberAfLevelControlClusterPrintln("%pMOVE_WITH_ON_OFF %x null %x %x", "RX level-control:", moveMode, optionsMask.Raw(),
+ optionsOverride.Raw());
}
else
{
emberAfLevelControlClusterPrintln("%pMOVE_WITH_ON_OFF %u %2x %x %x", "RX level-control:", moveMode, rate.Value(),
- optionsMask, optionsOverride);
+ optionsMask.Raw(), optionsOverride.Raw());
}
- moveHandler(commandPath.mEndpointId, Commands::MoveWithOnOff::Id, moveMode, rate, optionsMask, optionsOverride);
+ moveHandler(commandPath.mEndpointId, Commands::MoveWithOnOff::Id, moveMode, rate,
+ Optional<BitMask<LevelControlOptions>>(optionsMask), Optional<BitMask<LevelControlOptions>>(optionsOverride));
return true;
}
@@ -545,16 +558,17 @@
if (transitionTime.IsNull())
{
- emberAfLevelControlClusterPrintln("%pSTEP %x %x null %x %x", "RX level-control:", stepMode, stepSize, optionsMask,
- optionsOverride);
+ emberAfLevelControlClusterPrintln("%pSTEP %x %x null %x %x", "RX level-control:", stepMode, stepSize, optionsMask.Raw(),
+ optionsOverride.Raw());
}
else
{
emberAfLevelControlClusterPrintln("%pSTEP %x %x %2x %x %x", "RX level-control:", stepMode, stepSize, transitionTime.Value(),
- optionsMask, optionsOverride);
+ optionsMask.Raw(), optionsOverride.Raw());
}
- stepHandler(commandPath.mEndpointId, Commands::Step::Id, stepMode, stepSize, transitionTime, optionsMask, optionsOverride);
+ stepHandler(commandPath.mEndpointId, Commands::Step::Id, stepMode, stepSize, transitionTime,
+ Optional<BitMask<LevelControlOptions>>(optionsMask), Optional<BitMask<LevelControlOptions>>(optionsOverride));
return true;
}
@@ -570,16 +584,16 @@
if (transitionTime.IsNull())
{
emberAfLevelControlClusterPrintln("%pSTEP_WITH_ON_OFF %x %x null %x %x", "RX level-control:", stepMode, stepSize,
- optionsMask, optionsOverride);
+ optionsMask.Raw(), optionsOverride.Raw());
}
else
{
emberAfLevelControlClusterPrintln("%pSTEP_WITH_ON_OFF %x %x %2x %x %x", "RX level-control:", stepMode, stepSize,
- transitionTime.Value(), optionsMask, optionsOverride);
+ transitionTime.Value(), optionsMask.Raw(), optionsOverride.Raw());
}
- stepHandler(commandPath.mEndpointId, Commands::StepWithOnOff::Id, stepMode, stepSize, transitionTime, optionsMask,
- optionsOverride);
+ stepHandler(commandPath.mEndpointId, Commands::StepWithOnOff::Id, stepMode, stepSize, transitionTime,
+ Optional<BitMask<LevelControlOptions>>(optionsMask), Optional<BitMask<LevelControlOptions>>(optionsOverride));
return true;
}
@@ -590,7 +604,8 @@
auto & optionsOverride = commandData.optionsOverride;
emberAfLevelControlClusterPrintln("%pSTOP", "RX level-control:");
- stopHandler(commandPath.mEndpointId, Commands::Stop::Id, optionsMask, optionsOverride);
+ stopHandler(commandPath.mEndpointId, Commands::Stop::Id, Optional<BitMask<LevelControlOptions>>(optionsMask),
+ Optional<BitMask<LevelControlOptions>>(optionsOverride));
return true;
}
@@ -600,13 +615,15 @@
auto & optionsMask = commandData.optionsMask;
auto & optionsOverride = commandData.optionsOverride;
emberAfLevelControlClusterPrintln("%pSTOP_WITH_ON_OFF", "RX level-control:");
- stopHandler(commandPath.mEndpointId, Commands::StopWithOnOff::Id, optionsMask, optionsOverride);
+ stopHandler(commandPath.mEndpointId, Commands::StopWithOnOff::Id, Optional<BitMask<LevelControlOptions>>(optionsMask),
+ Optional<BitMask<LevelControlOptions>>(optionsOverride));
return true;
}
static EmberAfStatus moveToLevelHandler(EndpointId endpoint, CommandId commandId, uint8_t level,
- app::DataModel::Nullable<uint16_t> transitionTimeDs, uint8_t optionsMask,
- uint8_t optionsOverride, uint16_t storedLevel)
+ app::DataModel::Nullable<uint16_t> transitionTimeDs,
+ chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride, uint16_t storedLevel)
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
@@ -751,7 +768,8 @@
}
static void moveHandler(EndpointId endpoint, CommandId commandId, uint8_t moveMode, app::DataModel::Nullable<uint8_t> rate,
- uint8_t optionsMask, uint8_t optionsOverride)
+ chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride)
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
@@ -870,7 +888,9 @@
}
static void stepHandler(EndpointId endpoint, CommandId commandId, uint8_t stepMode, uint8_t stepSize,
- app::DataModel::Nullable<uint16_t> transitionTimeDs, uint8_t optionsMask, uint8_t optionsOverride)
+ app::DataModel::Nullable<uint16_t> transitionTimeDs,
+ chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride)
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
@@ -997,7 +1017,8 @@
emberAfSendImmediateDefaultResponse(status);
}
-static void stopHandler(EndpointId endpoint, CommandId commandId, uint8_t optionsMask, uint8_t optionsOverride)
+static void stopHandler(EndpointId endpoint, CommandId commandId, chip::Optional<BitMask<LevelControlOptions>> optionsMask,
+ chip::Optional<BitMask<LevelControlOptions>> optionsOverride)
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
@@ -1119,7 +1140,8 @@
// "Move CurrentLevel to OnLevel, or to the stored level if OnLevel is not
// defined, over the time period OnOffTransitionTime."
- moveToLevelHandler(endpoint, Commands::MoveToLevel::Id, resolvedLevel.Value(), transitionTime, 0xFF, 0xFF,
+ moveToLevelHandler(endpoint, Commands::MoveToLevel::Id, resolvedLevel.Value(), transitionTime, chip::NullOptional,
+ chip::NullOptional,
INVALID_STORED_LEVEL); // Don't revert to stored level
}
else
@@ -1130,14 +1152,14 @@
if (useOnLevel)
{
// If OnLevel is defined, don't revert to stored level.
- moveToLevelHandler(endpoint, Commands::MoveToLevelWithOnOff::Id, minimumLevelAllowedForTheDevice, transitionTime, 0xFF,
- 0xFF, INVALID_STORED_LEVEL);
+ moveToLevelHandler(endpoint, Commands::MoveToLevelWithOnOff::Id, minimumLevelAllowedForTheDevice, transitionTime,
+ chip::NullOptional, chip::NullOptional, INVALID_STORED_LEVEL);
}
else
{
// If OnLevel is not defined, set the CurrentLevel to the stored level.
- moveToLevelHandler(endpoint, Commands::MoveToLevelWithOnOff::Id, minimumLevelAllowedForTheDevice, transitionTime, 0xFF,
- 0xFF, temporaryCurrentLevelCache.Value());
+ moveToLevelHandler(endpoint, Commands::MoveToLevelWithOnOff::Id, minimumLevelAllowedForTheDevice, transitionTime,
+ chip::NullOptional, chip::NullOptional, temporaryCurrentLevelCache.Value());
}
}
}
diff --git a/src/app/zap-templates/zcl/data-model/silabs/general.xml b/src/app/zap-templates/zcl/data-model/silabs/general.xml
index ae60b4b..4265943 100644
--- a/src/app/zap-templates/zcl/data-model/silabs/general.xml
+++ b/src/app/zap-templates/zcl/data-model/silabs/general.xml
@@ -191,21 +191,21 @@
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<globalAttribute side="either" code="0xFFFD" value="5"/>
- <attribute side="server" code="0x0000" define="CURRENT_LEVEL" type="INT8U" isNullable="true" writable="false" default="0x00" optional="false">CurrentLevel</attribute>
- <attribute side="server" code="0x0001" define="LEVEL_CONTROL_REMAINING_TIME" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">RemainingTime</attribute>
- <attribute side="server" code="0x0002" define="MINIMUM_LEVEL" type="INT8U" min="0x00" max="0xFF" writable="false" default="0x00" optional="true">MinLevel</attribute>
- <attribute side="server" code="0x0003" define="MAXIMUM_LEVEL" type="INT8U" min="0x00" max="0xFF" writable="false" default="0xFE" optional="true">MaxLevel</attribute>
- <attribute side="server" code="0x0004" define="CURRENT_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">CurrentFrequency</attribute>
- <attribute side="server" code="0x0005" define="MIN_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">MinFrequency</attribute>
- <attribute side="server" code="0x0006" define="MAX_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">MaxFrequency</attribute>
+ <attribute side="server" code="0x0000" define="CURRENT_LEVEL" type="INT8U" isNullable="true" writable="false" default="0x00" optional="false">CurrentLevel</attribute>
+ <attribute side="server" code="0x0001" define="LEVEL_CONTROL_REMAINING_TIME" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">RemainingTime</attribute>
+ <attribute side="server" code="0x0002" define="MINIMUM_LEVEL" type="INT8U" min="0x00" max="0xFF" writable="false" default="0x00" optional="true">MinLevel</attribute>
+ <attribute side="server" code="0x0003" define="MAXIMUM_LEVEL" type="INT8U" min="0x00" max="0xFF" writable="false" default="0xFE" optional="true">MaxLevel</attribute>
+ <attribute side="server" code="0x0004" define="CURRENT_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">CurrentFrequency</attribute>
+ <attribute side="server" code="0x0005" define="MIN_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">MinFrequency</attribute>
+ <attribute side="server" code="0x0006" define="MAX_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">MaxFrequency</attribute>
- <attribute side="server" code="0x0010" define="ON_OFF_TRANSITION_TIME" type="INT16U" writable="true" default="0x0000" optional="true">OnOffTransitionTime</attribute>
- <attribute side="server" code="0x0011" define="ON_LEVEL" type="INT8U" isNullable="true" writable="true" optional="false">OnLevel</attribute>
- <attribute side="server" code="0x0012" define="ON_TRANSITION_TIME" type="INT16U" isNullable="true" writable="true" optional="true">OnTransitionTime</attribute>
- <attribute side="server" code="0x0013" define="OFF_TRANSITION_TIME" type="INT16U" isNullable="true" writable="true" optional="true">OffTransitionTime</attribute>
- <attribute side="server" code="0x0014" define="DEFAULT_MOVE_RATE" type="INT8U" isNullable="true" writable="true" optional="true">DefaultMoveRate</attribute>
- <attribute side="server" code="0x000F" define="OPTIONS" type="BITMAP8" min="0x00" max="0x03" writable="true" default="0x00" optional="false">Options</attribute>
- <attribute side="server" code="0x4000" define="START_UP_CURRENT_LEVEL" type="INT8U" isNullable="true" writable="true" optional="true">
+ <attribute side="server" code="0x0010" define="ON_OFF_TRANSITION_TIME" type="INT16U" writable="true" default="0x0000" optional="true">OnOffTransitionTime</attribute>
+ <attribute side="server" code="0x0011" define="ON_LEVEL" type="INT8U" isNullable="true" writable="true" optional="false">OnLevel</attribute>
+ <attribute side="server" code="0x0012" define="ON_TRANSITION_TIME" type="INT16U" isNullable="true" writable="true" optional="true">OnTransitionTime</attribute>
+ <attribute side="server" code="0x0013" define="OFF_TRANSITION_TIME" type="INT16U" isNullable="true" writable="true" optional="true">OffTransitionTime</attribute>
+ <attribute side="server" code="0x0014" define="DEFAULT_MOVE_RATE" type="INT8U" isNullable="true" writable="true" optional="true">DefaultMoveRate</attribute>
+ <attribute side="server" code="0x000F" define="OPTIONS" type="LevelControlOptions" min="0x00" max="0x03" writable="true" default="0x00" optional="false">Options</attribute>
+ <attribute side="server" code="0x4000" define="START_UP_CURRENT_LEVEL" type="INT8U" isNullable="true" writable="true" optional="true">
<description>StartUpCurrentLevel</description>
<access op="read" role="view"/>
<access op="write" role="manage"/>
@@ -216,8 +216,8 @@
</description>
<arg name="Level" type="INT8U"/>
<arg name="TransitionTime" type="INT16U" isNullable="true"/>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x01" name="Move" optional="false" cli="zcl level-control move">
<description>
@@ -225,8 +225,8 @@
</description>
<arg name="MoveMode" type="MoveMode"/>
<arg name="Rate" type="INT8U" isNullable="true"/>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x02" name="Step" optional="false" cli="zcl level-control step">
<description>
@@ -235,15 +235,15 @@
<arg name="StepMode" type="StepMode"/>
<arg name="StepSize" type="INT8U"/>
<arg name="TransitionTime" type="INT16U" isNullable="true"/>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x03" name="Stop" optional="false" cli="zcl level-control stop">
<description>
Command description for Stop
</description>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x04" name="MoveToLevelWithOnOff" optional="false" cli="zcl level-control o-mv-to-level">
<description>
@@ -251,8 +251,8 @@
</description>
<arg name="Level" type="INT8U"/>
<arg name="TransitionTime" type="INT16U" isNullable="true"/>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x05" name="MoveWithOnOff" optional="false" cli="zcl level-control o-move">
<description>
@@ -260,8 +260,8 @@
</description>
<arg name="MoveMode" type="MoveMode"/>
<arg name="Rate" type="INT8U" isNullable="true"/>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x06" name="StepWithOnOff" optional="false" cli="zcl level-control o-step">
<description>
@@ -270,15 +270,15 @@
<arg name="StepMode" type="StepMode"/>
<arg name="StepSize" type="INT8U"/>
<arg name="TransitionTime" type="INT16U" isNullable="true"/>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x07" name="StopWithOnOff" optional="false" cli="zcl level-control o-stop">
<description>
Command description for StopWithOnOff
</description>
- <arg name="OptionsMask" type="BITMAP8"/>
- <arg name="OptionsOverride" type="BITMAP8"/>
+ <arg name="OptionsMask" type="LevelControlOptions"/>
+ <arg name="OptionsOverride" type="LevelControlOptions"/>
</command>
<command source="client" code="0x08" name="MoveToClosestFrequency" optional="true">
<description>
diff --git a/src/app/zap-templates/zcl/data-model/silabs/types.xml b/src/app/zap-templates/zcl/data-model/silabs/types.xml
index aabddbc..c7e67ff 100644
--- a/src/app/zap-templates/zcl/data-model/silabs/types.xml
+++ b/src/app/zap-templates/zcl/data-model/silabs/types.xml
@@ -661,10 +661,11 @@
<item name="SetToToggle" value="0x02"/>
<!-- 0x03-0xFF reserved -->
</enum>
- <enum name="LevelControlOptions" type="BITMAP8">
- <item name="ExecuteIfOff" value="0x1"/>
- <item name="CoupleColorTempToLevel" value="0x02"/>
- </enum>
+ <bitmap name="LevelControlOptions" type="BITMAP8">
+ <cluster code="0x0008"/>
+ <field name="ExecuteIfOff" mask="0x1"/>
+ <field name="CoupleColorTempToLevel" mask="0x02"/>
+ </bitmap>
<!-- Barrier Control Cluster -->
<bitmap name="BarrierControlCapabilities" type="BITMAP8">
<field name="partialBarrier" mask="0x01"/>
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index a2b3632..f5d80fd 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -315,6 +315,11 @@
kFrequency = 0x4;
}
+ bitmap LevelControlOptions : BITMAP8 {
+ kExecuteIfOff = 0x1;
+ kCoupleColorTempToLevel = 0x2;
+ }
+
readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
@@ -322,7 +327,7 @@
readonly attribute int16u currentFrequency = 4;
readonly attribute int16u minFrequency = 5;
readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
+ attribute LevelControlOptions options = 15;
attribute int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute nullable int16u onTransitionTime = 18;
@@ -338,55 +343,55 @@
request struct MoveToLevelRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
nullable INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
nullable INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ LevelControlOptions optionsMask = 2;
+ LevelControlOptions optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
nullable INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ LevelControlOptions optionsMask = 3;
+ LevelControlOptions optionsOverride = 4;
}
request struct StopWithOnOffRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
+ LevelControlOptions optionsMask = 0;
+ LevelControlOptions optionsOverride = 1;
}
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
index 555e828..3e375f9 100644
--- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
@@ -957,7 +957,7 @@
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
- cppValue, value);
+ cppValue.Raw(), value);
return value;
}
case Attributes::OnOffTransitionTime::Id: {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
index 010ca73..526c715 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
@@ -853,7 +853,7 @@
return nil;
}
NSNumber * _Nonnull value;
- value = [NSNumber numberWithUnsignedChar:cppValue];
+ value = [NSNumber numberWithUnsignedChar:cppValue.Raw()];
return value;
}
case Attributes::OnOffTransitionTime::Id: {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
index 3262968..2cc6d66 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -15982,6 +15982,11 @@
MTRLevelControlFeatureFrequency = 0x4,
};
+typedef NS_OPTIONS(uint8_t, MTRLevelControlOptions) {
+ MTRLevelControlOptionsExecuteIfOff = 0x1,
+ MTRLevelControlOptionsCoupleColorTempToLevel = 0x2,
+};
+
typedef NS_ENUM(uint8_t, MTRAccessControlAuthMode) {
MTRAccessControlAuthModePASE = 0x01,
MTRAccessControlAuthModeCASE = 0x02,
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
index cd17c02..4af3218 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
@@ -5065,8 +5065,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5101,8 +5103,10 @@
auto & nonNullValue_0 = request.rate.SetNonNull();
nonNullValue_0 = params.rate.unsignedCharValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5138,8 +5142,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5167,8 +5173,10 @@
timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
}
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5204,8 +5212,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5240,8 +5250,10 @@
auto & nonNullValue_0 = request.rate.SetNonNull();
nonNullValue_0 = params.rate.unsignedCharValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5277,8 +5289,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5306,8 +5320,10 @@
timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
}
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride
+ = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(params.optionsOverride.unsignedCharValue);
return MTRStartInvokeInteraction(
typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs);
@@ -5643,7 +5659,7 @@
{
MTRReadParams * params = [[MTRReadParams alloc] init];
using TypeInfo = LevelControl::Attributes::Options::TypeInfo;
- return MTRReadAttribute<MTRInt8uAttributeCallbackBridge, NSNumber, TypeInfo::DecodableType>(
+ return MTRReadAttribute<MTRLevelControlOptionsAttributeCallbackBridge, NSNumber, TypeInfo::DecodableType>(
params, completion, self.callbackQueue, self.device, self->_endpoint, TypeInfo::GetClusterId(), TypeInfo::GetAttributeId());
}
@@ -5676,7 +5692,7 @@
ListFreer listFreer;
using TypeInfo = LevelControl::Attributes::Options::TypeInfo;
TypeInfo::Type cppValue;
- cppValue = value.unsignedCharValue;
+ cppValue = static_cast<std::remove_reference_t<decltype(cppValue)>>(value.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout);
@@ -5689,7 +5705,7 @@
reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
{
using TypeInfo = LevelControl::Attributes::Options::TypeInfo;
- MTRSubscribeAttribute<MTRInt8uAttributeCallbackSubscriptionBridge, NSNumber, TypeInfo::DecodableType>(params,
+ MTRSubscribeAttribute<MTRLevelControlOptionsAttributeCallbackSubscriptionBridge, NSNumber, TypeInfo::DecodableType>(params,
subscriptionEstablished, reportHandler, self.callbackQueue, self.device, self->_endpoint, TypeInfo::GetClusterId(),
TypeInfo::GetAttributeId());
}
@@ -5699,8 +5715,8 @@
queue:(dispatch_queue_t)queue
completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
{
- auto * bridge = new MTRInt8uAttributeCallbackBridge(queue, completion);
- std::move(*bridge).DispatchLocalAction(^(Int8uAttributeCallback successCb, MTRErrorCallback failureCb) {
+ auto * bridge = new MTRLevelControlOptionsAttributeCallbackBridge(queue, completion);
+ std::move(*bridge).DispatchLocalAction(^(LevelControlOptionsAttributeCallback successCb, MTRErrorCallback failureCb) {
if (clusterStateCacheContainer.cppClusterStateCache) {
chip::app::ConcreteAttributePath path;
using TypeInfo = LevelControl::Attributes::Options::TypeInfo;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
index d300ece..5a83eb0 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
@@ -1273,6 +1273,29 @@
}
}
+void MTRLevelControlOptionsAttributeCallbackBridge::OnSuccessFn(
+ void * context, chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value)
+{
+ NSNumber * _Nonnull objCValue;
+ objCValue = [NSNumber numberWithUnsignedChar:value.Raw()];
+ DispatchSuccess(context, objCValue);
+};
+
+void MTRLevelControlOptionsAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished()
+{
+ if (!mQueue) {
+ return;
+ }
+
+ if (mEstablishedHandler != nil) {
+ dispatch_async(mQueue, mEstablishedHandler);
+ // On failure, mEstablishedHandler will be cleaned up by our destructor,
+ // but we can clean it up earlier on successful subscription
+ // establishment.
+ mEstablishedHandler = nil;
+ }
+}
+
void MTRLevelControlGeneratedCommandListListAttributeCallbackBridge::OnSuccessFn(
void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value)
{
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h
index cf55841..98cfb00 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h
@@ -564,6 +564,7 @@
void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OnOffSwitchConfigurationAttributeListListAttributeCallback)(
void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
+typedef void (*LevelControlOptionsAttributeCallback)(void *, chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>);
typedef void (*LevelControlGeneratedCommandListListAttributeCallback)(
void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*LevelControlAcceptedCommandListListAttributeCallback)(
@@ -2430,6 +2431,36 @@
MTRSubscriptionEstablishedHandler mEstablishedHandler;
};
+class MTRLevelControlOptionsAttributeCallbackBridge : public MTRCallbackBridge<LevelControlOptionsAttributeCallback>
+{
+public:
+ MTRLevelControlOptionsAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler) :
+ MTRCallbackBridge<LevelControlOptionsAttributeCallback>(queue, handler, OnSuccessFn){};
+
+ MTRLevelControlOptionsAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action) :
+ MTRCallbackBridge<LevelControlOptionsAttributeCallback>(queue, handler, action, OnSuccessFn){};
+
+ static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value);
+};
+
+class MTRLevelControlOptionsAttributeCallbackSubscriptionBridge : public MTRLevelControlOptionsAttributeCallbackBridge
+{
+public:
+ MTRLevelControlOptionsAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+ MTRActionBlock action,
+ MTRSubscriptionEstablishedHandler establishedHandler) :
+ MTRLevelControlOptionsAttributeCallbackBridge(queue, handler, action),
+ mEstablishedHandler(establishedHandler)
+ {}
+
+ void OnSubscriptionEstablished();
+ using MTRLevelControlOptionsAttributeCallbackBridge::KeepAliveOnCallback;
+ using MTRLevelControlOptionsAttributeCallbackBridge::OnDone;
+
+private:
+ MTRSubscriptionEstablishedHandler mEstablishedHandler;
+};
+
class MTRLevelControlGeneratedCommandListListAttributeCallbackBridge
: public MTRCallbackBridge<LevelControlGeneratedCommandListListAttributeCallback>
{
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
index 8476a3f..487c481 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
@@ -2414,8 +2414,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
@@ -2472,8 +2474,10 @@
auto & nonNullValue_0 = request.rate.SetNonNull();
nonNullValue_0 = params.rate.unsignedCharValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
@@ -2531,8 +2535,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
@@ -2581,8 +2587,10 @@
if (timedInvokeTimeoutMsParam != nil) {
timedInvokeTimeoutMs.SetValue(timedInvokeTimeoutMsParam.unsignedShortValue);
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
@@ -2638,8 +2646,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
@@ -2696,8 +2706,10 @@
auto & nonNullValue_0 = request.rate.SetNonNull();
nonNullValue_0 = params.rate.unsignedCharValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
@@ -2755,8 +2767,10 @@
auto & nonNullValue_0 = request.transitionTime.SetNonNull();
nonNullValue_0 = params.transitionTime.unsignedShortValue;
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
@@ -2805,8 +2819,10 @@
if (timedInvokeTimeoutMsParam != nil) {
timedInvokeTimeoutMs.SetValue(timedInvokeTimeoutMsParam.unsignedShortValue);
}
- request.optionsMask = params.optionsMask.unsignedCharValue;
- request.optionsOverride = params.optionsOverride.unsignedCharValue;
+ request.optionsMask
+ = static_cast<std::remove_reference_t<decltype(request.optionsMask)>>(params.optionsMask.unsignedCharValue);
+ request.optionsOverride = static_cast<std::remove_reference_t<decltype(request.optionsOverride)>>(
+ params.optionsOverride.unsignedCharValue);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.InvokeCommand(request, bridge, successCb, failureCb, timedInvokeTimeoutMs);
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
index 26b721b..aba2445 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
@@ -1160,9 +1160,9 @@
namespace Options {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> * value)
{
- using Traits = NumericAttributeTraits<uint8_t>;
+ using Traits = NumericAttributeTraits<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>;
Traits::StorageType temp;
uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::LevelControl::Id, Id, readable, sizeof(temp));
@@ -1174,9 +1174,9 @@
*value = Traits::StorageToWorking(temp);
return status;
}
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
+EmberAfStatus Set(chip::EndpointId endpoint, chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value)
{
- using Traits = NumericAttributeTraits<uint8_t>;
+ using Traits = NumericAttributeTraits<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>;
if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
{
return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
index 9f533ae..e1e6b3d 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
@@ -240,8 +240,9 @@
} // namespace MaxFrequency
namespace Options {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // bitmap8
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
+EmberAfStatus Get(chip::EndpointId endpoint,
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> * value); // LevelControlOptions
+EmberAfStatus Set(chip::EndpointId endpoint, chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value);
} // namespace Options
namespace OnOffTransitionTime {
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
index 48eb466..b71d81d 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
@@ -222,6 +222,13 @@
kLighting = 0x2,
kFrequency = 0x4,
};
+
+// Bitmap for LevelControlOptions
+enum class LevelControlOptions : uint8_t
+{
+ kExecuteIfOff = 0x1,
+ kCoupleColorTempToLevel = 0x2,
+};
} // namespace LevelControl
namespace BinaryInputBasic {
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
index 29465ae..4fadf5d 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
@@ -2275,8 +2275,8 @@
uint8_t level = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2293,8 +2293,8 @@
uint8_t level = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace MoveToLevel
@@ -2316,8 +2316,8 @@
MoveMode moveMode = static_cast<MoveMode>(0);
DataModel::Nullable<uint8_t> rate;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2334,8 +2334,8 @@
MoveMode moveMode = static_cast<MoveMode>(0);
DataModel::Nullable<uint8_t> rate;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace Move
@@ -2359,8 +2359,8 @@
StepMode stepMode = static_cast<StepMode>(0);
uint8_t stepSize = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2378,8 +2378,8 @@
StepMode stepMode = static_cast<StepMode>(0);
uint8_t stepSize = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace Step
@@ -2397,8 +2397,8 @@
static constexpr CommandId GetCommandId() { return Commands::Stop::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2413,8 +2413,8 @@
static constexpr CommandId GetCommandId() { return Commands::Stop::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace Stop
@@ -2436,8 +2436,8 @@
uint8_t level = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2454,8 +2454,8 @@
uint8_t level = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace MoveToLevelWithOnOff
@@ -2477,8 +2477,8 @@
MoveMode moveMode = static_cast<MoveMode>(0);
DataModel::Nullable<uint8_t> rate;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2495,8 +2495,8 @@
MoveMode moveMode = static_cast<MoveMode>(0);
DataModel::Nullable<uint8_t> rate;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace MoveWithOnOff
@@ -2520,8 +2520,8 @@
StepMode stepMode = static_cast<StepMode>(0);
uint8_t stepSize = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2539,8 +2539,8 @@
StepMode stepMode = static_cast<StepMode>(0);
uint8_t stepSize = static_cast<uint8_t>(0);
DataModel::Nullable<uint16_t> transitionTime;
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace StepWithOnOff
@@ -2558,8 +2558,8 @@
static constexpr CommandId GetCommandId() { return Commands::StopWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
@@ -2574,8 +2574,8 @@
static constexpr CommandId GetCommandId() { return Commands::StopWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t optionsMask = static_cast<uint8_t>(0);
- uint8_t optionsOverride = static_cast<uint8_t>(0);
+ chip::BitMask<LevelControlOptions> optionsMask = static_cast<chip::BitMask<LevelControlOptions>>(0);
+ chip::BitMask<LevelControlOptions> optionsOverride = static_cast<chip::BitMask<LevelControlOptions>>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
}; // namespace StopWithOnOff
@@ -2702,9 +2702,9 @@
namespace Options {
struct TypeInfo
{
- using Type = uint8_t;
- using DecodableType = uint8_t;
- using DecodableArgType = uint8_t;
+ using Type = chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>;
+ using DecodableType = chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>;
+ using DecodableArgType = chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>;
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
static constexpr AttributeId GetAttributeId() { return Attributes::Options::Id; }
@@ -2823,13 +2823,14 @@
CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
Attributes::CurrentLevel::TypeInfo::DecodableType currentLevel;
- Attributes::RemainingTime::TypeInfo::DecodableType remainingTime = static_cast<uint16_t>(0);
- Attributes::MinLevel::TypeInfo::DecodableType minLevel = static_cast<uint8_t>(0);
- Attributes::MaxLevel::TypeInfo::DecodableType maxLevel = static_cast<uint8_t>(0);
- Attributes::CurrentFrequency::TypeInfo::DecodableType currentFrequency = static_cast<uint16_t>(0);
- Attributes::MinFrequency::TypeInfo::DecodableType minFrequency = static_cast<uint16_t>(0);
- Attributes::MaxFrequency::TypeInfo::DecodableType maxFrequency = static_cast<uint16_t>(0);
- Attributes::Options::TypeInfo::DecodableType options = static_cast<uint8_t>(0);
+ Attributes::RemainingTime::TypeInfo::DecodableType remainingTime = static_cast<uint16_t>(0);
+ Attributes::MinLevel::TypeInfo::DecodableType minLevel = static_cast<uint8_t>(0);
+ Attributes::MaxLevel::TypeInfo::DecodableType maxLevel = static_cast<uint8_t>(0);
+ Attributes::CurrentFrequency::TypeInfo::DecodableType currentFrequency = static_cast<uint16_t>(0);
+ Attributes::MinFrequency::TypeInfo::DecodableType minFrequency = static_cast<uint16_t>(0);
+ Attributes::MaxFrequency::TypeInfo::DecodableType maxFrequency = static_cast<uint16_t>(0);
+ Attributes::Options::TypeInfo::DecodableType options =
+ static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0);
Attributes::OnOffTransitionTime::TypeInfo::DecodableType onOffTransitionTime = static_cast<uint16_t>(0);
Attributes::OnLevel::TypeInfo::DecodableType onLevel;
Attributes::OnTransitionTime::TypeInfo::DecodableType onTransitionTime;
diff --git a/zzz_generated/app-common/app-common/zap-generated/enums.h b/zzz_generated/app-common/app-common/zap-generated/enums.h
index 76e565b..f2d3e87 100644
--- a/zzz_generated/app-common/app-common/zap-generated/enums.h
+++ b/zzz_generated/app-common/app-common/zap-generated/enums.h
@@ -179,13 +179,6 @@
EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 5,
};
-// Enum for LevelControlOptions
-enum EmberAfLevelControlOptions : uint8_t
-{
- EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 1,
- EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL = 2,
-};
-
// Enum for MoveMode
enum EmberAfMoveMode : uint8_t
{
@@ -741,6 +734,10 @@
#define EMBER_AF_LEVEL_CONTROL_FEATURE_LIGHTING_OFFSET (1)
#define EMBER_AF_LEVEL_CONTROL_FEATURE_FREQUENCY (4)
#define EMBER_AF_LEVEL_CONTROL_FEATURE_FREQUENCY_OFFSET (2)
+#define EMBER_AF_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF (1)
+#define EMBER_AF_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF_OFFSET (0)
+#define EMBER_AF_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL (2)
+#define EMBER_AF_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL_OFFSET (1)
#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (1)
#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0)
#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (2)
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
index b437a36..852804c 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
@@ -8521,7 +8521,8 @@
make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig), //
make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig), //
make_unique<WriteAttribute<>>(Id, credsIssuerConfig), //
- make_unique<WriteAttribute<uint8_t>>(Id, "options", 0, UINT8_MAX, Attributes::Options::Id, credsIssuerConfig), //
+ make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>>(
+ Id, "options", 0, UINT8_MAX, Attributes::Options::Id, credsIssuerConfig), //
make_unique<WriteAttribute<uint16_t>>(Id, "on-off-transition-time", 0, UINT16_MAX, Attributes::OnOffTransitionTime::Id,
credsIssuerConfig), //
make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "on-level", 0, UINT8_MAX, Attributes::OnLevel::Id,
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
index ba839e1..c9f8748 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -4435,7 +4435,7 @@
return DataModelLogger::LogValue("MaxFrequency", 1, value);
}
case LevelControl::Attributes::Options::Id: {
- uint8_t value;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
return DataModelLogger::LogValue("Options", 1, value);
}
diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h
index d387909..e9f1930 100644
--- a/zzz_generated/chip-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h
@@ -18154,7 +18154,7 @@
case 19:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8"));
}
@@ -18867,7 +18867,7 @@
case 23:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckValue("options", value, 0U));
}
@@ -18932,7 +18932,7 @@
case 35:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckValue("options", value, 1U));
}
@@ -19040,8 +19040,8 @@
LogStep(4, "TH writes 0 to the Options attribute");
VerifyOrDo(!ShouldSkip("LVL.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
- uint8_t value;
- value = 0U;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
+ value = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, value,
chip::NullOptional, chip::NullOptional);
}
@@ -19062,8 +19062,8 @@
value.level = 50U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id,
value, chip::NullOptional
@@ -19097,8 +19097,8 @@
value.level = 50U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19120,8 +19120,8 @@
value.level = 200U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 300U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19194,8 +19194,8 @@
LogStep(22, "TH writes 0 to the Options attribute");
VerifyOrDo(!ShouldSkip("LVL.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
- uint8_t value;
- value = 0U;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
+ value = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, value,
chip::NullOptional, chip::NullOptional);
}
@@ -19222,8 +19222,8 @@
value.level = 100U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19252,8 +19252,8 @@
value.level = 120U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19273,8 +19273,8 @@
value.level = 140U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19294,8 +19294,8 @@
value.level = 160U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19311,8 +19311,8 @@
LogStep(34, "TH writes 1 to the Options attribute");
VerifyOrDo(!ShouldSkip("LVL.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
- uint8_t value;
- value = 1U;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
+ value = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, value,
chip::NullOptional, chip::NullOptional);
}
@@ -19339,8 +19339,8 @@
value.level = 100U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19369,8 +19369,8 @@
value.level = 120U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19390,8 +19390,8 @@
value.level = 140U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19411,8 +19411,8 @@
value.level = 160U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19664,8 +19664,8 @@
LogStep(4, "TH writes 0 to the Options attribute");
VerifyOrDo(!ShouldSkip("LVL.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
- uint8_t value;
- value = 0U;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
+ value = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, value,
chip::NullOptional, chip::NullOptional);
}
@@ -19692,8 +19692,8 @@
value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
value.rate.SetNonNull();
value.rate.Value() = 10U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveWithOnOff::Id, value,
chip::NullOptional
@@ -19740,8 +19740,8 @@
value.level = 50U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -19761,8 +19761,8 @@
value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
value.rate.SetNonNull();
value.rate.Value() = 5U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
chip::NullOptional
@@ -20049,8 +20049,8 @@
LogStep(4, "TH writes 0 to the Options attribute");
VerifyOrDo(!ShouldSkip("LVL.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
- uint8_t value;
- value = 0U;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
+ value = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, value,
chip::NullOptional, chip::NullOptional);
}
@@ -20074,8 +20074,8 @@
value.stepSize = 50U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::StepWithOnOff::Id, value,
chip::NullOptional
@@ -20103,8 +20103,8 @@
value.level = 50U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -20125,8 +20125,8 @@
value.stepSize = 150U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 300U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value,
chip::NullOptional
@@ -20367,8 +20367,8 @@
LogStep(2, "TH writes 0 to the Options attribute");
VerifyOrDo(!ShouldSkip("LVL.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
- uint8_t value;
- value = 0U;
+ chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions> value;
+ value = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return WriteAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id, value,
chip::NullOptional, chip::NullOptional);
}
@@ -20389,8 +20389,8 @@
value.level = 50U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -20412,8 +20412,8 @@
value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
value.rate.SetNonNull();
value.rate.Value() = 5U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
chip::NullOptional
@@ -20431,8 +20431,8 @@
VerifyOrDo(!ShouldSkip("LVL.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Stop::Type value;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Stop::Id, value,
chip::NullOptional
@@ -20465,8 +20465,8 @@
value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
value.rate.SetNonNull();
value.rate.Value() = 5U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
chip::NullOptional
@@ -20484,8 +20484,8 @@
VerifyOrDo(!ShouldSkip("LVL.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type value;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(0U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::StopWithOnOff::Id, value,
chip::NullOptional
@@ -62946,8 +62946,8 @@
value.level = 1U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -63066,8 +63066,8 @@
value.level = 127U;
value.transitionTime.SetNonNull();
value.transitionTime.Value() = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.optionsMask = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
+ value.optionsOverride = static_cast<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>(1U);
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
index 1d5d8e6..8b1fb53 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
@@ -4602,8 +4602,8 @@
} else {
params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
}
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -4658,8 +4658,8 @@
} else {
params.rate = [NSNumber numberWithUnsignedChar:mRequest.rate.Value()];
}
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -4716,8 +4716,8 @@
} else {
params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
}
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -4764,8 +4764,8 @@
__auto_type * params = [[MTRLevelControlClusterStopParams alloc] init];
params.timedInvokeTimeoutMs
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -4820,8 +4820,8 @@
} else {
params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
}
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -4876,8 +4876,8 @@
} else {
params.rate = [NSNumber numberWithUnsignedChar:mRequest.rate.Value()];
}
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -4934,8 +4934,8 @@
} else {
params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
}
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {
@@ -4982,8 +4982,8 @@
__auto_type * params = [[MTRLevelControlClusterStopWithOnOffParams alloc] init];
params.timedInvokeTimeoutMs
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
- params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
- params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
+ params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask.Raw()];
+ params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride.Raw()];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
uint16_t __block responsesNeeded = repeatCount;
while (repeatCount--) {