Update Level Control XML to match spec definition (#21361)
* Update Level Control XML
* Fix frequency conformance
* Add missing conformance
* Fix LVL and CC to be spec compliant
* fix PR review comments
* ZAP generated files
* Fix Tv Level Control calls
* regen MTR base clusters files
* Update tv casting code
* fix typo
* regen
* fix test case
* regen
* fix lvl 4.1 test
* generated files
* Apply suggestions from code review
Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
* fix comment for LVL
* regen
* regen
Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
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 44af943..38970b0 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,7 +300,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -319,14 +319,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -334,7 +334,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -346,14 +346,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -361,7 +361,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
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 289a90a..08da101 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,7 +269,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
attribute bitmap8 options = 15;
attribute nullable int8u onLevel = 17;
readonly attribute bitmap32 featureMap = 65532;
@@ -277,14 +277,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -292,7 +292,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -304,14 +304,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -319,7 +319,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index b97f8df..c09e67b 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -105,7 +105,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -124,14 +124,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -139,7 +139,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -151,14 +151,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -166,7 +166,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
index 930a4fc..6536ff2 100644
--- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -285,7 +285,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -300,14 +300,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -315,7 +315,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -327,14 +327,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -342,7 +342,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
index 197b64a..3d026fe 100644
--- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -285,7 +285,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -300,14 +300,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -315,7 +315,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -327,14 +327,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -342,7 +342,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
index f57ba3e..4c852fb 100644
--- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
+++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
@@ -285,7 +285,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -300,14 +300,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -315,7 +315,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -327,14 +327,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -342,7 +342,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
index 5539552..e6acbb0 100644
--- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
+++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
@@ -281,7 +281,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
attribute nullable int8u onLevel = 17;
@@ -293,14 +293,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -308,7 +308,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -320,14 +320,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -335,7 +335,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
index 148a9e6..1b93cf2 100644
--- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
+++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
@@ -285,7 +285,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -300,14 +300,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -315,7 +315,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -327,14 +327,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -342,7 +342,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
index 44ac62d..31f5199 100644
--- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
+++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
@@ -167,7 +167,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
attribute bitmap8 options = 15;
@@ -180,14 +180,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -195,7 +195,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -207,14 +207,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -222,7 +222,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index 2529e41..e29e9a6 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -185,7 +185,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -204,14 +204,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -219,7 +219,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -231,14 +231,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -246,7 +246,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index d0c5617..98fc49f 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -343,20 +343,20 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -364,7 +364,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -376,14 +376,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -391,7 +391,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index d0c5617..98fc49f 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -343,20 +343,20 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -364,7 +364,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -376,14 +376,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -391,7 +391,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter
index 39ceb10..16a476f 100644
--- a/examples/pump-app/pump-common/pump-app.matter
+++ b/examples/pump-app/pump-common/pump-app.matter
@@ -102,7 +102,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
attribute bitmap8 options = 15;
@@ -115,14 +115,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -130,7 +130,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -142,14 +142,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -157,7 +157,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/examples/tv-app/linux/include/level-control/LevelControl.cpp b/examples/tv-app/linux/include/level-control/LevelControl.cpp
index 2b53d45..78da6a1 100644
--- a/examples/tv-app/linux/include/level-control/LevelControl.cpp
+++ b/examples/tv-app/linux/include/level-control/LevelControl.cpp
@@ -44,24 +44,33 @@
return (ep == 0xFF ? NULL : &stateTable[ep]);
}
-static void stepHandler(CommandId commandId, uint8_t stepMode, uint8_t stepSize, uint16_t transitionTimeDs, uint8_t optionMask,
- uint8_t optionOverride)
+static void stepHandler(CommandId commandId, uint8_t stepMode, uint8_t stepSize, pp::DataModel::Nullable<uint16_t> transitionTimeDs,
+ uint8_t optionMask, uint8_t optionOverride)
{
EndpointId endpoint = emberAfCurrentEndpoint();
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
+ app::DataModel::Nullable<uint8_t> nullableCurrentLevel;
uint8_t currentLevel;
- status = emberAfReadServerAttribute(endpoint, ZCL_LEVEL_CONTROL_CLUSTER_ID, ZCL_CURRENT_LEVEL_ATTRIBUTE_ID,
- (uint8_t *) ¤tLevel, sizeof(currentLevel));
-
+ status = Attributes::CurrentLevel::Get(endpoint, nullableCurrentLevel);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
emberAfLevelControlClusterPrintln("ERR: reading current level %x", status);
goto send_default_response;
}
+ if (nullableCurrentLevel.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("ERR: Current Level is null");
+ status = EMBER_ZCL_STATUS_FAILURE;
+
+ goto send_default_response;
+ }
+
+ currentLevel = nullableCurrentLevel.Value();
+
switch (stepMode)
{
case EMBER_ZCL_STEP_MODE_UP:
@@ -99,8 +108,10 @@
// TODO: Insert your code here to send volume down command
}
}
- status = emberAfWriteServerAttribute(endpoint, ZCL_LEVEL_CONTROL_CLUSTER_ID, ZCL_CURRENT_LEVEL_ATTRIBUTE_ID,
- (uint8_t *) ¤tLevel, ZCL_INT8U_ATTRIBUTE_TYPE);
+
+ nullableCurrentLevel.SetNonNull(currentLevel);
+ status = Attributes::CurrentLevel::Set(endpoint, nullableCurrentLevel);
+
state->storedLevel = currentLevel;
ChipLogProgress(Zcl, "Setting volume to new level %d", state->storedLevel);
}
@@ -112,8 +123,8 @@
}
}
-bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask,
- uint8_t optionOverride)
+bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, pp::DataModel::Nullable<uint8_t> transitionTime,
+ uint8_t optionMask, uint8_t 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 de3026b..469dd9f 100644
--- a/examples/tv-app/tv-common/tv-app.matter
+++ b/examples/tv-app/tv-common/tv-app.matter
@@ -66,7 +66,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -85,14 +85,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -100,7 +100,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -112,14 +112,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -127,7 +127,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
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 fb670e4..d431e3b 100644
--- a/examples/tv-casting-app/tv-casting-common/include/LevelControl.h
+++ b/examples/tv-casting-app/tv-casting-common/include/LevelControl.h
@@ -27,8 +27,9 @@
public:
StepCommand() : MediaCommandBase(chip::app::Clusters::LevelControl::Id) {}
- CHIP_ERROR Invoke(chip::app::Clusters::LevelControl::StepMode stepMode, uint8_t stepSize, uint16_t transitionTime,
- uint8_t optionMask, uint8_t optionOverride, std::function<void(CHIP_ERROR)> responseCallback);
+ 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,
+ std::function<void(CHIP_ERROR)> responseCallback);
};
class MoveToLevelCommand
@@ -37,6 +38,6 @@
public:
MoveToLevelCommand() : MediaCommandBase(chip::app::Clusters::LevelControl::Id) {}
- CHIP_ERROR Invoke(uint8_t level, 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, uint8_t optionMask,
+ uint8_t optionOverride, std::function<void(CHIP_ERROR)> responseCallback);
};
diff --git a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp
index 91793a9..548f45c 100644
--- a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp
+++ b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp
@@ -303,14 +303,22 @@
std::function<void(CHIP_ERROR)> responseCallback)
{
ReturnErrorOnFailure(mStepCommand.SetTarget(mTargetVideoPlayerInfo, kTvEndpoint));
- return mStepCommand.Invoke(stepMode, stepSize, transitionTime, optionMask, optionOverride, responseCallback);
+
+ app::DataModel::Nullable<uint16_t> nullableTransitionTime;
+ nullableTransitionTime.SetNonNull(transitionTime);
+
+ return mStepCommand.Invoke(stepMode, stepSize, nullableTransitionTime, optionMask, optionOverride, responseCallback);
}
CHIP_ERROR CastingServer::LevelControl_MoveToLevel(uint8_t level, uint16_t transitionTime, uint8_t optionMask,
uint8_t optionOverride, std::function<void(CHIP_ERROR)> responseCallback)
{
ReturnErrorOnFailure(mMoveToLevelCommand.SetTarget(mTargetVideoPlayerInfo, kTvEndpoint));
- return mMoveToLevelCommand.Invoke(level, transitionTime, optionMask, optionOverride, responseCallback);
+
+ app::DataModel::Nullable<uint16_t> nullableTransitionTime;
+ nullableTransitionTime.SetNonNull(transitionTime);
+
+ return mMoveToLevelCommand.Invoke(level, nullableTransitionTime, optionMask, optionOverride, responseCallback);
}
CHIP_ERROR CastingServer::MediaPlayback_Play(std::function<void(CHIP_ERROR)> responseCallback)
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 d55ae63..48de522 100644
--- a/examples/tv-casting-app/tv-casting-common/src/LevelControl.cpp
+++ b/examples/tv-casting-app/tv-casting-common/src/LevelControl.cpp
@@ -21,8 +21,8 @@
using namespace chip;
using namespace chip::app::Clusters;
-CHIP_ERROR StepCommand::Invoke(LevelControl::StepMode stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask,
- uint8_t optionOverride, std::function<void(CHIP_ERROR)> responseCallback)
+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)
{
LevelControl::Commands::Step::Type request;
request.stepMode = stepMode;
@@ -33,8 +33,8 @@
return MediaCommandBase::Invoke(request, responseCallback);
}
-CHIP_ERROR MoveToLevelCommand::Invoke(uint8_t level, 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, uint8_t optionMask,
+ uint8_t 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 57aab94..4fe3ada 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,7 +320,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -339,14 +339,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -354,7 +354,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -366,14 +366,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -381,7 +381,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -418,7 +418,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -437,14 +437,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -452,7 +452,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -464,14 +464,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -479,7 +479,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/src/app/clusters/color-control-server/color-control-server.cpp b/src/app/clusters/color-control-server/color-control-server.cpp
index acbe509..ec61efd 100644
--- a/src/app/clusters/color-control-server/color-control-server.cpp
+++ b/src/app/clusters/color-control-server/color-control-server.cpp
@@ -2415,8 +2415,13 @@
{
uint16_t tempCoupleMin = getTemperatureCoupleToLevelMin(endpoint);
- uint8_t currentLevel = 0x7F;
- LevelControl::Attributes::CurrentLevel::Get(endpoint, ¤tLevel);
+ app::DataModel::Nullable<uint8_t> currentLevel;
+ EmberAfStatus status = LevelControl::Attributes::CurrentLevel::Get(endpoint, currentLevel);
+
+ if (status != EMBER_ZCL_STATUS_SUCCESS || currentLevel.IsNull())
+ {
+ currentLevel.SetNonNull((uint8_t) 0x7F);
+ }
uint16_t tempPhysMax = MAX_TEMPERATURE_VALUE;
Attributes::ColorTempPhysicalMaxMireds::Get(endpoint, &tempPhysMax);
@@ -2425,17 +2430,17 @@
// Note that mireds varies inversely with level: low level -> high mireds.
// Peg min/MAX level to MAX/min mireds, otherwise interpolate.
uint16_t newColorTemp;
- if (currentLevel <= MIN_CURRENT_LEVEL)
+ if (currentLevel.Value() <= MIN_CURRENT_LEVEL)
{
newColorTemp = tempPhysMax;
}
- else if (currentLevel >= MAX_CURRENT_LEVEL)
+ else if (currentLevel.Value() >= MAX_CURRENT_LEVEL)
{
newColorTemp = tempCoupleMin;
}
else
{
- uint32_t tempDelta = (((uint32_t) tempPhysMax - (uint32_t) tempCoupleMin) * currentLevel) /
+ uint32_t tempDelta = (((uint32_t) tempPhysMax - (uint32_t) tempCoupleMin) * currentLevel.Value()) /
(uint32_t)(MAX_CURRENT_LEVEL - MIN_CURRENT_LEVEL + 1);
newColorTemp = (uint16_t)((uint32_t) tempPhysMax - tempDelta);
}
diff --git a/src/app/clusters/level-control/level-control.cpp b/src/app/clusters/level-control/level-control.cpp
index 2035997..c6c236b 100644
--- a/src/app/clusters/level-control/level-control.cpp
+++ b/src/app/clusters/level-control/level-control.cpp
@@ -112,12 +112,13 @@
static EmberAfLevelControlState * getState(EndpointId endpoint);
-static EmberAfStatus moveToLevelHandler(EndpointId endpoint, CommandId commandId, uint8_t level, uint16_t transitionTimeDs,
- uint8_t optionsMask, uint8_t optionsOverride, uint16_t storedLevel);
-static void moveHandler(EndpointId endpoint, CommandId commandId, uint8_t moveMode, uint8_t rate, uint8_t optionsMask,
- uint8_t optionsOverride);
-static void stepHandler(EndpointId endpoint, CommandId commandId, uint8_t stepMode, uint8_t stepSize, uint16_t transitionTimeDs,
+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);
+static void moveHandler(EndpointId endpoint, CommandId commandId, uint8_t moveMode, app::DataModel::Nullable<uint8_t> rate,
uint8_t optionsMask, uint8_t 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);
static void setOnOffValue(EndpointId endpoint, bool onOff);
@@ -180,7 +181,7 @@
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
- uint8_t currentLevel;
+ app::DataModel::Nullable<uint8_t> currentLevel;
if (state == nullptr)
{
@@ -190,36 +191,37 @@
state->elapsedTimeMs += state->eventDurationMs;
// Read the attribute; print error message and return if it can't be read
- status = Attributes::CurrentLevel::Get(endpoint, ¤tLevel);
- if (status != EMBER_ZCL_STATUS_SUCCESS)
+ status = LevelControl::Attributes::CurrentLevel::Get(endpoint, currentLevel);
+
+ if (status != EMBER_ZCL_STATUS_SUCCESS || currentLevel.IsNull())
{
emberAfLevelControlClusterPrintln("ERR: reading current level %x", status);
writeRemainingTime(endpoint, 0);
return;
}
- emberAfLevelControlClusterPrint("Event: move from %d", currentLevel);
+ emberAfLevelControlClusterPrint("Event: move from %d", currentLevel.Value());
// adjust by the proper amount, either up or down
if (state->transitionTimeMs == 0)
{
// Immediate, not over a time interval.
- currentLevel = state->moveToLevel;
+ currentLevel.SetNonNull(state->moveToLevel);
}
else if (state->increasing)
{
- assert(currentLevel < state->maxLevel);
- assert(currentLevel < state->moveToLevel);
- currentLevel++;
+ assert(currentLevel.Value() < state->maxLevel);
+ assert(currentLevel.Value() < state->moveToLevel);
+ currentLevel.SetNonNull(static_cast<uint8_t>(currentLevel.Value() + 1));
}
else
{
- assert(state->minLevel < currentLevel);
- assert(state->moveToLevel < currentLevel);
- currentLevel--;
+ assert(state->minLevel < currentLevel.Value());
+ assert(state->moveToLevel < currentLevel.Value());
+ currentLevel.SetNonNull(static_cast<uint8_t>(currentLevel.Value() - 1));
}
- emberAfLevelControlClusterPrint(" to %d ", currentLevel);
+ emberAfLevelControlClusterPrint(" to %d ", currentLevel.Value());
emberAfLevelControlClusterPrintln("(diff %c1)", state->increasing ? '+' : '-');
status = Attributes::CurrentLevel::Set(endpoint, currentLevel);
@@ -241,12 +243,12 @@
#endif // EMBER_AF_PLUGIN_SCENES
// Are we at the requested level?
- if (currentLevel == state->moveToLevel)
+ if (currentLevel.Value() == state->moveToLevel)
{
if (state->commandId == Commands::MoveToLevelWithOnOff::Id || state->commandId == Commands::MoveWithOnOff::Id ||
state->commandId == Commands::StepWithOnOff::Id)
{
- setOnOffValue(endpoint, (currentLevel != state->minLevel));
+ setOnOffValue(endpoint, (currentLevel.Value() != state->minLevel));
}
else
{
@@ -408,8 +410,17 @@
auto & optionsMask = commandData.optionsMask;
auto & optionsOverride = commandData.optionsOverride;
- emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL %x %2x %x %x", "RX level-control:", level, transitionTime, optionsMask,
- optionsOverride);
+ if (transitionTime.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL %x null %x %x", "RX level-control:", level, optionsMask,
+ optionsOverride);
+ }
+ else
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL %x %2x %x %x", "RX level-control:", level, transitionTime.Value(),
+ optionsMask, optionsOverride);
+ }
+
EmberAfStatus status =
moveToLevelHandler(commandPath.mEndpointId, Commands::MoveToLevel::Id, level, transitionTime, optionsMask, optionsOverride,
INVALID_STORED_LEVEL); // Don't revert to the stored level
@@ -428,7 +439,17 @@
auto & optionsMask = commandData.optionsMask;
auto & optionsOverride = commandData.optionsOverride;
- emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL_WITH_ON_OFF %x %2x", "RX level-control:", level, transitionTime);
+ if (transitionTime.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL_WITH_ON_OFF %x null %x %x", "RX level-control:", level, optionsMask,
+ optionsOverride);
+ }
+ else
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE_TO_LEVEL_WITH_ON_OFF %x %2x %x %x", "RX level-control:", level,
+ transitionTime.Value(), optionsMask, optionsOverride);
+ }
+
EmberAfStatus status = moveToLevelHandler(commandPath.mEndpointId, Commands::MoveToLevelWithOnOff::Id, level, transitionTime,
optionsMask, optionsOverride,
INVALID_STORED_LEVEL); // Don't revert to the stored level
@@ -446,7 +467,16 @@
auto & optionsMask = commandData.optionsMask;
auto & optionsOverride = commandData.optionsOverride;
- emberAfLevelControlClusterPrintln("%pMOVE %x %x", "RX level-control:", moveMode, rate);
+ if (rate.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE %x null %x %x", "RX level-control:", moveMode, optionsMask, optionsOverride);
+ }
+ else
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE %x %u %x %x", "RX level-control:", moveMode, rate.Value(), optionsMask,
+ optionsOverride);
+ }
+
moveHandler(commandPath.mEndpointId, Commands::Move::Id, moveMode, rate, optionsMask, optionsOverride);
return true;
}
@@ -459,7 +489,17 @@
auto & optionsMask = commandData.optionsMask;
auto & optionsOverride = commandData.optionsOverride;
- emberAfLevelControlClusterPrintln("%pMOVE_WITH_ON_OFF %x %x", "RX level-control:", moveMode, rate);
+ if (rate.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE_WITH_ON_OFF %x null %x %x", "RX level-control:", moveMode, optionsMask,
+ optionsOverride);
+ }
+ else
+ {
+ emberAfLevelControlClusterPrintln("%pMOVE_WITH_ON_OFF %u %2x %x %x", "RX level-control:", moveMode, rate.Value(),
+ optionsMask, optionsOverride);
+ }
+
moveHandler(commandPath.mEndpointId, Commands::MoveWithOnOff::Id, moveMode, rate, optionsMask, optionsOverride);
return true;
}
@@ -473,7 +513,17 @@
auto & optionsMask = commandData.optionsMask;
auto & optionsOverride = commandData.optionsOverride;
- emberAfLevelControlClusterPrintln("%pSTEP %x %x %2x", "RX level-control:", stepMode, stepSize, transitionTime);
+ if (transitionTime.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("%pSTEP %x %x null %x %x", "RX level-control:", stepMode, stepSize, optionsMask,
+ optionsOverride);
+ }
+ else
+ {
+ emberAfLevelControlClusterPrintln("%pSTEP %x %x %2x %x %x", "RX level-control:", stepMode, stepSize, transitionTime.Value(),
+ optionsMask, optionsOverride);
+ }
+
stepHandler(commandPath.mEndpointId, Commands::Step::Id, stepMode, stepSize, transitionTime, optionsMask, optionsOverride);
return true;
}
@@ -487,7 +537,17 @@
auto & optionsMask = commandData.optionsMask;
auto & optionsOverride = commandData.optionsOverride;
- emberAfLevelControlClusterPrintln("%pSTEP_WITH_ON_OFF %x %x %2x", "RX level-control:", stepMode, stepSize, transitionTime);
+ if (transitionTime.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("%pSTEP_WITH_ON_OFF %x %x null %x %x", "RX level-control:", stepMode, stepSize,
+ optionsMask, optionsOverride);
+ }
+ else
+ {
+ emberAfLevelControlClusterPrintln("%pSTEP_WITH_ON_OFF %x %x %2x %x %x", "RX level-control:", stepMode, stepSize,
+ transitionTime.Value(), optionsMask, optionsOverride);
+ }
+
stepHandler(commandPath.mEndpointId, Commands::StepWithOnOff::Id, stepMode, stepSize, transitionTime, optionsMask,
optionsOverride);
return true;
@@ -514,12 +574,13 @@
return true;
}
-static EmberAfStatus moveToLevelHandler(EndpointId endpoint, CommandId commandId, uint8_t level, uint16_t transitionTimeDs,
- uint8_t optionsMask, uint8_t optionsOverride, uint16_t storedLevel)
+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)
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
- uint8_t currentLevel;
+ app::DataModel::Nullable<uint8_t> currentLevel;
uint8_t actualStepSize;
if (state == nullptr)
@@ -540,13 +601,19 @@
// Cancel any currently active command before fiddling with the state.
deactivate(endpoint);
- status = Attributes::CurrentLevel::Get(endpoint, ¤tLevel);
+ status = Attributes::CurrentLevel::Get(endpoint, currentLevel);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
emberAfLevelControlClusterPrintln("ERR: reading current level %x", status);
return status;
}
+ if (currentLevel.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("ERR: Current Level is null");
+ return EMBER_ZCL_STATUS_FAILURE;
+ }
+
state->commandId = commandId;
// Move To Level commands cause the device to move from its current level to
@@ -568,36 +635,37 @@
// logic is to prevent a light from transitioning from off to bright to dim.
// Instead, a light that is off will stay off until the target level is
// reached.
- if (currentLevel <= state->moveToLevel)
+ if (currentLevel.Value() <= state->moveToLevel)
{
if (commandId == Commands::MoveToLevelWithOnOff::Id)
{
setOnOffValue(endpoint, (state->moveToLevel != state->minLevel));
}
- if (currentLevel == state->moveToLevel)
+ if (currentLevel.Value() == state->moveToLevel)
{
return EMBER_ZCL_STATUS_SUCCESS;
}
state->increasing = true;
- actualStepSize = static_cast<uint8_t>(state->moveToLevel - currentLevel);
+ actualStepSize = static_cast<uint8_t>(state->moveToLevel - currentLevel.Value());
}
else
{
state->increasing = false;
- actualStepSize = static_cast<uint8_t>(currentLevel - state->moveToLevel);
+ actualStepSize = static_cast<uint8_t>(currentLevel.Value() - state->moveToLevel);
}
- // If the Transition time field takes the value 0xFFFF, then the time taken
+ // If the Transition time field takes the value null, then the time taken
// to move to the new level shall instead be determined by the On/Off
// Transition Time attribute. If On/Off Transition Time, which is an
// optional attribute, is not present, the device shall move to its new level
// as fast as it is able.
- if (transitionTimeDs == 0xFFFF)
+ if (transitionTimeDs.IsNull())
{
#ifndef IGNORE_LEVEL_CONTROL_CLUSTER_ON_OFF_TRANSITION_TIME
if (emberAfContainsAttribute(endpoint, LevelControl::Id, Attributes::OnOffTransitionTime::Id))
{
- status = Attributes::OnOffTransitionTime::Get(endpoint, &transitionTimeDs);
+ uint16_t onOffTransitionTime = 0;
+ status = Attributes::OnOffTransitionTime::Get(endpoint, &onOffTransitionTime);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
emberAfLevelControlClusterPrintln("ERR: reading on/off transition time %x", status);
@@ -606,7 +674,7 @@
// Transition time comes in (or is stored, in the case of On/Off Transition
// Time) as tenths of a second, but we work in milliseconds.
- state->transitionTimeMs = (transitionTimeDs * MILLISECOND_TICKS_PER_SECOND / 10);
+ state->transitionTimeMs = (onOffTransitionTime * MILLISECOND_TICKS_PER_SECOND / 10);
}
else
{
@@ -623,7 +691,7 @@
{
// Transition time comes in (or is stored, in the case of On/Off Transition
// Time) as tenths of a second, but we work in milliseconds.
- state->transitionTimeMs = (transitionTimeDs * MILLISECOND_TICKS_PER_SECOND / 10);
+ state->transitionTimeMs = (transitionTimeDs.Value() * MILLISECOND_TICKS_PER_SECOND / 10);
}
// The duration between events will be the transition time divided by the
@@ -650,12 +718,12 @@
return status;
}
-static void moveHandler(EndpointId endpoint, CommandId commandId, uint8_t moveMode, uint8_t rate, uint8_t optionsMask,
- uint8_t optionsOverride)
+static void moveHandler(EndpointId endpoint, CommandId commandId, uint8_t moveMode, app::DataModel::Nullable<uint8_t> rate,
+ uint8_t optionsMask, uint8_t optionsOverride)
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
- uint8_t currentLevel;
+ app::DataModel::Nullable<uint8_t> currentLevel;
uint8_t difference;
if (state == nullptr)
@@ -664,7 +732,7 @@
goto send_default_response;
}
- if (rate == 0 || !shouldExecuteIfOff(endpoint, commandId, optionsMask, optionsOverride))
+ if (!shouldExecuteIfOff(endpoint, commandId, optionsMask, optionsOverride))
{
status = EMBER_ZCL_STATUS_SUCCESS;
goto send_default_response;
@@ -673,13 +741,21 @@
// Cancel any currently active command before fiddling with the state.
deactivate(endpoint);
- status = Attributes::CurrentLevel::Get(endpoint, ¤tLevel);
+ status = Attributes::CurrentLevel::Get(endpoint, currentLevel);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
emberAfLevelControlClusterPrintln("ERR: reading current level %x", status);
goto send_default_response;
}
+ if (currentLevel.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("ERR: Current Level is null");
+ status = EMBER_ZCL_STATUS_FAILURE;
+
+ goto send_default_response;
+ }
+
state->commandId = commandId;
// Move commands cause the device to move from its current level to either
@@ -689,12 +765,12 @@
case EMBER_ZCL_MOVE_MODE_UP:
state->increasing = true;
state->moveToLevel = state->maxLevel;
- difference = static_cast<uint8_t>(state->maxLevel - currentLevel);
+ difference = static_cast<uint8_t>(state->maxLevel - currentLevel.Value());
break;
case EMBER_ZCL_MOVE_MODE_DOWN:
state->increasing = false;
state->moveToLevel = state->minLevel;
- difference = static_cast<uint8_t>(currentLevel - state->minLevel);
+ difference = static_cast<uint8_t>(currentLevel.Value() - state->minLevel);
break;
default:
status = EMBER_ZCL_STATUS_INVALID_FIELD;
@@ -705,22 +781,22 @@
// logic is to prevent a light from transitioning from off to bright to dim.
// Instead, a light that is off will stay off until the target level is
// reached.
- if (currentLevel <= state->moveToLevel)
+ if (currentLevel.Value() <= state->moveToLevel)
{
if (commandId == Commands::MoveWithOnOff::Id)
{
setOnOffValue(endpoint, (state->moveToLevel != state->minLevel));
}
- if (currentLevel == state->moveToLevel)
+ if (currentLevel.Value() == state->moveToLevel)
{
status = EMBER_ZCL_STATUS_SUCCESS;
goto send_default_response;
}
}
- // If the Rate field is 0xFF, the device should move at the default move rate, if available,
+ // If the Rate field is null, the device should move at the default move rate, if available,
// Otherwise, move as fast as possible
- if (rate == 0xFF)
+ if (rate.IsNull())
{
app::DataModel::Nullable<uint8_t> defaultMoveRate;
status = Attributes::DefaultMoveRate::Get(endpoint, defaultMoveRate);
@@ -742,7 +818,7 @@
}
else
{
- state->eventDurationMs = MILLISECOND_TICKS_PER_SECOND / rate;
+ state->eventDurationMs = MILLISECOND_TICKS_PER_SECOND / rate.Value();
}
state->transitionTimeMs = difference * state->eventDurationMs;
@@ -759,12 +835,12 @@
emberAfSendImmediateDefaultResponse(status);
}
-static void stepHandler(EndpointId endpoint, CommandId commandId, uint8_t stepMode, uint8_t stepSize, uint16_t transitionTimeDs,
- uint8_t optionsMask, uint8_t 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)
{
EmberAfLevelControlState * state = getState(endpoint);
EmberAfStatus status;
- uint8_t currentLevel;
+ app::DataModel::Nullable<uint8_t> currentLevel;
uint8_t actualStepSize = stepSize;
if (state == nullptr)
@@ -782,13 +858,21 @@
// Cancel any currently active command before fiddling with the state.
deactivate(endpoint);
- status = Attributes::CurrentLevel::Get(endpoint, ¤tLevel);
+ status = Attributes::CurrentLevel::Get(endpoint, currentLevel);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
emberAfLevelControlClusterPrintln("ERR: reading current level %x", status);
goto send_default_response;
}
+ if (currentLevel.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("ERR: Current Level is null");
+ status = EMBER_ZCL_STATUS_FAILURE;
+
+ goto send_default_response;
+ }
+
state->commandId = commandId;
// Step commands cause the device to move from its current level to a new
@@ -797,26 +881,26 @@
{
case EMBER_ZCL_STEP_MODE_UP:
state->increasing = true;
- if (state->maxLevel - currentLevel < stepSize)
+ if (state->maxLevel - currentLevel.Value() < stepSize)
{
state->moveToLevel = state->maxLevel;
- actualStepSize = static_cast<uint8_t>(state->maxLevel - currentLevel);
+ actualStepSize = static_cast<uint8_t>(state->maxLevel - currentLevel.Value());
}
else
{
- state->moveToLevel = static_cast<uint8_t>(currentLevel + stepSize);
+ state->moveToLevel = static_cast<uint8_t>(currentLevel.Value() + stepSize);
}
break;
case EMBER_ZCL_STEP_MODE_DOWN:
state->increasing = false;
- if (currentLevel - state->minLevel < stepSize)
+ if (currentLevel.Value() - state->minLevel < stepSize)
{
state->moveToLevel = state->minLevel;
- actualStepSize = static_cast<uint8_t>(currentLevel - state->minLevel);
+ actualStepSize = static_cast<uint8_t>(currentLevel.Value() - state->minLevel);
}
else
{
- state->moveToLevel = static_cast<uint8_t>(currentLevel - stepSize);
+ state->moveToLevel = static_cast<uint8_t>(currentLevel.Value() - stepSize);
}
break;
default:
@@ -828,22 +912,22 @@
// logic is to prevent a light from transitioning from off to bright to dim.
// Instead, a light that is off will stay off until the target level is
// reached.
- if (currentLevel <= state->moveToLevel)
+ if (currentLevel.Value() <= state->moveToLevel)
{
if (commandId == Commands::StepWithOnOff::Id)
{
setOnOffValue(endpoint, (state->moveToLevel != state->minLevel));
}
- if (currentLevel == state->moveToLevel)
+ if (currentLevel.Value() == state->moveToLevel)
{
status = EMBER_ZCL_STATUS_SUCCESS;
goto send_default_response;
}
}
- // If the Transition Time field is 0xFFFF, the device should move as fast as
+ // If the Transition Time field is null, the device should move as fast as
// it is able.
- if (transitionTimeDs == 0xFFFF)
+ if (transitionTimeDs.IsNull())
{
state->transitionTimeMs = FASTEST_TRANSITION_TIME_MS;
}
@@ -851,7 +935,7 @@
{
// Transition time comes in as tenths of a second, but we work in
// milliseconds.
- state->transitionTimeMs = (transitionTimeDs * MILLISECOND_TICKS_PER_SECOND / 10);
+ state->transitionTimeMs = (transitionTimeDs.Value() * MILLISECOND_TICKS_PER_SECOND / 10);
// If the new level was pegged at the minimum level, the transition time
// shall be proportionally reduced. This is done after the conversion to
// milliseconds to reduce rounding errors in integer division.
@@ -908,7 +992,8 @@
void emberAfOnOffClusterLevelControlEffectCallback(EndpointId endpoint, bool newValue)
{
app::DataModel::Nullable<uint8_t> resolvedLevel;
- uint8_t temporaryCurrentLevelCache;
+ app::DataModel::Nullable<uint8_t> temporaryCurrentLevelCache;
+
uint16_t currentOnOffTransitionTime;
EmberAfStatus status;
bool useOnLevel = false;
@@ -923,13 +1008,19 @@
uint8_t minimumLevelAllowedForTheDevice = state->minLevel;
// "Temporarily store CurrentLevel."
- status = Attributes::CurrentLevel::Get(endpoint, &temporaryCurrentLevelCache);
+ status = Attributes::CurrentLevel::Get(endpoint, temporaryCurrentLevelCache);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
emberAfLevelControlClusterPrintln("ERR: reading current level %x", status);
return;
}
+ if (temporaryCurrentLevelCache.IsNull())
+ {
+ emberAfLevelControlClusterPrintln("ERR: Current Level is null");
+ return;
+ }
+
#ifndef IGNORE_LEVEL_CONTROL_CLUSTER_ON_LEVEL_ATTRIBUTE
if (emberAfContainsAttribute(endpoint, LevelControl::Id, Attributes::OnLevel::Id))
{
@@ -943,7 +1034,7 @@
if (resolvedLevel.IsNull())
{
// OnLevel has undefined value; fall back to CurrentLevel.
- resolvedLevel.SetNonNull(temporaryCurrentLevelCache);
+ resolvedLevel.SetNonNull(temporaryCurrentLevelCache.Value());
}
else
{
@@ -952,10 +1043,10 @@
}
else
{
- resolvedLevel.SetNonNull(temporaryCurrentLevelCache);
+ resolvedLevel.SetNonNull(temporaryCurrentLevelCache.Value());
}
#else
- resolvedLevel.SetNonNull(temporaryCurrentLevelCache);
+ resolvedLevel.SetNonNull(temporaryCurrentLevelCache.Value());
#endif // IGNORE_LEVEL_CONTROL_CLUSTER_ON_LEVEL_ATTRIBUTE
// Read the OnOffTransitionTime attribute.
@@ -977,6 +1068,9 @@
currentOnOffTransitionTime = 0xFFFF;
#endif // IGNORE_LEVEL_CONTROL_CLUSTER_ON_OFF_TRANSITION_TIME
+ app::DataModel::Nullable<uint16_t> transitionTime;
+ transitionTime.SetNonNull(currentOnOffTransitionTime);
+
if (newValue)
{
// If newValue is OnOff::Commands::On::Id...
@@ -990,7 +1084,7 @@
// "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(), currentOnOffTransitionTime, 0xFF, 0xFF,
+ moveToLevelHandler(endpoint, Commands::MoveToLevel::Id, resolvedLevel.Value(), transitionTime, 0xFF, 0xFF,
INVALID_STORED_LEVEL); // Don't revert to stored level
}
else
@@ -1000,15 +1094,16 @@
// time period OnOffTransitionTime."
if (useOnLevel)
{
+
// If OnLevel is defined, don't revert to stored level.
- moveToLevelHandler(endpoint, Commands::MoveToLevel::Id, minimumLevelAllowedForTheDevice, currentOnOffTransitionTime,
- 0xFF, 0xFF, INVALID_STORED_LEVEL);
+ moveToLevelHandler(endpoint, Commands::MoveToLevel::Id, minimumLevelAllowedForTheDevice, transitionTime, 0xFF, 0xFF,
+ INVALID_STORED_LEVEL);
}
else
{
// If OnLevel is not defined, set the CurrentLevel to the stored level.
- moveToLevelHandler(endpoint, Commands::MoveToLevel::Id, minimumLevelAllowedForTheDevice, currentOnOffTransitionTime,
- 0xFF, 0xFF, temporaryCurrentLevelCache);
+ moveToLevelHandler(endpoint, Commands::MoveToLevel::Id, minimumLevelAllowedForTheDevice, transitionTime, 0xFF, 0xFF,
+ temporaryCurrentLevelCache.Value());
}
}
}
@@ -1046,8 +1141,8 @@
}
}
- uint8_t currentLevel = 0;
- EmberAfStatus status = Attributes::CurrentLevel::Get(endpoint, ¤tLevel);
+ app::DataModel::Nullable<uint8_t> currentLevel;
+ EmberAfStatus status = Attributes::CurrentLevel::Get(endpoint, currentLevel);
if (status == EMBER_ZCL_STATUS_SUCCESS)
{
#ifndef IGNORE_LEVEL_CONTROL_CLUSTER_START_UP_CURRENT_LEVEL
@@ -1075,7 +1170,7 @@
{
if (startUpCurrentLevel.Value() == STARTUP_CURRENT_LEVEL_USE_DEVICE_MINIMUM)
{
- currentLevel = state->minLevel;
+ currentLevel.SetNonNull(state->minLevel);
}
else
{
@@ -1084,15 +1179,15 @@
// Spec doesn't mention this.
if (startUpCurrentLevel.Value() < state->minLevel)
{
- currentLevel = state->minLevel;
+ currentLevel.SetNonNull(state->minLevel);
}
else if (startUpCurrentLevel.Value() > state->maxLevel)
{
- currentLevel = state->maxLevel;
+ currentLevel.SetNonNull(state->maxLevel);
}
else
{
- currentLevel = startUpCurrentLevel.Value();
+ currentLevel.SetNonNull(startUpCurrentLevel.Value());
}
}
}
@@ -1103,11 +1198,11 @@
}
#endif // IGNORE_LEVEL_CONTROL_CLUSTER_START_UP_CURRENT_LEVEL
// In any case, we make sure that the respects min/max
- if (currentLevel < state->minLevel)
+ if (currentLevel.IsNull() || currentLevel.Value() < state->minLevel)
{
Attributes::CurrentLevel::Set(endpoint, state->minLevel);
}
- else if (currentLevel > state->maxLevel)
+ else if (currentLevel.Value() > state->maxLevel)
{
Attributes::CurrentLevel::Set(endpoint, state->maxLevel);
}
diff --git a/src/app/tests/suites/TestLevelControlWithOnOffDependency.yaml b/src/app/tests/suites/TestLevelControlWithOnOffDependency.yaml
index 6a3f63b..69323b7 100644
--- a/src/app/tests/suites/TestLevelControlWithOnOffDependency.yaml
+++ b/src/app/tests/suites/TestLevelControlWithOnOffDependency.yaml
@@ -28,7 +28,7 @@
- name: "nodeId"
value: nodeId
- - label: "Sends a MoveToLevel command to set current level to min value"
+ - label: "Sends a MoveToLevel command to set CurrentLevel to min value"
command: "MoveToLevel"
arguments:
values:
@@ -51,13 +51,13 @@
- label: "Reads CurrentLevel attribute from DUT"
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 1
- label: "Write OnOffTransitionTime attribute"
command: "writeAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
arguments:
value: 0
@@ -71,13 +71,13 @@
- label: "Read OnOffTransitionTime attribute"
command: "readAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
response:
value: 0
- label: "Write OnLevel attribute"
command: "writeAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
arguments:
value: 254
@@ -91,13 +91,13 @@
- label: "Read OnLevel attribute"
command: "readAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
response:
value: 254
- label: "Read MinValue attribute"
command: "readAttribute"
- attribute: "min level"
+ attribute: "MinLevel"
response:
value: 1
@@ -122,7 +122,7 @@
- label: "If OnLevel is defined, check CurrentLevel is OnLevel value"
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 254
@@ -147,11 +147,11 @@
- label: "If OnLevel is defined, check CurrentLevel is min value"
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 1
- - label: "Sends a MoveToLevel command to set current level to a mid value"
+ - label: "Sends a MoveToLevel command to set CurrentLevel to a mid value"
command: "MoveToLevel"
arguments:
values:
@@ -174,13 +174,13 @@
- label: "Reads CurrentLevel attribute from DUT"
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 127
- label: "Set OnLevel attribute to null"
command: "writeAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
arguments:
value: null
@@ -194,7 +194,7 @@
- label: "Read OnLevel attribute"
command: "readAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
response:
value: null
@@ -219,7 +219,7 @@
- label: "If OnLevel is not defined, check CurrentLevel is restored"
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 127
@@ -244,6 +244,6 @@
- label: "If OnLevel is not defined, check CurrentLevel is restored"
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 127
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml
index 179ba1b..86a9e2e 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_2_1.yaml
@@ -31,7 +31,7 @@
- label: "Reads the CurrentLevel attribute"
PICS: LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
saveAs: CurrentLevelValue
constraints:
@@ -42,7 +42,7 @@
- label: "Reads the RemainingTime attribute"
PICS: LVL.S.A0001
command: "readAttribute"
- attribute: "remaining time"
+ attribute: "RemainingTime"
response:
constraints:
type: int16u
@@ -52,7 +52,7 @@
- label: "Reads the MinLevel attribute"
PICS: LVL.S.A0002 && LVL.S.F01
command: "readAttribute"
- attribute: "min level"
+ attribute: "MinLevel"
response:
value: 1
saveAs: MinLevelValue
@@ -62,7 +62,7 @@
- label: "Reads the MinLevel attribute"
PICS: LVL.S.A0002 && !LVL.S.F01
command: "readAttribute"
- attribute: "min level"
+ attribute: "MinLevel"
response:
saveAs: MinLevelFeatureMapNotSupportedValue
constraints:
@@ -73,7 +73,7 @@
- label: "Reads the MaxLevel attribute"
PICS: LVL.S.A0003 && LVL.S.F01
command: "readAttribute"
- attribute: "max level"
+ attribute: "MaxLevel"
response:
value: 254
saveAs: MaxLevelValue
@@ -84,7 +84,7 @@
- label: "Reads the MaxLevel attribute"
PICS: LVL.S.A0003 && !LVL.S.F01
command: "readAttribute"
- attribute: "max level"
+ attribute: "MaxLevel"
response:
saveAs: MaxLevelFeatureMapNotSupportedValue
constraints:
@@ -95,7 +95,7 @@
- label: "Step 4b & 4C Reads the CurrentLevel attribute"
PICS: LVL.S.F01 && LVL.S.A0002 && LVL.S.A0003
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
constraints:
type: int8u
@@ -105,7 +105,7 @@
- label: "Step 4b & 4C Reads the CurrentLevel attribute"
PICS: LVL.S.A0002 && LVL.S.A0003 && !LVL.S.F01
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
constraints:
type: int8u
@@ -115,7 +115,7 @@
- label: "Reads the CurrentFrequency attribute"
PICS: LVL.S.A0004
command: "readAttribute"
- attribute: "current frequency"
+ attribute: "CurrentFrequency"
response:
constraints:
type: int16u
@@ -125,7 +125,7 @@
- label: "Reads the MinFrequency attribute"
PICS: LVL.S.A0005
command: "readAttribute"
- attribute: "min frequency"
+ attribute: "MinFrequency"
response:
saveAs: MinFrequencyValue
constraints:
@@ -136,7 +136,7 @@
- label: "Reads the MaxFrequency attribute"
PICS: LVL.S.A0006
command: "readAttribute"
- attribute: "max frequency"
+ attribute: "MaxFrequency"
response:
saveAs: MaxFrequencyValue
constraints:
@@ -147,7 +147,7 @@
- label: "Step 7b & 7C Reads the CurrentFrequency attribute"
PICS: LVL.S.A0004 && LVL.S.A0005 && LVL.S.A0006
command: "readAttribute"
- attribute: "current frequency"
+ attribute: "CurrentFrequency"
response:
constraints:
type: int16u
@@ -157,7 +157,7 @@
- label: "Reads the OnOffTransitionTime attribute"
PICS: LVL.S.A0010
command: "readAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
response:
constraints:
type: int16u
@@ -167,7 +167,7 @@
- label: "Reads the OnLevel attribute "
PICS: LVL.S.F01 && LVL.S.A0011
command: "readAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
response:
constraints:
type: int8u
@@ -177,7 +177,7 @@
- label: "Reads the OnLevel attribute "
PICS: LVL.S.A0011 && !LVL.S.F01
command: "readAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
response:
constraints:
type: int8u
@@ -187,7 +187,7 @@
- label: "Reads the OnTransitionTime attribute "
PICS: LVL.S.A0012
command: "readAttribute"
- attribute: "on transition time"
+ attribute: "OnTransitionTime"
response:
constraints:
type: int16u
@@ -197,7 +197,7 @@
- label: "Reads the OffTransitionTime attribute "
PICS: LVL.S.A0013
command: "readAttribute"
- attribute: "off transition time"
+ attribute: "OffTransitionTime"
response:
constraints:
type: int16u
@@ -207,7 +207,7 @@
- label: "Reads the DefaultMoveRate attribute "
PICS: LVL.S.A0014
command: "readAttribute"
- attribute: "default move rate"
+ attribute: "DefaultMoveRate"
response:
constraints:
type: int8u
@@ -217,7 +217,7 @@
- label: "Reads the Options attribute "
PICS: LVL.S.A000f
command: "readAttribute"
- attribute: "options"
+ attribute: "Options"
response:
value: 0
constraints:
@@ -226,7 +226,7 @@
- label: "Reads the StartUpCurrentLevel attribute "
PICS: LVL.S.A4000
command: "readAttribute"
- attribute: "start up current level"
+ attribute: "StartUpCurrentLevel"
response:
constraints:
type: int8u
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_2.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_2.yaml
index d6a3ae0..2fe9697 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_2_2.yaml
@@ -49,7 +49,7 @@
- label: "Reads the OnOffTransitionTime attribute from the DUT"
PICS: LVL.S.A0010
command: "readAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
response:
saveAs: OnOffTransitionTimeValue
constraints:
@@ -60,14 +60,14 @@
- label: "writes the OnOffTransitionTime attribute on the DUT"
PICS: LVL.S.A0010
command: "writeAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
arguments:
value: OnOffTransitionTimeConfigValue
- label: "Reads the OnOffTransitionTime attribute from the DUT"
PICS: LVL.S.A0010
command: "readAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
response:
value: OnOffTransitionTimeConfigValue
constraints:
@@ -77,7 +77,7 @@
- label: "Reads the OnLevel attribute from the DUT"
PICS: LVL.S.A0011
command: "readAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
response:
saveAs: OnLevelValue
constraints:
@@ -88,14 +88,14 @@
- label: "writes the OnLevel attribute on the DUT"
PICS: LVL.S.A0011
command: "writeAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
arguments:
value: OnLevelConfigValue
- label: "Reads the OnLevel attribute from the DUT"
PICS: LVL.S.A0011
command: "readAttribute"
- attribute: "on level"
+ attribute: "OnLevel"
response:
value: OnLevelConfigValue
constraints:
@@ -105,7 +105,7 @@
- label: "Reads the OnTransitionTime attribute from the DUT"
PICS: LVL.S.A0012
command: "readAttribute"
- attribute: "on transition time"
+ attribute: "OnTransitionTime"
response:
saveAs: OnTransitionTimeValue
constraints:
@@ -116,14 +116,14 @@
- label: "Writes the OnTransitionTime attribute on the DUT"
PICS: LVL.S.A0012
command: "writeAttribute"
- attribute: "on transition time"
+ attribute: "OnTransitionTime"
arguments:
value: OnTransitionTimeConfigValue
- label: "Reads the OnTransitionTime attribute from the DUT"
PICS: LVL.S.A0012
command: "readAttribute"
- attribute: "on transition time"
+ attribute: "OnTransitionTime"
response:
value: OnTransitionTimeConfigValue
constraints:
@@ -133,7 +133,7 @@
- label: "Reads the OffTransitionTime attribute from the DUT"
PICS: LVL.S.A0013
command: "readAttribute"
- attribute: "off transition time"
+ attribute: "OffTransitionTime"
response:
saveAs: OffTransitionTimeValue
constraints:
@@ -144,14 +144,14 @@
- label: "Writes the OffTransitionTime attribute on the DUT"
PICS: LVL.S.A0013
command: "writeAttribute"
- attribute: "off transition time"
+ attribute: "OffTransitionTime"
arguments:
value: OffTransitionTimeConfigValue
- label: "Reads the OffTransitionTime attribute from the DUT"
PICS: LVL.S.A0013
command: "readAttribute"
- attribute: "off transition time"
+ attribute: "OffTransitionTime"
response:
value: OffTransitionTimeConfigValue
constraints:
@@ -161,7 +161,7 @@
- label: "Reads the DefaultMoveRate attribute from the DUT"
PICS: LVL.S.A0014
command: "readAttribute"
- attribute: "default move rate"
+ attribute: "DefaultMoveRate"
response:
saveAs: DefaultMoveRatevalue
constraints:
@@ -172,14 +172,14 @@
- label: "Writes the DefaultMoveRate attribute on the DUT"
PICS: LVL.S.A0014
command: "writeAttribute"
- attribute: "default move rate"
+ attribute: "DefaultMoveRate"
arguments:
value: DefaultMoveRateConfigValue
- label: "Reads the DefaultMoveRate attribute from the DUT"
PICS: LVL.S.A0014
command: "readAttribute"
- attribute: "default move rate"
+ attribute: "DefaultMoveRate"
response:
value: DefaultMoveRateConfigValue
constraints:
@@ -189,7 +189,7 @@
- label: "Reads the StartUpCurrentLevel attribute from the DUT"
PICS: LVL.S.A4000
command: "readAttribute"
- attribute: "start up current level"
+ attribute: "StartUpCurrentLevel"
response:
saveAs: StartUpCurrentLevelValue
constraints:
@@ -200,14 +200,14 @@
- label: "writes the StartUpCurrentLevel attribute on the DUT"
PICS: LVL.S.A4000
command: "writeAttribute"
- attribute: "start up current level"
+ attribute: "StartUpCurrentLevel"
arguments:
value: StartUpCurrentLevelConfigValue
- label: "reads the StartUpCurrentLevel attribute from the DUT"
PICS: LVL.S.A4000
command: "readAttribute"
- attribute: "start up current level"
+ attribute: "StartUpCurrentLevel"
response:
value: StartUpCurrentLevelConfigValue
constraints:
@@ -218,6 +218,6 @@
- label: "writes back default value of OnOffTransitionTime attribute"
PICS: LVL.S.A0010
command: "writeAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
arguments:
value: 0
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml
index 9917d05..d2447c8 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml
@@ -51,7 +51,7 @@
- label: "Reads the MinLevel attribute"
PICS: LVL.S.A0002
command: "readAttribute"
- attribute: "min level"
+ attribute: "MinLevel"
response:
constraints:
type: int8u
@@ -61,7 +61,7 @@
- label: "Reads the MaxLevel attribute"
PICS: LVL.S.A0003
command: "readAttribute"
- attribute: "max level"
+ attribute: "MaxLevel"
response:
constraints:
type: int8u
@@ -93,7 +93,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C04.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 64
@@ -122,7 +122,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 100
@@ -151,21 +151,20 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000 && LVL.S.M.VarRate
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 128
- label: "Reads the OnOffTransitionTime attribute from the DUT"
PICS: LVL.S.A0010
command: "readAttribute"
- attribute: "on off transition time"
+ attribute: "OnOffTransitionTime"
response:
constraints:
type: int16u
minValue: 0
maxValue: 65535
- # Null is not supported here 0xFFFF is considerd as Null
- label: "sends a Move to level command"
PICS: LVL.S.C00.Rsp && LVL.S.A0010
command: "MoveToLevel"
@@ -174,7 +173,7 @@
- name: "level"
value: 64
- name: "transitionTime"
- value: 0xFFFF
+ value: null
- name: "OptionsMask"
value: 0
- name: "OptionsOverride"
@@ -191,7 +190,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0010 && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 64
@@ -239,7 +238,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 100
@@ -273,7 +272,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 100
@@ -302,7 +301,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 100
@@ -331,7 +330,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 160
@@ -379,7 +378,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 100
@@ -413,7 +412,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 120
@@ -442,7 +441,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 120
@@ -471,7 +470,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C00.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 160
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml
index f03caa2..3e2b090 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml
@@ -51,9 +51,9 @@
- label: "Reads Minlevel attribute from DUT"
PICS: LVL.S.A0002
command: "readAttribute"
- attribute: "min level"
+ attribute: "MinLevel"
response:
- saveAs: MinlevelValue
+ saveAs: MinimumLevelValue
constraints:
type: int8u
minValue: 0
@@ -73,12 +73,12 @@
- name: "OptionsOverride"
value: 1
- - label: "reads max level attribute from DUT"
+ - label: "reads MaxLevel attribute from DUT"
PICS: LVL.S.A0003
command: "readAttribute"
- attribute: "max level"
+ attribute: "MaxLevel"
response:
- saveAs: MaxlevelValue
+ saveAs: MaximumLevelValue
constraints:
type: int8u
minValue: 0
@@ -123,9 +123,12 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C01.Rsp && LVL.S.A0000 && LVL.S.A0003
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
- value: MaxlevelValue
+ value: MaximumLevelValue
+ constraints:
+ minValue: 0
+ maxValue: 255
- label: "sends a Move command"
PICS: LVL.S.C05.Rsp
@@ -166,17 +169,17 @@
- label: "reads CurrentLevel attribute from DUT"
PICS: LVL.S.C05.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
- value: MinlevelValue
+ value: MinimumLevelValue
constraints:
minValue: 0
maxValue: 255
- - label: "reads default move rate attribute from DUT"
+ - label: "reads DefaultMoveRate attribute from DUT"
PICS: LVL.S.A0014
command: "readAttribute"
- attribute: "default move rate"
+ attribute: "DefaultMoveRate"
response:
saveAs: DefaultMoveRateValue
constraints:
@@ -184,7 +187,7 @@
minValue: 0
maxValue: 255
- - label: "sends a Move up command at default move rate"
+ - label: "sends a Move up command at DefaultMoveRate"
PICS: LVL.S.C05.Rsp && LVL.S.A0014
command: "Move"
arguments:
@@ -192,7 +195,7 @@
- name: "moveMode"
value: 0
- name: "rate"
- value: 255
+ value: null
- name: "OptionsMask"
value: 1
- name: "OptionsOverride"
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml
index 600b487..e39fe03 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml
@@ -51,7 +51,7 @@
- label: "Reads Minlevel attribute from DUT"
PICS: LVL.S.A0002
command: "readAttribute"
- attribute: "min level"
+ attribute: "MinLevel"
response:
saveAs: MinlevelValue
constraints:
@@ -87,10 +87,10 @@
- name: "OptionsOverride"
value: 0
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.A0000 && LVL.S.C04.Rsp
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: MinlevelValue + 1
saveAs: CurrentlevelValue
@@ -99,10 +99,10 @@
minValue: 0
maxValue: 254
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.A0000 && !LVL.S.A0002 && LVL.S.C04.Rsp
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 2
constraints:
@@ -150,19 +150,19 @@
- name: "ms"
value: 2500
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.A0000 && LVL.S.C02.Rsp && LVL.S.M.VarRate
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 66
constraints:
type: int8u
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.A0000 && LVL.S.C02.Rsp && !LVL.S.M.VarRate
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 66
constraints:
@@ -208,31 +208,31 @@
- name: "ms"
value: 2500
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C06.Rsp && LVL.S.A0000 && LVL.S.M.VarRate
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: CurrentlevelValue
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.M.VarRate
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: CurrentlevelValue
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002 && LVL.S.M.VarRate
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 2
- - label: "Reads current level attribute from DUT"
+ - label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002 && !LVL.S.M.VarRate
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
value: 2
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml
index f68f33e..8273608 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml
@@ -51,7 +51,7 @@
- label: "Reads Minlevel attribute from DUT"
PICS: LVL.S.A0002
command: "readAttribute"
- attribute: "min level"
+ attribute: "MinLevel"
response:
saveAs: MinlevelValue
constraints:
@@ -76,7 +76,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.A0000 && LVL.S.C04.Rsp
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
saveAs: CurrentLevelValue
constraints:
@@ -129,7 +129,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C01.Rsp && LVL.S.C03.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
constraints:
minValue: 21
@@ -182,7 +182,7 @@
- label: "Reads CurrentLevel attribute from DUT"
PICS: LVL.S.C01.Rsp && LVL.S.C07.Rsp && LVL.S.A0000
command: "readAttribute"
- attribute: "current level"
+ attribute: "CurrentLevel"
response:
constraints:
minValue: 43
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_7_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_7_1.yaml
index 96fcf15..363764d 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_7_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_7_1.yaml
@@ -31,7 +31,7 @@
./chip-tool levelcontrol read min-level 1 1
[1654065563.003862][10039:10044] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0002 DataVersion: 540248549
- [1654065563.003916][10039:10044] CHIP:TOO: min level: 0
+ [1654065563.003916][10039:10044] CHIP:TOO: MinLevel: 0
[1654065563.003992][10039:10044] CHIP:EM: Sending Standalone Ack for MessageCounter:10228121 on exchange 38337i
disabled: true
@@ -44,7 +44,7 @@
[1654065684.869569][10048:10053] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0003 DataVersion: 540248549
- [1654065684.869621][10048:10053] CHIP:TOO: max level: 254
+ [1654065684.869621][10048:10053] CHIP:TOO: MaxLevel: 254
[1654065684.869737][10048:10053] CHIP:EM: Sending Standalone Ack for MessageCounter:9018536 on exchange 12814i
disabled: true
@@ -99,7 +99,7 @@
./chip-tool levelcontrol read current-level 1 1
[1654065859.401140][10188:10193] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0000 DataVersion: 540248551
- [1654065859.401197][10188:10193] CHIP:TOO: current level: 253
+ [1654065859.401197][10188:10193] CHIP:TOO: CurrentLevel: 253
[1654065859.401268][10188:10193] CHIP:EM: Sending Standalone Ack for MessageCounter:2942065 on exchange 21982i
disabled: true
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 aa19355..85049e7 100644
--- a/src/app/zap-templates/zcl/data-model/silabs/general.xml
+++ b/src/app/zap-templates/zcl/data-model/silabs/general.xml
@@ -191,22 +191,22 @@
<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" min="0x00" max="0xFF" writable="false" reportable="true" default="0x00" optional="false">current level</attribute>
- <attribute side="server" code="0x0001" define="LEVEL_CONTROL_REMAINING_TIME" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">remaining time</attribute>
- <attribute side="server" code="0x0002" define="MINIMUM_LEVEL" type="INT8U" min="0x00" max="0xFF" writable="false" default="0x00" optional="true">min level</attribute>
- <attribute side="server" code="0x0003" define="MAXIMUM_LEVEL" type="INT8U" min="0x00" max="0xFF" writable="false" default="0xFE" optional="true">max level</attribute>
- <attribute side="server" code="0x0004" define="CURRENT_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">current frequency</attribute>
- <attribute side="server" code="0x0005" define="MIN_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">min frequency</attribute>
- <attribute side="server" code="0x0006" define="MAX_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0000" optional="true">max frequency</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">on off transition time</attribute>
- <attribute side="server" code="0x0011" define="ON_LEVEL" type="INT8U" isNullable="true" writable="true" optional="false">on level</attribute>
- <attribute side="server" code="0x0012" define="ON_TRANSITION_TIME" type="INT16U" isNullable="true" writable="true" optional="true" introducedIn="ha-1.2-05-3520-29">on transition time</attribute>
- <attribute side="server" code="0x0013" define="OFF_TRANSITION_TIME" type="INT16U" isNullable="true" writable="true" optional="true" introducedIn="ha-1.2-05-3520-29">off transition time</attribute>
- <attribute side="server" code="0x0014" define="DEFAULT_MOVE_RATE" type="INT8U" isNullable="true" writable="true" optional="true" introducedIn="ha-1.2-05-3520-29">default move rate</attribute>
- <attribute side="server" code="0x000F" define="OPTIONS" type="BITMAP8" min="0x00" max="0x03" writable="true" default="0x00" optional="false" introducedIn="l&o-1.0-15-0014-04">options</attribute>
- <attribute side="server" code="0x4000" define="START_UP_CURRENT_LEVEL" type="INT8U" isNullable="true" writable="true" optional="true" introducedIn="l&o-1.0-15-0014-04">
- <description>start up current level</description>
+ <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">
+ <description>StartUpCurrentLevel</description>
<access op="read" role="view"/>
<access op="write" role="manage"/>
</attribute>
@@ -214,17 +214,17 @@
<description>
Command description for MoveToLevel
</description>
- <arg name="level" type="INT8U"/>
- <arg name="transitionTime" type="INT16U"/>
- <arg name="OptionsMask" type="BITMAP8"/>
+ <arg name="Level" type="INT8U"/>
+ <arg name="TransitionTime" type="INT16U" isNullable="true"/>
+ <arg name="OptionsMask" type="BITMAP8"/>
<arg name="OptionsOverride" type="BITMAP8"/>
</command>
<command source="client" code="0x01" name="Move" optional="false" cli="zcl level-control move">
<description>
Command description for Move
</description>
- <arg name="moveMode" type="MoveMode"/>
- <arg name="rate" type="INT8U"/>
+ <arg name="MoveMode" type="MoveMode"/>
+ <arg name="Rate" type="INT8U" isNullable="true"/>
<arg name="OptionsMask" type="BITMAP8"/>
<arg name="OptionsOverride" type="BITMAP8"/>
</command>
@@ -232,9 +232,9 @@
<description>
Command description for Step
</description>
- <arg name="stepMode" type="StepMode"/>
- <arg name="stepSize" type="INT8U"/>
- <arg name="transitionTime" type="INT16U"/>
+ <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"/>
</command>
@@ -249,17 +249,17 @@
<description>
Command description for MoveToLevelWithOnOff
</description>
- <arg name="level" type="INT8U"/>
- <arg name="transitionTime" type="INT16U"/>
- <arg name="OptionsMask" type="BITMAP8"/>
+ <arg name="Level" type="INT8U"/>
+ <arg name="TransitionTime" type="INT16U" isNullable="true"/>
+ <arg name="OptionsMask" type="BITMAP8"/>
<arg name="OptionsOverride" type="BITMAP8"/>
</command>
<command source="client" code="0x05" name="MoveWithOnOff" optional="false" cli="zcl level-control o-move">
<description>
Command description for MoveWithOnOff
</description>
- <arg name="moveMode" type="MoveMode"/>
- <arg name="rate" type="INT8U"/>
+ <arg name="MoveMode" type="MoveMode"/>
+ <arg name="Rate" type="INT8U" isNullable="true"/>
<arg name="OptionsMask" type="BITMAP8"/>
<arg name="OptionsOverride" type="BITMAP8"/>
</command>
@@ -267,9 +267,9 @@
<description>
Command description for StepWithOnOff
</description>
- <arg name="stepMode" type="StepMode"/>
- <arg name="stepSize" type="INT8U"/>
- <arg name="transitionTime" type="INT16U"/>
+ <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"/>
</command>
@@ -285,7 +285,7 @@
Change the currrent frequency to the provided one, or a close
approximation if the exact provided one is not possible.
</description>
- <arg name="Frequency" type="int16u"/>
+ <arg name="Frequency" type="INT16U"/>
</command>
</cluster>
<cluster>
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 9c71252..eee66f2 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -315,7 +315,7 @@
kFrequency = 0x4;
}
- readonly attribute int8u currentLevel = 0;
+ readonly attribute nullable int8u currentLevel = 0;
readonly attribute int16u remainingTime = 1;
readonly attribute int8u minLevel = 2;
readonly attribute int8u maxLevel = 3;
@@ -337,14 +337,14 @@
request struct MoveToLevelRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -352,7 +352,7 @@
request struct StepRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
@@ -364,14 +364,14 @@
request struct MoveToLevelWithOnOffRequest {
INT8U level = 0;
- INT16U transitionTime = 1;
+ nullable INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveMode moveMode = 0;
- INT8U rate = 1;
+ nullable INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
@@ -379,7 +379,7 @@
request struct StepWithOnOffRequest {
StepMode stepMode = 0;
INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ nullable INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
index 3936870..826d7f3 100644
--- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
@@ -842,10 +842,17 @@
return nullptr;
}
jobject value;
- 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);
+ if (cppValue.IsNull())
+ {
+ value = nullptr;
+ }
+ else
+ {
+ 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(), value);
+ }
return value;
}
case Attributes::RemainingTime::Id: {
diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp
index f961ba0..0e12319 100644
--- a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp
+++ b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp
@@ -1851,6 +1851,71 @@
env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj);
}
+CHIPLevelControlCurrentLevelAttributeCallback::CHIPLevelControlCurrentLevelAttributeCallback(jobject javaCallback, bool keepAlive) :
+ chip::Callback::Callback<CHIPLevelControlClusterCurrentLevelAttributeCallbackType>(CallbackFn, this), keepAlive(keepAlive)
+{
+ JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+ if (env == nullptr)
+ {
+ ChipLogError(Zcl, "Could not create global reference for Java callback");
+ return;
+ }
+
+ javaCallbackRef = env->NewGlobalRef(javaCallback);
+ if (javaCallbackRef == nullptr)
+ {
+ ChipLogError(Zcl, "Could not create global reference for Java callback");
+ }
+}
+
+CHIPLevelControlCurrentLevelAttributeCallback::~CHIPLevelControlCurrentLevelAttributeCallback()
+{
+ JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+ if (env == nullptr)
+ {
+ ChipLogError(Zcl, "Could not delete global reference for Java callback");
+ return;
+ }
+ env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPLevelControlCurrentLevelAttributeCallback::CallbackFn(void * context,
+ const chip::app::DataModel::Nullable<uint8_t> & value)
+{
+ chip::DeviceLayer::StackUnlock unlock;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+ jobject javaCallbackRef;
+
+ VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+ std::unique_ptr<CHIPLevelControlCurrentLevelAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+ reinterpret_cast<CHIPLevelControlCurrentLevelAttributeCallback *>(context), maybeDestroy);
+
+ // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+ javaCallbackRef = cppCallback.get()->javaCallbackRef;
+ VerifyOrReturn(javaCallbackRef != nullptr,
+ ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+ jmethodID javaMethod;
+ err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod);
+ VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+ jobject javaValue;
+ if (value.IsNull())
+ {
+ javaValue = nullptr;
+ }
+ else
+ {
+ std::string javaValueClassName = "java/lang/Integer";
+ std::string javaValueCtorSignature = "(I)V";
+ chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+ value.Value(), javaValue);
+ }
+
+ env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
CHIPLevelControlOnLevelAttributeCallback::CHIPLevelControlOnLevelAttributeCallback(jobject javaCallback, bool keepAlive) :
chip::Callback::Callback<CHIPLevelControlClusterOnLevelAttributeCallbackType>(CallbackFn, this), keepAlive(keepAlive)
{
diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.h b/src/controller/java/zap-generated/CHIPReadCallbacks.h
index e42488c..f4c48ca 100644
--- a/src/controller/java/zap-generated/CHIPReadCallbacks.h
+++ b/src/controller/java/zap-generated/CHIPReadCallbacks.h
@@ -897,6 +897,36 @@
bool keepAlive;
};
+class CHIPLevelControlCurrentLevelAttributeCallback
+ : public chip::Callback::Callback<CHIPLevelControlClusterCurrentLevelAttributeCallbackType>
+{
+public:
+ CHIPLevelControlCurrentLevelAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+ ~CHIPLevelControlCurrentLevelAttributeCallback();
+
+ static void maybeDestroy(CHIPLevelControlCurrentLevelAttributeCallback * callback)
+ {
+ if (!callback->keepAlive)
+ {
+ callback->Cancel();
+ chip::Platform::Delete<CHIPLevelControlCurrentLevelAttributeCallback>(callback);
+ }
+ }
+
+ static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint8_t> & value);
+ static void OnSubscriptionEstablished(void * context)
+ {
+ CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+ reinterpret_cast<CHIPLevelControlCurrentLevelAttributeCallback *>(context)->javaCallbackRef);
+ VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+ };
+
+private:
+ jobject javaCallbackRef;
+ bool keepAlive;
+};
+
class CHIPLevelControlOnLevelAttributeCallback
: public chip::Callback::Callback<CHIPLevelControlClusterOnLevelAttributeCallbackType>
{
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
index 78c06ce..a0643ba 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
@@ -1509,7 +1509,7 @@
public void moveToLevel(
DefaultClusterCallback callback,
Integer level,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride) {
moveToLevel(
@@ -1519,7 +1519,7 @@
public void moveToLevel(
DefaultClusterCallback callback,
Integer level,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
int timedInvokeTimeoutMs) {
@@ -1536,7 +1536,7 @@
public void move(
DefaultClusterCallback callback,
Integer moveMode,
- Integer rate,
+ @Nullable Integer rate,
Integer optionsMask,
Integer optionsOverride) {
move(chipClusterPtr, callback, moveMode, rate, optionsMask, optionsOverride, null);
@@ -1545,7 +1545,7 @@
public void move(
DefaultClusterCallback callback,
Integer moveMode,
- Integer rate,
+ @Nullable Integer rate,
Integer optionsMask,
Integer optionsOverride,
int timedInvokeTimeoutMs) {
@@ -1563,7 +1563,7 @@
DefaultClusterCallback callback,
Integer stepMode,
Integer stepSize,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride) {
step(
@@ -1581,7 +1581,7 @@
DefaultClusterCallback callback,
Integer stepMode,
Integer stepSize,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
int timedInvokeTimeoutMs) {
@@ -1612,7 +1612,7 @@
public void moveToLevelWithOnOff(
DefaultClusterCallback callback,
Integer level,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride) {
moveToLevelWithOnOff(
@@ -1622,7 +1622,7 @@
public void moveToLevelWithOnOff(
DefaultClusterCallback callback,
Integer level,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
int timedInvokeTimeoutMs) {
@@ -1639,7 +1639,7 @@
public void moveWithOnOff(
DefaultClusterCallback callback,
Integer moveMode,
- Integer rate,
+ @Nullable Integer rate,
Integer optionsMask,
Integer optionsOverride) {
moveWithOnOff(chipClusterPtr, callback, moveMode, rate, optionsMask, optionsOverride, null);
@@ -1648,7 +1648,7 @@
public void moveWithOnOff(
DefaultClusterCallback callback,
Integer moveMode,
- Integer rate,
+ @Nullable Integer rate,
Integer optionsMask,
Integer optionsOverride,
int timedInvokeTimeoutMs) {
@@ -1666,7 +1666,7 @@
DefaultClusterCallback callback,
Integer stepMode,
Integer stepSize,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride) {
stepWithOnOff(
@@ -1684,7 +1684,7 @@
DefaultClusterCallback callback,
Integer stepMode,
Integer stepSize,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
int timedInvokeTimeoutMs) {
@@ -1716,7 +1716,7 @@
long chipClusterPtr,
DefaultClusterCallback Callback,
Integer level,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
@Nullable Integer timedInvokeTimeoutMs);
@@ -1725,7 +1725,7 @@
long chipClusterPtr,
DefaultClusterCallback Callback,
Integer moveMode,
- Integer rate,
+ @Nullable Integer rate,
Integer optionsMask,
Integer optionsOverride,
@Nullable Integer timedInvokeTimeoutMs);
@@ -1735,7 +1735,7 @@
DefaultClusterCallback Callback,
Integer stepMode,
Integer stepSize,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
@Nullable Integer timedInvokeTimeoutMs);
@@ -1751,7 +1751,7 @@
long chipClusterPtr,
DefaultClusterCallback Callback,
Integer level,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
@Nullable Integer timedInvokeTimeoutMs);
@@ -1760,7 +1760,7 @@
long chipClusterPtr,
DefaultClusterCallback Callback,
Integer moveMode,
- Integer rate,
+ @Nullable Integer rate,
Integer optionsMask,
Integer optionsOverride,
@Nullable Integer timedInvokeTimeoutMs);
@@ -1770,7 +1770,7 @@
DefaultClusterCallback Callback,
Integer stepMode,
Integer stepSize,
- Integer transitionTime,
+ @Nullable Integer transitionTime,
Integer optionsMask,
Integer optionsOverride,
@Nullable Integer timedInvokeTimeoutMs);
@@ -1782,6 +1782,14 @@
Integer optionsOverride,
@Nullable Integer timedInvokeTimeoutMs);
+ public interface CurrentLevelAttributeCallback {
+ void onSuccess(@Nullable Integer value);
+
+ void onError(Exception ex);
+
+ default void onSubscriptionEstablished() {}
+ }
+
public interface OnLevelAttributeCallback {
void onSuccess(@Nullable Integer value);
@@ -1846,12 +1854,12 @@
default void onSubscriptionEstablished() {}
}
- public void readCurrentLevelAttribute(IntegerAttributeCallback callback) {
+ public void readCurrentLevelAttribute(CurrentLevelAttributeCallback callback) {
readCurrentLevelAttribute(chipClusterPtr, callback);
}
public void subscribeCurrentLevelAttribute(
- IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+ CurrentLevelAttributeCallback callback, int minInterval, int maxInterval) {
subscribeCurrentLevelAttribute(chipClusterPtr, callback, minInterval, maxInterval);
}
@@ -2081,10 +2089,13 @@
}
private native void readCurrentLevelAttribute(
- long chipClusterPtr, IntegerAttributeCallback callback);
+ long chipClusterPtr, CurrentLevelAttributeCallback callback);
private native void subscribeCurrentLevelAttribute(
- long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
+ long chipClusterPtr,
+ CurrentLevelAttributeCallback callback,
+ int minInterval,
+ int maxInterval);
private native void readRemainingTimeAttribute(
long chipClusterPtr, IntegerAttributeCallback callback);
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java
index fb45642..469216c 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java
@@ -577,7 +577,8 @@
new InteractionInfo(
(cluster, callback, commandArguments) -> {
((ChipClusters.LevelControlCluster) cluster)
- .readCurrentLevelAttribute((ChipClusters.IntegerAttributeCallback) callback);
+ .readCurrentLevelAttribute(
+ (ChipClusters.LevelControlCluster.CurrentLevelAttributeCallback) callback);
},
() -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
readLevelControlCurrentLevelCommandParams);
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 54c5651..e1830f2 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -1584,7 +1584,7 @@
def descriptor(cls) -> ClusterObjectDescriptor:
return ClusterObjectDescriptor(
Fields = [
- ClusterObjectFieldDescriptor(Label="currentLevel", Tag=0x00000000, Type=uint),
+ ClusterObjectFieldDescriptor(Label="currentLevel", Tag=0x00000000, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="remainingTime", Tag=0x00000001, Type=typing.Optional[uint]),
ClusterObjectFieldDescriptor(Label="minLevel", Tag=0x00000002, Type=typing.Optional[uint]),
ClusterObjectFieldDescriptor(Label="maxLevel", Tag=0x00000003, Type=typing.Optional[uint]),
@@ -1605,7 +1605,7 @@
ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
])
- currentLevel: 'uint' = None
+ currentLevel: 'typing.Union[Nullable, uint]' = None
remainingTime: 'typing.Optional[uint]' = None
minLevel: 'typing.Optional[uint]' = None
maxLevel: 'typing.Optional[uint]' = None
@@ -1648,13 +1648,13 @@
return ClusterObjectDescriptor(
Fields = [
ClusterObjectFieldDescriptor(Label="level", Tag=0, Type=uint),
- ClusterObjectFieldDescriptor(Label="transitionTime", Tag=1, Type=uint),
+ ClusterObjectFieldDescriptor(Label="transitionTime", Tag=1, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="optionsMask", Tag=2, Type=uint),
ClusterObjectFieldDescriptor(Label="optionsOverride", Tag=3, Type=uint),
])
level: 'uint' = 0
- transitionTime: 'uint' = 0
+ transitionTime: 'typing.Union[Nullable, uint]' = NullValue
optionsMask: 'uint' = 0
optionsOverride: 'uint' = 0
@@ -1669,13 +1669,13 @@
return ClusterObjectDescriptor(
Fields = [
ClusterObjectFieldDescriptor(Label="moveMode", Tag=0, Type=LevelControl.Enums.MoveMode),
- ClusterObjectFieldDescriptor(Label="rate", Tag=1, Type=uint),
+ ClusterObjectFieldDescriptor(Label="rate", Tag=1, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="optionsMask", Tag=2, Type=uint),
ClusterObjectFieldDescriptor(Label="optionsOverride", Tag=3, Type=uint),
])
moveMode: 'LevelControl.Enums.MoveMode' = 0
- rate: 'uint' = 0
+ rate: 'typing.Union[Nullable, uint]' = NullValue
optionsMask: 'uint' = 0
optionsOverride: 'uint' = 0
@@ -1691,14 +1691,14 @@
Fields = [
ClusterObjectFieldDescriptor(Label="stepMode", Tag=0, Type=LevelControl.Enums.StepMode),
ClusterObjectFieldDescriptor(Label="stepSize", Tag=1, Type=uint),
- ClusterObjectFieldDescriptor(Label="transitionTime", Tag=2, Type=uint),
+ ClusterObjectFieldDescriptor(Label="transitionTime", Tag=2, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="optionsMask", Tag=3, Type=uint),
ClusterObjectFieldDescriptor(Label="optionsOverride", Tag=4, Type=uint),
])
stepMode: 'LevelControl.Enums.StepMode' = 0
stepSize: 'uint' = 0
- transitionTime: 'uint' = 0
+ transitionTime: 'typing.Union[Nullable, uint]' = NullValue
optionsMask: 'uint' = 0
optionsOverride: 'uint' = 0
@@ -1730,13 +1730,13 @@
return ClusterObjectDescriptor(
Fields = [
ClusterObjectFieldDescriptor(Label="level", Tag=0, Type=uint),
- ClusterObjectFieldDescriptor(Label="transitionTime", Tag=1, Type=uint),
+ ClusterObjectFieldDescriptor(Label="transitionTime", Tag=1, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="optionsMask", Tag=2, Type=uint),
ClusterObjectFieldDescriptor(Label="optionsOverride", Tag=3, Type=uint),
])
level: 'uint' = 0
- transitionTime: 'uint' = 0
+ transitionTime: 'typing.Union[Nullable, uint]' = NullValue
optionsMask: 'uint' = 0
optionsOverride: 'uint' = 0
@@ -1751,13 +1751,13 @@
return ClusterObjectDescriptor(
Fields = [
ClusterObjectFieldDescriptor(Label="moveMode", Tag=0, Type=LevelControl.Enums.MoveMode),
- ClusterObjectFieldDescriptor(Label="rate", Tag=1, Type=uint),
+ ClusterObjectFieldDescriptor(Label="rate", Tag=1, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="optionsMask", Tag=2, Type=uint),
ClusterObjectFieldDescriptor(Label="optionsOverride", Tag=3, Type=uint),
])
moveMode: 'LevelControl.Enums.MoveMode' = 0
- rate: 'uint' = 0
+ rate: 'typing.Union[Nullable, uint]' = NullValue
optionsMask: 'uint' = 0
optionsOverride: 'uint' = 0
@@ -1773,14 +1773,14 @@
Fields = [
ClusterObjectFieldDescriptor(Label="stepMode", Tag=0, Type=LevelControl.Enums.StepMode),
ClusterObjectFieldDescriptor(Label="stepSize", Tag=1, Type=uint),
- ClusterObjectFieldDescriptor(Label="transitionTime", Tag=2, Type=uint),
+ ClusterObjectFieldDescriptor(Label="transitionTime", Tag=2, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="optionsMask", Tag=3, Type=uint),
ClusterObjectFieldDescriptor(Label="optionsOverride", Tag=4, Type=uint),
])
stepMode: 'LevelControl.Enums.StepMode' = 0
stepSize: 'uint' = 0
- transitionTime: 'uint' = 0
+ transitionTime: 'typing.Union[Nullable, uint]' = NullValue
optionsMask: 'uint' = 0
optionsOverride: 'uint' = 0
@@ -1830,9 +1830,9 @@
@ChipUtility.classproperty
def attribute_type(cls) -> ClusterObjectFieldDescriptor:
- return ClusterObjectFieldDescriptor(Type=uint)
+ return ClusterObjectFieldDescriptor(Type=typing.Union[Nullable, uint])
- value: 'uint' = 0
+ value: 'typing.Union[Nullable, uint]' = NullValue
@dataclass
class RemainingTime(ClusterAttributeDescriptor):
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
index 2bacad5..39bc7a4 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
@@ -773,8 +773,12 @@
if (*aError != CHIP_NO_ERROR) {
return nil;
}
- NSNumber * _Nonnull value;
- value = [NSNumber numberWithUnsignedChar:cppValue];
+ NSNumber * _Nullable value;
+ if (cppValue.IsNull()) {
+ value = nil;
+ } else {
+ value = [NSNumber numberWithUnsignedChar:cppValue.Value()];
+ }
return value;
}
case Attributes::RemainingTime::Id: {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
index fc64b9b..cb7ca86 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
@@ -4058,7 +4058,12 @@
}
}
request.level = params.level.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -4088,7 +4093,12 @@
}
}
request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
- request.rate = params.rate.unsignedCharValue;
+ if (params.rate == nil) {
+ request.rate.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.rate.SetNonNull();
+ nonNullValue_0 = params.rate.unsignedCharValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -4119,7 +4129,12 @@
}
request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
request.stepSize = params.stepSize.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -4178,7 +4193,12 @@
}
}
request.level = params.level.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -4209,7 +4229,12 @@
}
}
request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
- request.rate = params.rate.unsignedCharValue;
+ if (params.rate == nil) {
+ request.rate.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.rate.SetNonNull();
+ nonNullValue_0 = params.rate.unsignedCharValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -4241,7 +4266,12 @@
}
request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
request.stepSize = params.stepSize.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -4312,10 +4342,10 @@
- (void)readAttributeCurrentLevelWithCompletionHandler:(void (^)(
NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
{
- new MTRInt8uAttributeCallbackBridge(self.callbackQueue, self.device, completionHandler,
+ new MTRNullableInt8uAttributeCallbackBridge(self.callbackQueue, self.device, completionHandler,
^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
using TypeInfo = LevelControl::Attributes::CurrentLevel::TypeInfo;
- auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+ auto successFn = Callback<NullableInt8uAttributeCallback>::FromCancelable(success);
auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
@@ -4332,7 +4362,7 @@
minInterval = [minInterval copy];
maxInterval = [maxInterval copy];
params = [params copy];
- new MTRInt8uAttributeCallbackSubscriptionBridge(
+ new MTRNullableInt8uAttributeCallbackSubscriptionBridge(
self.callbackQueue, self.device, reportHandler,
^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
@@ -4340,13 +4370,13 @@
return CHIP_ERROR_INVALID_ARGUMENT;
}
using TypeInfo = LevelControl::Attributes::CurrentLevel::TypeInfo;
- auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+ auto successFn = Callback<NullableInt8uAttributeCallback>::FromCancelable(success);
auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
return cppCluster.SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
[minInterval unsignedShortValue], [maxInterval unsignedShortValue],
- MTRInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+ MTRNullableInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
},
@@ -4359,7 +4389,7 @@
completionHandler:
(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
{
- new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+ new MTRNullableInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
if (attributeCacheContainer.cppAttributeCache) {
chip::app::ConcreteAttributePath path;
using TypeInfo = LevelControl::Attributes::CurrentLevel::TypeInfo;
@@ -4368,7 +4398,7 @@
path.mAttributeId = TypeInfo::GetAttributeId();
TypeInfo::DecodableType value;
CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
- auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+ auto successFn = Callback<NullableInt8uAttributeCallback>::FromCancelable(success);
if (err == CHIP_NO_ERROR) {
successFn->mCall(successFn->mContext, value);
}
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
index 5b8c4d7..3a5fa5f 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
@@ -1632,7 +1632,12 @@
}
}
request.level = params.level.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -1671,7 +1676,12 @@
}
request.moveMode
= static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
- request.rate = params.rate.unsignedCharValue;
+ if (params.rate == nil) {
+ request.rate.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.rate.SetNonNull();
+ nonNullValue_0 = params.rate.unsignedCharValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -1711,7 +1721,12 @@
request.stepMode
= static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
request.stepSize = params.stepSize.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -1785,7 +1800,12 @@
}
}
request.level = params.level.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -1824,7 +1844,12 @@
}
request.moveMode
= static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
- request.rate = params.rate.unsignedCharValue;
+ if (params.rate == nil) {
+ request.rate.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.rate.SetNonNull();
+ nonNullValue_0 = params.rate.unsignedCharValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
@@ -1864,7 +1889,12 @@
request.stepMode
= static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
request.stepSize = params.stepSize.unsignedCharValue;
- request.transitionTime = params.transitionTime.unsignedShortValue;
+ if (params.transitionTime == nil) {
+ request.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+ nonNullValue_0 = params.transitionTime.unsignedShortValue;
+ }
request.optionsMask = params.optionsMask.unsignedCharValue;
request.optionsOverride = params.optionsOverride.unsignedCharValue;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
index bb4e315..239779a 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
@@ -936,7 +936,7 @@
@property (nonatomic, copy) NSNumber * _Nonnull level;
-@property (nonatomic, copy) NSNumber * _Nonnull transitionTime;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
@@ -964,7 +964,7 @@
@property (nonatomic, copy) NSNumber * _Nonnull moveMode;
-@property (nonatomic, copy) NSNumber * _Nonnull rate;
+@property (nonatomic, copy) NSNumber * _Nullable rate;
@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
@@ -994,7 +994,7 @@
@property (nonatomic, copy) NSNumber * _Nonnull stepSize;
-@property (nonatomic, copy) NSNumber * _Nonnull transitionTime;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
@@ -1046,7 +1046,7 @@
@property (nonatomic, copy) NSNumber * _Nonnull level;
-@property (nonatomic, copy) NSNumber * _Nonnull transitionTime;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
@@ -1074,7 +1074,7 @@
@property (nonatomic, copy) NSNumber * _Nonnull moveMode;
-@property (nonatomic, copy) NSNumber * _Nonnull rate;
+@property (nonatomic, copy) NSNumber * _Nullable rate;
@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
@@ -1104,7 +1104,7 @@
@property (nonatomic, copy) NSNumber * _Nonnull stepSize;
-@property (nonatomic, copy) NSNumber * _Nonnull transitionTime;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
index 2884401..941a8c9 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
@@ -1240,7 +1240,7 @@
_level = @(0);
- _transitionTime = @(0);
+ _transitionTime = nil;
_optionsMask = @(0);
@@ -1279,7 +1279,7 @@
_moveMode = @(0);
- _rate = @(0);
+ _rate = nil;
_optionsMask = @(0);
@@ -1319,7 +1319,7 @@
_stepSize = @(0);
- _transitionTime = @(0);
+ _transitionTime = nil;
_optionsMask = @(0);
@@ -1391,7 +1391,7 @@
_level = @(0);
- _transitionTime = @(0);
+ _transitionTime = nil;
_optionsMask = @(0);
@@ -1430,7 +1430,7 @@
_moveMode = @(0);
- _rate = @(0);
+ _rate = nil;
_optionsMask = @(0);
@@ -1470,7 +1470,7 @@
_stepSize = @(0);
- _transitionTime = @(0);
+ _transitionTime = nil;
_optionsMask = @(0);
diff --git a/zzz_generated/all-clusters-app/zap-generated/access.h b/zzz_generated/all-clusters-app/zap-generated/access.h
index 62a93c3..14751b3 100644
--- a/zzz_generated/all-clusters-app/zap-generated/access.h
+++ b/zzz_generated/all-clusters-app/zap-generated/access.h
@@ -30,7 +30,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -93,7 +93,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -156,7 +156,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -221,7 +221,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -275,7 +275,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -329,7 +329,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
index 0debc14..e699d6c 100644
--- a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
@@ -303,7 +303,7 @@
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* switch actions */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \
+ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* Options */ \
\
/* Endpoint: 1, Cluster: Binary Input (Basic) (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x1 }, /* out of service */ \
@@ -797,28 +797,29 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0xFE) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
- { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* current frequency */ \
- { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* min frequency */ \
- { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* max frequency */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* CurrentFrequency */ \
+ { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MinFrequency */ \
+ { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MaxFrequency */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(4) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(4) }, /* Options */ \
{ 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_SIMPLE_DEFAULT(0x0000) }, /* on off transition time */ \
+ ZAP_SIMPLE_DEFAULT(0x0000) }, /* OnOffTransitionTime */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFF) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFF) }, /* OnLevel */ \
{ 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* on transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OnTransitionTime */ \
{ 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* off transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OffTransitionTime */ \
{ 0x00000014, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(50) }, /* default move rate */ \
+ ZAP_SIMPLE_DEFAULT(50) }, /* DefaultMoveRate */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, \
ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(255) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(255) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h b/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h
index 71b0dae..7f67548 100644
--- a/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h
@@ -256,7 +256,7 @@
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x1 }, /* HourFormat */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \
+ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* Options */ \
\
/* Endpoint: 1, Cluster: Door Lock (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x4 }, /* OperatingMode */ \
@@ -589,11 +589,12 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0xFE) }, /* current level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* CurrentLevel */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(1) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(1) }, /* Options */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFF) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFF) }, /* OnLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
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 f1a5cb0..ed59a1f 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
@@ -921,24 +921,27 @@
namespace CurrentLevel {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint8_t> & value)
{
using Traits = NumericAttributeTraits<uint8_t>;
Traits::StorageType temp;
uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::LevelControl::Id, Id, readable, sizeof(temp));
VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
- if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+ if (Traits::IsNullValue(temp))
{
- return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+ value.SetNull();
}
- *value = Traits::StorageToWorking(temp);
+ else
+ {
+ value.SetNonNull() = Traits::StorageToWorking(temp);
+ }
return status;
}
EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
{
using Traits = NumericAttributeTraits<uint8_t>;
- if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+ if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
{
return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
}
@@ -948,6 +951,25 @@
return emberAfWriteServerAttribute(endpoint, Clusters::LevelControl::Id, Id, writable, ZCL_INT8U_ATTRIBUTE_TYPE);
}
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+ using Traits = NumericAttributeTraits<uint8_t>;
+ Traits::StorageType value;
+ Traits::SetNull(value);
+ uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+ return emberAfWriteServerAttribute(endpoint, Clusters::LevelControl::Id, Id, writable, ZCL_INT8U_ATTRIBUTE_TYPE);
+}
+
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint8_t> & value)
+{
+ if (value.IsNull())
+ {
+ return SetNull(endpoint);
+ }
+
+ return Set(endpoint, value.Value());
+}
+
} // namespace CurrentLevel
namespace RemainingTime {
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 0effd1e..e7d47e4 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
@@ -203,8 +203,10 @@
namespace Attributes {
namespace CurrentLevel {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // int8u
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint8_t> & value); // int8u
EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint8_t> & value);
} // namespace CurrentLevel
namespace RemainingTime {
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 7987a67..e2528fe 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
@@ -2273,8 +2273,8 @@
static constexpr CommandId GetCommandId() { return Commands::MoveToLevel::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t level = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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);
@@ -2291,8 +2291,8 @@
static constexpr CommandId GetCommandId() { return Commands::MoveToLevel::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t level = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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_ERROR Decode(TLV::TLVReader & reader);
@@ -2314,8 +2314,8 @@
static constexpr CommandId GetCommandId() { return Commands::Move::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- MoveMode moveMode = static_cast<MoveMode>(0);
- uint8_t rate = static_cast<uint8_t>(0);
+ 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);
@@ -2332,8 +2332,8 @@
static constexpr CommandId GetCommandId() { return Commands::Move::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- MoveMode moveMode = static_cast<MoveMode>(0);
- uint8_t rate = static_cast<uint8_t>(0);
+ 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_ERROR Decode(TLV::TLVReader & reader);
@@ -2356,9 +2356,9 @@
static constexpr CommandId GetCommandId() { return Commands::Step::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- StepMode stepMode = static_cast<StepMode>(0);
- uint8_t stepSize = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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);
@@ -2375,9 +2375,9 @@
static constexpr CommandId GetCommandId() { return Commands::Step::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- StepMode stepMode = static_cast<StepMode>(0);
- uint8_t stepSize = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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_ERROR Decode(TLV::TLVReader & reader);
@@ -2434,8 +2434,8 @@
static constexpr CommandId GetCommandId() { return Commands::MoveToLevelWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t level = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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);
@@ -2452,8 +2452,8 @@
static constexpr CommandId GetCommandId() { return Commands::MoveToLevelWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- uint8_t level = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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_ERROR Decode(TLV::TLVReader & reader);
@@ -2475,8 +2475,8 @@
static constexpr CommandId GetCommandId() { return Commands::MoveWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- MoveMode moveMode = static_cast<MoveMode>(0);
- uint8_t rate = static_cast<uint8_t>(0);
+ 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);
@@ -2493,8 +2493,8 @@
static constexpr CommandId GetCommandId() { return Commands::MoveWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- MoveMode moveMode = static_cast<MoveMode>(0);
- uint8_t rate = static_cast<uint8_t>(0);
+ 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_ERROR Decode(TLV::TLVReader & reader);
@@ -2517,9 +2517,9 @@
static constexpr CommandId GetCommandId() { return Commands::StepWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- StepMode stepMode = static_cast<StepMode>(0);
- uint8_t stepSize = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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);
@@ -2536,9 +2536,9 @@
static constexpr CommandId GetCommandId() { return Commands::StepWithOnOff::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
- StepMode stepMode = static_cast<StepMode>(0);
- uint8_t stepSize = static_cast<uint8_t>(0);
- uint16_t transitionTime = static_cast<uint16_t>(0);
+ 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_ERROR Decode(TLV::TLVReader & reader);
@@ -2618,9 +2618,9 @@
namespace CurrentLevel {
struct TypeInfo
{
- using Type = uint8_t;
- using DecodableType = uint8_t;
- using DecodableArgType = uint8_t;
+ using Type = chip::app::DataModel::Nullable<uint8_t>;
+ using DecodableType = chip::app::DataModel::Nullable<uint8_t>;
+ using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; }
static constexpr AttributeId GetAttributeId() { return Attributes::CurrentLevel::Id; }
@@ -2822,7 +2822,7 @@
CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
- Attributes::CurrentLevel::TypeInfo::DecodableType currentLevel = static_cast<uint8_t>(0);
+ 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);
diff --git a/zzz_generated/bridge-app/zap-generated/access.h b/zzz_generated/bridge-app/zap-generated/access.h
index 2cd7b17..398e4e7 100644
--- a/zzz_generated/bridge-app/zap-generated/access.h
+++ b/zzz_generated/bridge-app/zap-generated/access.h
@@ -29,7 +29,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -52,7 +52,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -75,7 +75,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -100,7 +100,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -114,7 +114,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -128,7 +128,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/bridge-app/zap-generated/endpoint_config.h b/zzz_generated/bridge-app/zap-generated/endpoint_config.h
index 0d077e9..7853c8b 100644
--- a/zzz_generated/bridge-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/bridge-app/zap-generated/endpoint_config.h
@@ -98,7 +98,7 @@
/* Endpoint: 0, Cluster: Unit Localization (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* TemperatureUnit */ \
\
- /* Endpoint: 2, Cluster: Level Control (server) */ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 } /* options */ \
+ /* Endpoint: 2, Cluster: Level Control (server) */ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 } /* Options */ \
}
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
@@ -464,28 +464,29 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 2, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x00) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
- { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* current frequency */ \
- { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* min frequency */ \
- { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* max frequency */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* CurrentFrequency */ \
+ { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MinFrequency */ \
+ { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MaxFrequency */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* Options */ \
{ 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_SIMPLE_DEFAULT(0x0000) }, /* on off transition time */ \
+ ZAP_SIMPLE_DEFAULT(0x0000) }, /* OnOffTransitionTime */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* on transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OnTransitionTime */ \
{ 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* off transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OffTransitionTime */ \
{ 0x00000014, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* default move rate */ \
+ ZAP_EMPTY_DEFAULT() }, /* DefaultMoveRate */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, \
ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(255) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(255) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h b/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h
index 928e3f5..3c8b8b3 100644
--- a/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h
+++ b/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h
@@ -30,7 +30,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -45,7 +45,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -60,7 +60,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -77,7 +77,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -91,7 +91,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -105,7 +105,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h b/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h
index ce75db3..6f0fc74 100644
--- a/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h
+++ b/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h
@@ -78,7 +78,7 @@
/* Endpoint: 1, Cluster: On/Off (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* StartUpOnOff */ \
\
- /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x3, (uint16_t) 0x0, (uint16_t) 0x3 } /* options */ \
+ /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x3, (uint16_t) 0x0, (uint16_t) 0x3 } /* Options */ \
}
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
@@ -442,16 +442,16 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x01) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* Options */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0x00) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(0x00) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x03) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h b/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h
index fe61bee..d57ea86 100644
--- a/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h
+++ b/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/access.h
@@ -30,7 +30,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -51,7 +51,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -72,7 +72,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -95,7 +95,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -110,7 +110,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -125,7 +125,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h
index 1debabe..96932d5 100644
--- a/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h
+++ b/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h
@@ -78,7 +78,7 @@
/* Endpoint: 1, Cluster: On/Off (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* StartUpOnOff */ \
\
- /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x3, (uint16_t) 0x0, (uint16_t) 0x3 } /* options */ \
+ /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x3, (uint16_t) 0x0, (uint16_t) 0x3 } /* Options */ \
}
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
@@ -454,16 +454,16 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x01) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* Options */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0x00) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(0x00) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x03) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/access.h b/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/access.h
index c9a7000..91df455 100644
--- a/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/access.h
+++ b/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/access.h
@@ -30,7 +30,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -52,7 +52,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -74,7 +74,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -98,7 +98,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -114,7 +114,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -130,7 +130,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h
index f100a4a..ae7d94a 100644
--- a/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h
+++ b/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h
@@ -79,7 +79,7 @@
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* StartUpOnOff */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { (uint16_t) 0x3, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \
+ { (uint16_t) 0x3, (uint16_t) 0x0, (uint16_t) 0x3 }, /* Options */ \
\
/* Endpoint: 1, Cluster: Color Control (server) */ \
{ \
@@ -460,16 +460,16 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x01) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* Options */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0x00) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(0x00) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x03) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h
index b256769..e9876e7 100644
--- a/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h
+++ b/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h
@@ -451,11 +451,11 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* current level */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0) }, /* CurrentLevel */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/access.h b/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/access.h
index fe61bee..d57ea86 100644
--- a/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/access.h
+++ b/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/access.h
@@ -30,7 +30,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -51,7 +51,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -72,7 +72,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \
@@ -95,7 +95,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -110,7 +110,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -125,7 +125,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h
index 2d023c8..1732a3b 100644
--- a/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h
+++ b/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h
@@ -78,7 +78,7 @@
/* Endpoint: 1, Cluster: On/Off (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* StartUpOnOff */ \
\
- /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x1, (uint16_t) 0x0, (uint16_t) 0x3 } /* options */ \
+ /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x1, (uint16_t) 0x0, (uint16_t) 0x3 } /* Options */ \
}
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
@@ -454,16 +454,16 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x01) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* Options */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0x01) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(0x01) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h
index a448a67..1de78f3 100644
--- a/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h
+++ b/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h
@@ -75,7 +75,7 @@
/* Endpoint: 0, Cluster: Time Format Localization (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x1 }, /* HourFormat */ \
\
- /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 } /* options */ \
+ /* Endpoint: 1, Cluster: Level Control (server) */ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 } /* Options */ \
}
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
@@ -431,13 +431,13 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* current level */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentLevel */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(1) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(1) }, /* Options */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x1) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
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 ac3947d..27145a0 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -4338,74 +4338,74 @@
switch (path.mAttributeId)
{
case LevelControl::Attributes::CurrentLevel::Id: {
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("current level", 1, value);
+ return DataModelLogger::LogValue("CurrentLevel", 1, value);
}
case LevelControl::Attributes::RemainingTime::Id: {
uint16_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("remaining time", 1, value);
+ return DataModelLogger::LogValue("RemainingTime", 1, value);
}
case LevelControl::Attributes::MinLevel::Id: {
uint8_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("min level", 1, value);
+ return DataModelLogger::LogValue("MinLevel", 1, value);
}
case LevelControl::Attributes::MaxLevel::Id: {
uint8_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("max level", 1, value);
+ return DataModelLogger::LogValue("MaxLevel", 1, value);
}
case LevelControl::Attributes::CurrentFrequency::Id: {
uint16_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("current frequency", 1, value);
+ return DataModelLogger::LogValue("CurrentFrequency", 1, value);
}
case LevelControl::Attributes::MinFrequency::Id: {
uint16_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("min frequency", 1, value);
+ return DataModelLogger::LogValue("MinFrequency", 1, value);
}
case LevelControl::Attributes::MaxFrequency::Id: {
uint16_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("max frequency", 1, value);
+ return DataModelLogger::LogValue("MaxFrequency", 1, value);
}
case LevelControl::Attributes::Options::Id: {
uint8_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("options", 1, value);
+ return DataModelLogger::LogValue("Options", 1, value);
}
case LevelControl::Attributes::OnOffTransitionTime::Id: {
uint16_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("on off transition time", 1, value);
+ return DataModelLogger::LogValue("OnOffTransitionTime", 1, value);
}
case LevelControl::Attributes::OnLevel::Id: {
chip::app::DataModel::Nullable<uint8_t> value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("on level", 1, value);
+ return DataModelLogger::LogValue("OnLevel", 1, value);
}
case LevelControl::Attributes::OnTransitionTime::Id: {
chip::app::DataModel::Nullable<uint16_t> value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("on transition time", 1, value);
+ return DataModelLogger::LogValue("OnTransitionTime", 1, value);
}
case LevelControl::Attributes::OffTransitionTime::Id: {
chip::app::DataModel::Nullable<uint16_t> value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("off transition time", 1, value);
+ return DataModelLogger::LogValue("OffTransitionTime", 1, value);
}
case LevelControl::Attributes::DefaultMoveRate::Id: {
chip::app::DataModel::Nullable<uint8_t> value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("default move rate", 1, value);
+ return DataModelLogger::LogValue("DefaultMoveRate", 1, value);
}
case LevelControl::Attributes::StartUpCurrentLevel::Id: {
chip::app::DataModel::Nullable<uint8_t> value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
- return DataModelLogger::LogValue("start up current level", 1, value);
+ return DataModelLogger::LogValue("StartUpCurrentLevel", 1, value);
}
case LevelControl::Attributes::GeneratedCommandList::Id: {
chip::app::DataModel::DecodableList<chip::CommandId> value;
diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h
index 0837376..469bd16 100644
--- a/zzz_generated/chip-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h
@@ -14135,7 +14135,7 @@
chip::Optional<chip::EndpointId> mEndpoint;
chip::Optional<uint16_t> mTimeout;
- uint8_t CurrentLevelValue;
+ chip::app::DataModel::Nullable<uint8_t> CurrentLevelValue;
uint8_t MinLevelValue;
uint8_t MinLevelFeatureMapNotSupportedValue;
uint8_t MaxLevelValue;
@@ -14162,7 +14162,7 @@
case 1:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
@@ -14226,7 +14226,7 @@
case 7:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelValue));
@@ -14236,7 +14236,7 @@
case 8:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
VerifyOrReturn(CheckConstraintMinValue("value", value, MinLevelFeatureMapNotSupportedValue));
@@ -14981,9 +14981,10 @@
case 8:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 64U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 64U));
}
break;
case 9:
@@ -14996,9 +14997,10 @@
case 11:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 100U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 100U));
}
break;
case 12:
@@ -15011,9 +15013,10 @@
case 14:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 128U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 128U));
}
break;
case 15:
@@ -15036,9 +15039,10 @@
case 18:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 64U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 64U));
}
break;
case 19:
@@ -15065,9 +15069,10 @@
case 24:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 100U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 100U));
}
break;
case 25:
@@ -15083,9 +15088,10 @@
case 28:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 100U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 100U));
}
break;
case 29:
@@ -15098,9 +15104,10 @@
case 31:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 100U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 100U));
}
break;
case 32:
@@ -15113,9 +15120,10 @@
case 34:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 160U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 160U));
}
break;
case 35:
@@ -15142,9 +15150,10 @@
case 40:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 100U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 100U));
}
break;
case 41:
@@ -15160,9 +15169,10 @@
case 44:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 120U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 120U));
}
break;
case 45:
@@ -15175,9 +15185,10 @@
case 47:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 120U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 120U));
}
break;
case 48:
@@ -15190,9 +15201,10 @@
case 50:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 160U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 160U));
}
break;
case 51:
@@ -15268,10 +15280,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type value;
- value.level = 64U;
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 64U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id,
value, chip::NullOptional
@@ -15295,10 +15308,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 100U;
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 100U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15322,10 +15336,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp && LVL.S.M.VarRate"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 128U;
- value.transitionTime = 100U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 128U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 100U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15356,8 +15371,8 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp && LVL.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 64U;
- value.transitionTime = 65535U;
+ value.level = 64U;
+ value.transitionTime.SetNull();
value.optionsMask = 0U;
value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
@@ -15407,10 +15422,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 100U;
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 100U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15443,10 +15459,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 120U;
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 120U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15470,10 +15487,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 140U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 0U;
+ value.level = 140U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15497,10 +15515,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 160U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.level = 160U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15548,10 +15567,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 100U;
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 100U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15584,10 +15604,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 120U;
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 120U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15611,10 +15632,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 140U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 0U;
+ value.level = 140U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15638,10 +15660,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 160U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.level = 160U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -15703,8 +15726,8 @@
chip::Optional<chip::EndpointId> mEndpoint;
chip::Optional<uint16_t> mTimeout;
- uint8_t MinlevelValue;
- uint8_t MaxlevelValue;
+ uint8_t MinimumLevelValue;
+ uint8_t MaximumLevelValue;
chip::app::DataModel::Nullable<uint8_t> DefaultMoveRateValue;
chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
@@ -15745,7 +15768,7 @@
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U));
- MinlevelValue = value;
+ MinimumLevelValue = value;
}
break;
case 5:
@@ -15759,7 +15782,7 @@
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U));
- MaxlevelValue = value;
+ MaximumLevelValue = value;
}
break;
case 7:
@@ -15776,9 +15799,12 @@
case 10:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, MaxlevelValue));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), MaximumLevelValue));
+ VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
+ VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U));
}
break;
case 11:
@@ -15795,9 +15821,10 @@
case 14:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, MinlevelValue));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), MinimumLevelValue));
VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U));
}
@@ -15891,17 +15918,18 @@
VerifyOrDo(!ShouldSkip("LVL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type value;
- value.level = 1U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.level = 1U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id,
value, chip::NullOptional
);
}
case 6: {
- LogStep(6, "reads max level attribute from DUT");
+ LogStep(6, "reads MaxLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id, true,
chip::NullOptional);
@@ -15911,8 +15939,9 @@
VerifyOrDo(!ShouldSkip("LVL.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Move::Type value;
- value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
- value.rate = 32U;
+ value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
+ value.rate.SetNonNull();
+ value.rate.Value() = 32U;
value.optionsMask = 1U;
value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
@@ -15950,8 +15979,9 @@
VerifyOrDo(!ShouldSkip("LVL.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Move::Type value;
- value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(1);
- value.rate = 64U;
+ value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(1);
+ value.rate.SetNonNull();
+ value.rate.Value() = 64U;
value.optionsMask = 1U;
value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
@@ -15985,18 +16015,18 @@
chip::NullOptional);
}
case 15: {
- LogStep(15, "reads default move rate attribute from DUT");
+ LogStep(15, "reads DefaultMoveRate attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id,
true, chip::NullOptional);
}
case 16: {
- LogStep(16, "sends a Move up command at default move rate");
+ LogStep(16, "sends a Move up command at DefaultMoveRate");
VerifyOrDo(!ShouldSkip("LVL.S.C05.Rsp && LVL.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Move::Type value;
- value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
- value.rate = 255U;
+ value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
+ value.rate.SetNull();
value.optionsMask = 1U;
value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
@@ -16068,7 +16098,7 @@
chip::Optional<uint16_t> mTimeout;
uint8_t MinlevelValue;
- uint8_t CurrentlevelValue;
+ chip::app::DataModel::Nullable<uint8_t> CurrentlevelValue;
chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
@@ -16120,9 +16150,10 @@
case 7:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, static_cast<uint8_t>(MinlevelValue + 1)));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), static_cast<uint8_t>(MinlevelValue + 1)));
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U));
@@ -16132,9 +16163,10 @@
case 8:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 2U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 2U));
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U));
@@ -16153,18 +16185,20 @@
case 12:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 66U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 66U));
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
}
break;
case 13:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 66U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 66U));
VerifyOrReturn(CheckConstraintType("value", "int8u", "int8u"));
}
break;
@@ -16181,33 +16215,51 @@
case 17:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, CurrentlevelValue));
+ if (CurrentlevelValue.IsNull())
+ {
+ VerifyOrReturn(CheckValueNull("currentLevel", value));
+ }
+ else
+ {
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), CurrentlevelValue.Value()));
+ }
}
break;
case 18:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, CurrentlevelValue));
+ if (CurrentlevelValue.IsNull())
+ {
+ VerifyOrReturn(CheckValueNull("currentLevel", value));
+ }
+ else
+ {
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), CurrentlevelValue.Value()));
+ }
}
break;
case 19:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 2U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 2U));
}
break;
case 20:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 2U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 2U));
}
break;
case 21:
@@ -16277,10 +16329,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C04.Rsp && LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type value;
- value.level = static_cast<uint8_t>(MinlevelValue + 1);
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = static_cast<uint8_t>(MinlevelValue + 1);
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id,
value, chip::NullOptional
@@ -16291,23 +16344,24 @@
VerifyOrDo(!ShouldSkip("LVL.S.C04.Rsp && !LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type value;
- value.level = 2U;
- value.transitionTime = 0U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.level = 2U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id,
value, chip::NullOptional
);
}
case 7: {
- LogStep(7, "Reads current level attribute from DUT");
+ LogStep(7, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.A0000 && LVL.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
chip::NullOptional);
}
case 8: {
- LogStep(8, "Reads current level attribute from DUT");
+ LogStep(8, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.A0000 && !LVL.S.A0002 && LVL.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
chip::NullOptional);
@@ -16317,11 +16371,12 @@
VerifyOrDo(!ShouldSkip("LVL.S.C02.Rsp && LVL.S.M.VarRate"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Step::Type value;
- value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(0);
- value.stepSize = 64U;
- value.transitionTime = 20U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(0);
+ value.stepSize = 64U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 20U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value,
chip::NullOptional
@@ -16332,11 +16387,12 @@
VerifyOrDo(!ShouldSkip("LVL.S.C02.Rsp && !LVL.S.M.VarRate"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Step::Type value;
- value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(0);
- value.stepSize = 64U;
- value.transitionTime = 20U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(0);
+ value.stepSize = 64U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 20U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Step::Id, value,
chip::NullOptional
@@ -16350,14 +16406,14 @@
return WaitForMs(kIdentityAlpha, value);
}
case 12: {
- LogStep(12, "Reads current level attribute from DUT");
+ LogStep(12, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.A0000 && LVL.S.C02.Rsp && LVL.S.M.VarRate"),
return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
chip::NullOptional);
}
case 13: {
- LogStep(13, "Reads current level attribute from DUT");
+ LogStep(13, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.A0000 && LVL.S.C02.Rsp && !LVL.S.M.VarRate"),
return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
@@ -16368,11 +16424,12 @@
VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.M.VarRate"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type value;
- value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(1);
- value.stepSize = 64U;
- value.transitionTime = 20U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(1);
+ value.stepSize = 64U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 20U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::StepWithOnOff::Id, value,
chip::NullOptional
@@ -16383,11 +16440,12 @@
VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && !LVL.S.M.VarRate"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type value;
- value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(1);
- value.stepSize = 64U;
- value.transitionTime = 20U;
- value.optionsMask = 0U;
- value.optionsOverride = 0U;
+ value.stepMode = static_cast<chip::app::Clusters::LevelControl::StepMode>(1);
+ value.stepSize = 64U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 20U;
+ value.optionsMask = 0U;
+ value.optionsOverride = 0U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::StepWithOnOff::Id, value,
chip::NullOptional
@@ -16401,28 +16459,28 @@
return WaitForMs(kIdentityAlpha, value);
}
case 17: {
- LogStep(17, "Reads current level attribute from DUT");
+ LogStep(17, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && LVL.S.M.VarRate"),
return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
chip::NullOptional);
}
case 18: {
- LogStep(18, "Reads current level attribute from DUT");
+ LogStep(18, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.M.VarRate"),
return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
chip::NullOptional);
}
case 19: {
- LogStep(19, "Reads current level attribute from DUT");
+ LogStep(19, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002 && LVL.S.M.VarRate"),
return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
chip::NullOptional);
}
case 20: {
- LogStep(20, "Reads current level attribute from DUT");
+ LogStep(20, "Reads CurrentLevel attribute from DUT");
VerifyOrDo(!ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002 && !LVL.S.M.VarRate"),
return ContinueOnChipMainThread(CHIP_NO_ERROR));
return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, true,
@@ -16472,7 +16530,7 @@
chip::Optional<uint16_t> mTimeout;
uint8_t MinlevelValue;
- uint8_t CurrentLevelValue;
+ chip::app::DataModel::Nullable<uint8_t> CurrentLevelValue;
chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
@@ -16521,7 +16579,7 @@
case 6:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U));
@@ -16545,7 +16603,7 @@
case 11:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckConstraintMinValue("value", value, 21U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 29U));
@@ -16569,7 +16627,7 @@
case 16:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
VerifyOrReturn(CheckConstraintMinValue("value", value, 43U));
VerifyOrReturn(CheckConstraintMaxValue("value", value, 57U));
@@ -16643,10 +16701,11 @@
VerifyOrDo(!ShouldSkip("LVL.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type value;
- value.level = 1U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.level = 1U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevelWithOnOff::Id,
value, chip::NullOptional
@@ -16663,8 +16722,9 @@
VerifyOrDo(!ShouldSkip("LVL.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Move::Type value;
- value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
- value.rate = 5U;
+ value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
+ value.rate.SetNonNull();
+ value.rate.Value() = 5U;
value.optionsMask = 1U;
value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
@@ -16713,8 +16773,9 @@
VerifyOrDo(!ShouldSkip("LVL.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::Move::Type value;
- value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
- value.rate = 5U;
+ value.moveMode = static_cast<chip::app::Clusters::LevelControl::MoveMode>(0);
+ value.rate.SetNonNull();
+ value.rate.Value() = 5U;
value.optionsMask = 1U;
value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::Move::Id, value,
@@ -56236,9 +56297,10 @@
case 3:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 1U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 1U));
}
break;
case 4:
@@ -56298,9 +56360,10 @@
case 14:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 254U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 254U));
}
break;
case 15:
@@ -56321,9 +56384,10 @@
case 18:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 1U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 1U));
}
break;
case 19:
@@ -56336,9 +56400,10 @@
case 21:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 127U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 127U));
}
break;
case 22:
@@ -56374,9 +56439,10 @@
case 28:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 127U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 127U));
}
break;
case 29:
@@ -56397,9 +56463,10 @@
case 32:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
{
- uint8_t value;
+ chip::app::DataModel::Nullable<uint8_t> value;
VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
- VerifyOrReturn(CheckValue("currentLevel", value, 127U));
+ VerifyOrReturn(CheckValueNonNull("currentLevel", value));
+ VerifyOrReturn(CheckValue("currentLevel.Value()", value.Value(), 127U));
}
break;
default:
@@ -56425,13 +56492,14 @@
return WaitForCommissionee(kIdentityAlpha, value);
}
case 1: {
- LogStep(1, "Sends a MoveToLevel command to set current level to min value");
+ LogStep(1, "Sends a MoveToLevel command to set CurrentLevel to min value");
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 1U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.level = 1U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 1U;
return SendCommand(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Commands::MoveToLevel::Id, value,
chip::NullOptional
@@ -56544,13 +56612,14 @@
chip::NullOptional);
}
case 19: {
- LogStep(19, "Sends a MoveToLevel command to set current level to a mid value");
+ LogStep(19, "Sends a MoveToLevel command to set CurrentLevel to a mid value");
ListFreer listFreer;
chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type value;
- value.level = 127U;
- value.transitionTime = 0U;
- value.optionsMask = 1U;
- value.optionsOverride = 1U;
+ value.level = 127U;
+ value.transitionTime.SetNonNull();
+ value.transitionTime.Value() = 0U;
+ value.optionsMask = 1U;
+ value.optionsOverride = 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 78979bc..788aab2 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
@@ -4374,7 +4374,11 @@
params.timedInvokeTimeoutMs
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
params.level = [NSNumber numberWithUnsignedChar:mRequest.level];
- params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime];
+ if (mRequest.transitionTime.IsNull()) {
+ params.transitionTime = nil;
+ } else {
+ params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
+ }
params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
@@ -4426,7 +4430,11 @@
params.timedInvokeTimeoutMs
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
params.moveMode = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.moveMode)];
- params.rate = [NSNumber numberWithUnsignedChar:mRequest.rate];
+ if (mRequest.rate.IsNull()) {
+ params.rate = nil;
+ } else {
+ params.rate = [NSNumber numberWithUnsignedChar:mRequest.rate.Value()];
+ }
params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
@@ -4480,7 +4488,11 @@
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
params.stepMode = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.stepMode)];
params.stepSize = [NSNumber numberWithUnsignedChar:mRequest.stepSize];
- params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime];
+ if (mRequest.transitionTime.IsNull()) {
+ params.transitionTime = nil;
+ } else {
+ params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
+ }
params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
@@ -4580,7 +4592,11 @@
params.timedInvokeTimeoutMs
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
params.level = [NSNumber numberWithUnsignedChar:mRequest.level];
- params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime];
+ if (mRequest.transitionTime.IsNull()) {
+ params.transitionTime = nil;
+ } else {
+ params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
+ }
params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
@@ -4632,7 +4648,11 @@
params.timedInvokeTimeoutMs
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
params.moveMode = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.moveMode)];
- params.rate = [NSNumber numberWithUnsignedChar:mRequest.rate];
+ if (mRequest.rate.IsNull()) {
+ params.rate = nil;
+ } else {
+ params.rate = [NSNumber numberWithUnsignedChar:mRequest.rate.Value()];
+ }
params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
@@ -4686,7 +4706,11 @@
= mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
params.stepMode = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.stepMode)];
params.stepSize = [NSNumber numberWithUnsignedChar:mRequest.stepSize];
- params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime];
+ if (mRequest.transitionTime.IsNull()) {
+ params.transitionTime = nil;
+ } else {
+ params.transitionTime = [NSNumber numberWithUnsignedShort:mRequest.transitionTime.Value()];
+ }
params.optionsMask = [NSNumber numberWithUnsignedChar:mRequest.optionsMask];
params.optionsOverride = [NSNumber numberWithUnsignedChar:mRequest.optionsOverride];
uint16_t repeatCount = mRepeatCount.ValueOr(1);
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index 42a4b8c..6dfc371 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -22984,7 +22984,7 @@
value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
return WaitForCommissionee("alpha", value);
}
- NSNumber * _Nonnull CurrentLevelValue;
+ NSNumber * _Nullable CurrentLevelValue;
CHIP_ERROR TestReadsTheCurrentLevelAttribute_1()
{
@@ -22999,9 +22999,12 @@
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
- VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 255U));
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 255U));
+ }
{
CurrentLevelValue = value;
}
@@ -23051,7 +23054,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("min level", actualValue, 1U));
+ VerifyOrReturn(CheckValue("MinLevel", actualValue, 1U));
}
VerifyOrReturn(CheckConstraintType("minLevel", "int8u", "int8u"));
@@ -23108,7 +23111,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("max level", actualValue, 254U));
+ VerifyOrReturn(CheckValue("MaxLevel", actualValue, 254U));
}
VerifyOrReturn(CheckConstraintType("maxLevel", "int8u", "int8u"));
@@ -23164,9 +23167,12 @@
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
- VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], MinLevelValue));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], MaxLevelValue));
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], MinLevelValue));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], MaxLevelValue));
+ }
NextTest();
}];
@@ -23187,11 +23193,14 @@
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
- VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
- VerifyOrReturn(
- CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], MinLevelFeatureMapNotSupportedValue));
- VerifyOrReturn(
- CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], MaxLevelFeatureMapNotSupportedValue));
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>(
+ "currentLevel", [value unsignedCharValue], MinLevelFeatureMapNotSupportedValue));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>(
+ "currentLevel", [value unsignedCharValue], MaxLevelFeatureMapNotSupportedValue));
+ }
NextTest();
}];
@@ -23469,7 +23478,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("options", actualValue, 0U));
+ VerifyOrReturn(CheckValue("Options", actualValue, 0U));
}
VerifyOrReturn(CheckConstraintType("options", "bitmap8", "bitmap8"));
@@ -23876,7 +23885,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("on off transition time", actualValue,
+ VerifyOrReturn(CheckValue("OnOffTransitionTime", actualValue,
mOnOffTransitionTimeConfigValue.HasValue() ? mOnOffTransitionTimeConfigValue.Value() : 10U));
}
@@ -23957,9 +23966,9 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValueNonNull("on level", actualValue));
+ VerifyOrReturn(CheckValueNonNull("OnLevel", actualValue));
VerifyOrReturn(
- CheckValue("on level", actualValue, mOnLevelConfigValue.HasValue() ? mOnLevelConfigValue.Value() : 5U));
+ CheckValue("OnLevel", actualValue, mOnLevelConfigValue.HasValue() ? mOnLevelConfigValue.Value() : 5U));
}
if (value != nil) {
@@ -24042,8 +24051,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValueNonNull("on transition time", actualValue));
- VerifyOrReturn(CheckValue("on transition time", actualValue,
+ VerifyOrReturn(CheckValueNonNull("OnTransitionTime", actualValue));
+ VerifyOrReturn(CheckValue("OnTransitionTime", actualValue,
mOnTransitionTimeConfigValue.HasValue() ? mOnTransitionTimeConfigValue.Value() : 5U));
}
if (value != nil) {
@@ -24127,8 +24136,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValueNonNull("off transition time", actualValue));
- VerifyOrReturn(CheckValue("off transition time", actualValue,
+ VerifyOrReturn(CheckValueNonNull("OffTransitionTime", actualValue));
+ VerifyOrReturn(CheckValue("OffTransitionTime", actualValue,
mOffTransitionTimeConfigValue.HasValue() ? mOffTransitionTimeConfigValue.Value() : 10U));
}
if (value != nil) {
@@ -24212,8 +24221,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValueNonNull("default move rate", actualValue));
- VerifyOrReturn(CheckValue("default move rate", actualValue,
+ VerifyOrReturn(CheckValueNonNull("DefaultMoveRate", actualValue));
+ VerifyOrReturn(CheckValue("DefaultMoveRate", actualValue,
mDefaultMoveRateConfigValue.HasValue() ? mDefaultMoveRateConfigValue.Value() : 111U));
}
if (value != nil) {
@@ -24297,8 +24306,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValueNonNull("start up current level", actualValue));
- VerifyOrReturn(CheckValue("start up current level", actualValue,
+ VerifyOrReturn(CheckValueNonNull("StartUpCurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("StartUpCurrentLevel", actualValue,
mStartUpCurrentLevelConfigValue.HasValue() ? mStartUpCurrentLevelConfigValue.Value() : 5U));
}
if (value != nil) {
@@ -25097,7 +25106,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 64U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 64U));
}
NextTest();
@@ -25153,7 +25163,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 100U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 100U));
}
NextTest();
@@ -25209,7 +25220,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 128U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 128U));
}
NextTest();
@@ -25251,7 +25263,7 @@
__auto_type * params = [[MTRLevelControlClusterMoveToLevelParams alloc] init];
params.level = [NSNumber numberWithUnsignedChar:64U];
- params.transitionTime = [NSNumber numberWithUnsignedShort:65535U];
+ params.transitionTime = nil;
params.optionsMask = [NSNumber numberWithUnsignedChar:0U];
params.optionsOverride = [NSNumber numberWithUnsignedChar:0U];
[cluster moveToLevelWithParams:params
@@ -25288,7 +25300,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 64U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 64U));
}
NextTest();
@@ -25334,7 +25347,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("options", actualValue, 0U));
+ VerifyOrReturn(CheckValue("Options", actualValue, 0U));
}
NextTest();
@@ -25407,7 +25420,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 100U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 100U));
}
NextTest();
@@ -25480,7 +25494,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 100U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 100U));
}
NextTest();
@@ -25536,7 +25551,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 100U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 100U));
}
NextTest();
@@ -25592,7 +25608,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 160U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 160U));
}
NextTest();
@@ -25638,7 +25655,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("options", actualValue, 1U));
+ VerifyOrReturn(CheckValue("Options", actualValue, 1U));
}
NextTest();
@@ -25711,7 +25728,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 100U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 100U));
}
NextTest();
@@ -25784,7 +25802,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 120U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 120U));
}
NextTest();
@@ -25840,7 +25859,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 120U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 120U));
}
NextTest();
@@ -25896,7 +25916,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 160U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 160U));
}
NextTest();
@@ -26028,7 +26049,7 @@
err = TestSendsAMoveToLevelWithOnOffCommand_5();
break;
case 6:
- ChipLogProgress(chipTool, " ***** Test Step 6 : reads max level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 6 : reads MaxLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.A0003")) {
NextTest();
return;
@@ -26096,7 +26117,7 @@
err = TestReadsCurrentLevelAttributeFromDut_14();
break;
case 15:
- ChipLogProgress(chipTool, " ***** Test Step 15 : reads default move rate attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 15 : reads DefaultMoveRate attribute from DUT\n");
if (ShouldSkip("LVL.S.A0014")) {
NextTest();
return;
@@ -26104,7 +26125,7 @@
err = TestReadsDefaultMoveRateAttributeFromDut_15();
break;
case 16:
- ChipLogProgress(chipTool, " ***** Test Step 16 : sends a Move up command at default move rate\n");
+ ChipLogProgress(chipTool, " ***** Test Step 16 : sends a Move up command at DefaultMoveRate\n");
if (ShouldSkip("LVL.S.C05.Rsp && LVL.S.A0014")) {
NextTest();
return;
@@ -26302,7 +26323,7 @@
return CHIP_NO_ERROR;
}
- NSNumber * _Nonnull MinlevelValue;
+ NSNumber * _Nonnull MinimumLevelValue;
CHIP_ERROR TestReadsMinlevelAttributeFromDut_4()
{
@@ -26321,7 +26342,7 @@
VerifyOrReturn(CheckConstraintMinValue<uint8_t>("minLevel", [value unsignedCharValue], 0U));
VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("minLevel", [value unsignedCharValue], 255U));
{
- MinlevelValue = value;
+ MinimumLevelValue = value;
}
NextTest();
@@ -26354,7 +26375,7 @@
return CHIP_NO_ERROR;
}
- NSNumber * _Nonnull MaxlevelValue;
+ NSNumber * _Nonnull MaximumLevelValue;
CHIP_ERROR TestReadsMaxLevelAttributeFromDut_6()
{
@@ -26365,7 +26386,7 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeMaxLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"reads max level attribute from DUT Error: %@", err);
+ NSLog(@"reads MaxLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -26373,7 +26394,7 @@
VerifyOrReturn(CheckConstraintMinValue<uint8_t>("maxLevel", [value unsignedCharValue], 0U));
VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("maxLevel", [value unsignedCharValue], 255U));
{
- MaxlevelValue = value;
+ MaximumLevelValue = value;
}
NextTest();
@@ -26439,7 +26460,17 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, MaxlevelValue));
+ if (MaximumLevelValue == nil) {
+ VerifyOrReturn(CheckValueNull("CurrentLevel", actualValue));
+ } else {
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, MaximumLevelValue));
+ }
+ }
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 255U));
}
NextTest();
@@ -26505,11 +26536,18 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, MinlevelValue));
+ if (MinimumLevelValue == nil) {
+ VerifyOrReturn(CheckValueNull("CurrentLevel", actualValue));
+ } else {
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, MinimumLevelValue));
+ }
}
+ if (value != nil) {
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 255U));
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 255U));
+ }
NextTest();
}];
@@ -26527,7 +26565,7 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeDefaultMoveRateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"reads default move rate attribute from DUT Error: %@", err);
+ NSLog(@"reads DefaultMoveRate attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -26557,12 +26595,12 @@
__auto_type * params = [[MTRLevelControlClusterMoveParams alloc] init];
params.moveMode = [NSNumber numberWithUnsignedChar:0U];
- params.rate = [NSNumber numberWithUnsignedChar:255U];
+ params.rate = nil;
params.optionsMask = [NSNumber numberWithUnsignedChar:1U];
params.optionsOverride = [NSNumber numberWithUnsignedChar:1U];
[cluster moveWithParams:params
completionHandler:^(NSError * _Nullable err) {
- NSLog(@"sends a Move up command at default move rate Error: %@", err);
+ NSLog(@"sends a Move up command at DefaultMoveRate Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -26719,7 +26757,7 @@
err = TestSendsMoveToLevelWithOnOffCommandToDut_6();
break;
case 7:
- ChipLogProgress(chipTool, " ***** Test Step 7 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 7 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.A0000 && LVL.S.C04.Rsp")) {
NextTest();
return;
@@ -26727,7 +26765,7 @@
err = TestReadsCurrentLevelAttributeFromDut_7();
break;
case 8:
- ChipLogProgress(chipTool, " ***** Test Step 8 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 8 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.A0000 && !LVL.S.A0002 && LVL.S.C04.Rsp")) {
NextTest();
return;
@@ -26755,7 +26793,7 @@
err = TestWait2500ms_11();
break;
case 12:
- ChipLogProgress(chipTool, " ***** Test Step 12 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 12 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.A0000 && LVL.S.C02.Rsp && LVL.S.M.VarRate")) {
NextTest();
return;
@@ -26763,7 +26801,7 @@
err = TestReadsCurrentLevelAttributeFromDut_12();
break;
case 13:
- ChipLogProgress(chipTool, " ***** Test Step 13 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 13 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.A0000 && LVL.S.C02.Rsp && !LVL.S.M.VarRate")) {
NextTest();
return;
@@ -26791,7 +26829,7 @@
err = TestWait2500ms_16();
break;
case 17:
- ChipLogProgress(chipTool, " ***** Test Step 17 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 17 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && LVL.S.M.VarRate")) {
NextTest();
return;
@@ -26799,7 +26837,7 @@
err = TestReadsCurrentLevelAttributeFromDut_17();
break;
case 18:
- ChipLogProgress(chipTool, " ***** Test Step 18 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 18 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.M.VarRate")) {
NextTest();
return;
@@ -26807,7 +26845,7 @@
err = TestReadsCurrentLevelAttributeFromDut_18();
break;
case 19:
- ChipLogProgress(chipTool, " ***** Test Step 19 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 19 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002 && LVL.S.M.VarRate")) {
NextTest();
return;
@@ -26815,7 +26853,7 @@
err = TestReadsCurrentLevelAttributeFromDut_19();
break;
case 20:
- ChipLogProgress(chipTool, " ***** Test Step 20 : Reads current level attribute from DUT\n");
+ ChipLogProgress(chipTool, " ***** Test Step 20 : Reads CurrentLevel attribute from DUT\n");
if (ShouldSkip("LVL.S.C06.Rsp && LVL.S.A0000 && !LVL.S.A0002 && !LVL.S.M.VarRate")) {
NextTest();
return;
@@ -27082,7 +27120,7 @@
return CHIP_NO_ERROR;
}
- NSNumber * _Nonnull CurrentlevelValue;
+ NSNumber * _Nullable CurrentlevelValue;
CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_7()
{
@@ -27093,18 +27131,21 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, [MinlevelValue unsignedCharValue] + 1U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, [MinlevelValue unsignedCharValue] + 1U));
}
+ if (value != nil) {
- VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 254U));
+ VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 254U));
+ }
{
CurrentlevelValue = value;
}
@@ -27124,18 +27165,21 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 2U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 2U));
}
+ if (value != nil) {
- VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 254U));
+ VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 254U));
+ }
NextTest();
}];
@@ -27211,16 +27255,20 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 66U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 66U));
+ }
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
}
- VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
NextTest();
}];
@@ -27236,16 +27284,20 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 66U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 66U));
+ }
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
}
- VerifyOrReturn(CheckConstraintType("currentLevel", "int8u", "int8u"));
NextTest();
}];
@@ -27320,13 +27372,18 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, CurrentlevelValue));
+ if (CurrentlevelValue == nil) {
+ VerifyOrReturn(CheckValueNull("CurrentLevel", actualValue));
+ } else {
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, CurrentlevelValue));
+ }
}
NextTest();
@@ -27344,13 +27401,18 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, CurrentlevelValue));
+ if (CurrentlevelValue == nil) {
+ VerifyOrReturn(CheckValueNull("CurrentLevel", actualValue));
+ } else {
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, CurrentlevelValue));
+ }
}
NextTest();
@@ -27368,13 +27430,14 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 2U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 2U));
}
NextTest();
@@ -27392,13 +27455,14 @@
VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
[cluster readAttributeCurrentLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
- NSLog(@"Reads current level attribute from DUT Error: %@", err);
+ NSLog(@"Reads CurrentLevel attribute from DUT Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 2U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 2U));
}
NextTest();
@@ -27832,7 +27896,7 @@
return CHIP_NO_ERROR;
}
- NSNumber * _Nonnull CurrentLevelValue;
+ NSNumber * _Nullable CurrentLevelValue;
CHIP_ERROR TestReadsCurrentLevelAttributeFromDut_6()
{
@@ -27847,8 +27911,11 @@
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 255U));
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 0U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 255U));
+ }
{
CurrentLevelValue = value;
}
@@ -27936,8 +28003,11 @@
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 21U));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 29U));
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 21U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 29U));
+ }
VerifyOrReturn(CheckConstraintNotValue("currentLevel", value, CurrentLevelValue));
NextTest();
@@ -28023,8 +28093,11 @@
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
- VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 43U));
- VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 57U));
+ if (value != nil) {
+
+ VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentLevel", [value unsignedCharValue], 43U));
+ VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentLevel", [value unsignedCharValue], 57U));
+ }
VerifyOrReturn(CheckConstraintNotValue("currentLevel", value, CurrentLevelValue));
NextTest();
@@ -96984,7 +97057,7 @@
err = TestWaitForTheCommissionedDeviceToBeRetrieved_0();
break;
case 1:
- ChipLogProgress(chipTool, " ***** Test Step 1 : Sends a MoveToLevel command to set current level to min value\n");
+ ChipLogProgress(chipTool, " ***** Test Step 1 : Sends a MoveToLevel command to set CurrentLevel to min value\n");
err = TestSendsAMoveToLevelCommandToSetCurrentLevelToMinValue_1();
break;
case 2:
@@ -97056,7 +97129,7 @@
err = TestIfOnLevelIsDefinedCheckCurrentLevelIsMinValue_18();
break;
case 19:
- ChipLogProgress(chipTool, " ***** Test Step 19 : Sends a MoveToLevel command to set current level to a mid value\n");
+ ChipLogProgress(chipTool, " ***** Test Step 19 : Sends a MoveToLevel command to set CurrentLevel to a mid value\n");
err = TestSendsAMoveToLevelCommandToSetCurrentLevelToAMidValue_19();
break;
case 20:
@@ -97263,7 +97336,7 @@
params.optionsOverride = [NSNumber numberWithUnsignedChar:1U];
[cluster moveToLevelWithParams:params
completionHandler:^(NSError * _Nullable err) {
- NSLog(@"Sends a MoveToLevel command to set current level to min value Error: %@", err);
+ NSLog(@"Sends a MoveToLevel command to set CurrentLevel to min value Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -97295,7 +97368,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 1U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 1U));
}
NextTest();
@@ -97348,7 +97422,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("on off transition time", actualValue, 0U));
+ VerifyOrReturn(CheckValue("OnOffTransitionTime", actualValue, 0U));
}
NextTest();
@@ -97401,8 +97475,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValueNonNull("on level", actualValue));
- VerifyOrReturn(CheckValue("on level", actualValue, 254U));
+ VerifyOrReturn(CheckValueNonNull("OnLevel", actualValue));
+ VerifyOrReturn(CheckValue("OnLevel", actualValue, 254U));
}
NextTest();
@@ -97426,7 +97500,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("min level", actualValue, 1U));
+ VerifyOrReturn(CheckValue("MinLevel", actualValue, 1U));
}
NextTest();
@@ -97496,7 +97570,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 254U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 254U));
}
NextTest();
@@ -97566,7 +97641,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 1U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 1U));
}
NextTest();
@@ -97590,7 +97666,7 @@
params.optionsOverride = [NSNumber numberWithUnsignedChar:1U];
[cluster moveToLevelWithParams:params
completionHandler:^(NSError * _Nullable err) {
- NSLog(@"Sends a MoveToLevel command to set current level to a mid value Error: %@", err);
+ NSLog(@"Sends a MoveToLevel command to set CurrentLevel to a mid value Error: %@", err);
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -97622,7 +97698,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 127U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 127U));
}
NextTest();
@@ -97675,7 +97752,7 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValueNull("on level", actualValue));
+ VerifyOrReturn(CheckValueNull("OnLevel", actualValue));
}
NextTest();
@@ -97745,7 +97822,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 127U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 127U));
}
NextTest();
@@ -97815,7 +97893,8 @@
{
id actualValue = value;
- VerifyOrReturn(CheckValue("current level", actualValue, 127U));
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 127U));
}
NextTest();
diff --git a/zzz_generated/lighting-app/zap-generated/access.h b/zzz_generated/lighting-app/zap-generated/access.h
index 46ba904..9bec66a 100644
--- a/zzz_generated/lighting-app/zap-generated/access.h
+++ b/zzz_generated/lighting-app/zap-generated/access.h
@@ -30,7 +30,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -55,7 +55,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -80,7 +80,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -107,7 +107,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -123,7 +123,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -139,7 +139,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/lighting-app/zap-generated/endpoint_config.h b/zzz_generated/lighting-app/zap-generated/endpoint_config.h
index 0eadabd..fb85f25 100644
--- a/zzz_generated/lighting-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/lighting-app/zap-generated/endpoint_config.h
@@ -89,7 +89,7 @@
{ (uint16_t) 0xFF, (uint16_t) 0x0, (uint16_t) 0x2 }, /* StartUpOnOff */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \
+ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* Options */ \
\
/* Endpoint: 1, Cluster: Color Control (server) */ \
{ \
@@ -473,28 +473,29 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x01) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
- { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* current frequency */ \
- { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* min frequency */ \
- { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* max frequency */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(0x01) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* MaxLevel */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* CurrentFrequency */ \
+ { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MinFrequency */ \
+ { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MaxFrequency */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* Options */ \
{ 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_SIMPLE_DEFAULT(0x0000) }, /* on off transition time */ \
+ ZAP_SIMPLE_DEFAULT(0x0000) }, /* OnOffTransitionTime */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFF) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFF) }, /* OnLevel */ \
{ 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* on transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OnTransitionTime */ \
{ 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* off transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OffTransitionTime */ \
{ 0x00000014, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(50) }, /* default move rate */ \
+ ZAP_SIMPLE_DEFAULT(50) }, /* DefaultMoveRate */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, \
ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(255) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(255) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h
index 7a3260f..21e6dd4 100644
--- a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h
+++ b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h
@@ -568,9 +568,9 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* current level */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentLevel */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Basic (server) */ \
{ 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
diff --git a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h
index 7a3260f..21e6dd4 100644
--- a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h
+++ b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h
@@ -568,9 +568,9 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* current level */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentLevel */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Basic (server) */ \
{ 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
diff --git a/zzz_generated/pump-app/zap-generated/endpoint_config.h b/zzz_generated/pump-app/zap-generated/endpoint_config.h
index b9414fa..89e8194 100644
--- a/zzz_generated/pump-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/pump-app/zap-generated/endpoint_config.h
@@ -73,7 +73,7 @@
{ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \
+ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* Options */ \
\
/* Endpoint: 1, Cluster: Pump Configuration and Control (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* OperationMode */ \
@@ -271,13 +271,13 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* current level */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xC8) }, /* max level */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentLevel */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xC8) }, /* MaxLevel */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(0) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(0) }, /* Options */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFF) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFF) }, /* OnLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/tv-app/zap-generated/access.h b/zzz_generated/tv-app/zap-generated/access.h
index d788c99..a210a00 100644
--- a/zzz_generated/tv-app/zap-generated/access.h
+++ b/zzz_generated/tv-app/zap-generated/access.h
@@ -29,7 +29,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -52,7 +52,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -75,7 +75,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -100,7 +100,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -114,7 +114,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -128,7 +128,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/tv-app/zap-generated/endpoint_config.h b/zzz_generated/tv-app/zap-generated/endpoint_config.h
index 34443ed..5e90f65 100644
--- a/zzz_generated/tv-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/tv-app/zap-generated/endpoint_config.h
@@ -144,7 +144,7 @@
/* Endpoint: 0, Cluster: Unit Localization (server) */ \
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* TemperatureUnit */ \
\
- /* Endpoint: 2, Cluster: Level Control (server) */ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 } /* options */ \
+ /* Endpoint: 2, Cluster: Level Control (server) */ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 } /* Options */ \
}
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
@@ -591,28 +591,29 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 2, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x00) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFF) }, /* max level */ \
- { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* current frequency */ \
- { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* min frequency */ \
- { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* max frequency */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFF) }, /* MaxLevel */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* CurrentFrequency */ \
+ { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MinFrequency */ \
+ { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MaxFrequency */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* Options */ \
{ 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_SIMPLE_DEFAULT(0x0000) }, /* on off transition time */ \
+ ZAP_SIMPLE_DEFAULT(0x0000) }, /* OnOffTransitionTime */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* on transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OnTransitionTime */ \
{ 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* off transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OffTransitionTime */ \
{ 0x00000014, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* default move rate */ \
+ ZAP_EMPTY_DEFAULT() }, /* DefaultMoveRate */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, \
ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(255) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(255) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\
diff --git a/zzz_generated/tv-casting-app/zap-generated/access.h b/zzz_generated/tv-casting-app/zap-generated/access.h
index 5dc37fc..2cd9738 100644
--- a/zzz_generated/tv-casting-app/zap-generated/access.h
+++ b/zzz_generated/tv-casting-app/zap-generated/access.h
@@ -30,7 +30,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -54,7 +54,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -78,7 +78,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
- /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -104,7 +104,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -119,7 +119,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -134,7 +134,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
- kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
diff --git a/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h b/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h
index f3a0b88..b39b2f0 100644
--- a/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h
@@ -92,7 +92,7 @@
{ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x2 }, /* StartUpOnOff */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \
+ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* Options */ \
\
/* Endpoint: 1, Cluster: Binary Input (Basic) (server) */ \
{ \
@@ -483,28 +483,29 @@
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x00) }, /* current level */ \
- { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* min level */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFF) }, /* max level */ \
- { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* current frequency */ \
- { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* min frequency */ \
- { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* max frequency */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentLevel */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* MinLevel */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFF) }, /* MaxLevel */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* CurrentFrequency */ \
+ { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MinFrequency */ \
+ { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* MaxFrequency */ \
{ 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_MIN_MAX_DEFAULTS_INDEX(3) }, /* options */ \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(3) }, /* Options */ \
{ 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), \
- ZAP_SIMPLE_DEFAULT(0x0000) }, /* on off transition time */ \
+ ZAP_SIMPLE_DEFAULT(0x0000) }, /* OnOffTransitionTime */ \
{ 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(0xFE) }, /* on level */ \
+ ZAP_SIMPLE_DEFAULT(0xFE) }, /* OnLevel */ \
{ 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* on transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OnTransitionTime */ \
{ 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* off transition time */ \
+ ZAP_EMPTY_DEFAULT() }, /* OffTransitionTime */ \
{ 0x00000014, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_EMPTY_DEFAULT() }, /* default move rate */ \
+ ZAP_EMPTY_DEFAULT() }, /* DefaultMoveRate */ \
{ 0x00004000, ZAP_TYPE(INT8U), 1, \
ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
- ZAP_SIMPLE_DEFAULT(255) }, /* start up current level */ \
+ ZAP_SIMPLE_DEFAULT(255) }, /* StartUpCurrentLevel */ \
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
\