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 cd3a2b97932458..599e4b04d6b9a2 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 @@ -3784,8 +3784,12 @@ server cluster WindowCovering = 258 { } readonly attribute Type type = 0; + readonly attribute int16u physicalClosedLimitLift = 1; + readonly attribute int16u physicalClosedLimitTilt = 2; readonly attribute nullable int16u currentPositionLift = 3; readonly attribute nullable int16u currentPositionTilt = 4; + readonly attribute int16u numberOfActuationsLift = 5; + readonly attribute int16u numberOfActuationsTilt = 6; readonly attribute ConfigStatus configStatus = 7; readonly attribute nullable Percent currentPositionLiftPercentage = 8; readonly attribute nullable Percent currentPositionTiltPercentage = 9; @@ -3801,6 +3805,9 @@ server cluster WindowCovering = 258 { readonly attribute int16u installedClosedLimitTilt = 19; attribute access(write: manage) Mode mode = 23; readonly attribute bitmap16 safetyStatus = 26; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -4330,23 +4337,30 @@ endpoint 1 { server cluster WindowCovering { ram attribute type; + ram attribute physicalClosedLimitLift default = 0xFFFF; + ram attribute physicalClosedLimitTilt default = 0xFFFF; persist attribute currentPositionLift default = 0x7FFF; persist attribute currentPositionTilt default = 0x7FFF; + persist attribute numberOfActuationsLift; + persist attribute numberOfActuationsTilt; persist attribute configStatus default = 0x03; persist attribute currentPositionLiftPercentage default = 50; persist attribute currentPositionTiltPercentage default = 50; ram attribute operationalStatus; - ram attribute targetPositionLiftPercent100ths default = 500; - ram attribute targetPositionTiltPercent100ths default = 500; + ram attribute targetPositionLiftPercent100ths default = 5000; + ram attribute targetPositionTiltPercent100ths default = 5000; ram attribute endProductType; - persist attribute currentPositionLiftPercent100ths default = 500; - persist attribute currentPositionTiltPercent100ths default = 500; + persist attribute currentPositionLiftPercent100ths default = 5000; + persist attribute currentPositionTiltPercent100ths default = 5000; persist attribute installedOpenLimitLift; persist attribute installedClosedLimitLift default = 0xFFFF; persist attribute installedOpenLimitTilt; persist attribute installedClosedLimitTilt default = 0xFFFF; persist attribute mode; ram attribute safetyStatus; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap default = 0x17; ram attribute clusterRevision default = 5; } diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap index 5984fce870eb3d..41e2a0f5e7ae75 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap @@ -13608,6 +13608,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "PhysicalClosedLimitLift", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65545, + "reportableChange": 0 + }, + { + "name": "PhysicalClosedLimitTilt", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65545, + "reportableChange": 0 + }, { "name": "CurrentPositionLift", "code": 3, @@ -13640,6 +13672,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "NumberOfActuationsLift", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65545, + "reportableChange": 0 + }, + { + "name": "NumberOfActuationsTilt", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65545, + "reportableChange": 0 + }, { "name": "ConfigStatus", "code": 7, @@ -13714,7 +13778,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -13730,7 +13794,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -13762,7 +13826,7 @@ "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -13778,7 +13842,7 @@ "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -13880,6 +13944,54 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -25013,4 +25125,4 @@ "deviceIdentifier": 61442 } ] -} \ No newline at end of file +} diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter index b812dd385cf2a3..2acaae28cac7cc 100644 --- a/examples/window-app/common/window-app.matter +++ b/examples/window-app/common/window-app.matter @@ -1500,8 +1500,12 @@ server cluster WindowCovering = 258 { } readonly attribute Type type = 0; + readonly attribute int16u physicalClosedLimitLift = 1; + readonly attribute int16u physicalClosedLimitTilt = 2; readonly attribute nullable int16u currentPositionLift = 3; readonly attribute nullable int16u currentPositionTilt = 4; + readonly attribute int16u numberOfActuationsLift = 5; + readonly attribute int16u numberOfActuationsTilt = 6; readonly attribute ConfigStatus configStatus = 7; readonly attribute nullable Percent currentPositionLiftPercentage = 8; readonly attribute nullable Percent currentPositionTiltPercentage = 9; @@ -1885,8 +1889,12 @@ endpoint 1 { server cluster WindowCovering { ram attribute type; + ram attribute physicalClosedLimitLift default = 0xFFFF; + ram attribute physicalClosedLimitTilt default = 0xFFFF; persist attribute currentPositionLift; persist attribute currentPositionTilt; + persist attribute numberOfActuationsLift; + persist attribute numberOfActuationsTilt; persist attribute configStatus default = 0x03; persist attribute currentPositionLiftPercentage; persist attribute currentPositionTiltPercentage; @@ -1927,8 +1935,12 @@ endpoint 2 { server cluster WindowCovering { ram attribute type; + ram attribute physicalClosedLimitLift default = 0xFFFF; + ram attribute physicalClosedLimitTilt default = 0xFFFF; persist attribute currentPositionLift; persist attribute currentPositionTilt; + persist attribute numberOfActuationsLift; + persist attribute numberOfActuationsTilt; persist attribute configStatus default = 0x03; persist attribute currentPositionLiftPercentage; persist attribute currentPositionTiltPercentage; diff --git a/examples/window-app/common/window-app.zap b/examples/window-app/common/window-app.zap index 901ba65425077f..7b35e8a86d612f 100644 --- a/examples/window-app/common/window-app.zap +++ b/examples/window-app/common/window-app.zap @@ -8567,14 +8567,30 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0xFFFF", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "PhysicalClosedLimitTilt", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, "reportableChange": 0 }, { @@ -8609,6 +8625,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "NumberOfActuationsLift", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "NumberOfActuationsTilt", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, { "name": "ConfigStatus", "code": 7, @@ -10147,6 +10195,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "PhysicalClosedLimitLift", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "PhysicalClosedLimitTilt", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, { "name": "CurrentPositionLift", "code": 3, @@ -10179,6 +10259,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "NumberOfActuationsLift", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "NumberOfActuationsTilt", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, { "name": "ConfigStatus", "code": 7, @@ -10485,4 +10597,4 @@ "deviceIdentifier": 514 } ] -} \ No newline at end of file +} diff --git a/scripts/tools/check_test_pics.py b/scripts/tools/check_test_pics.py index 87dc57628fef8b..facc3dc4478001 100755 --- a/scripts/tools/check_test_pics.py +++ b/scripts/tools/check_test_pics.py @@ -39,6 +39,10 @@ def main(): with open(value_defs, "r") as stream: defined_values = set(map(lambda item: re.sub( value_regexp, "", item.rstrip()), stream.readlines())) + # Remove Comments w/ # and empty lines + for elem in list(defined_values): + if elem.startswith('#') or (elem == ""): + defined_values.discard(elem) with open(pics_yaml, "r") as stream: try: diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index c304f70da88c0d..b5a22962aa8ea5 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -224,6 +224,29 @@ PICS: - label: "Does the device implement the EndProductType attribute?" id: A_ENDPRODUCTTYPE + - label: "Does the device implement the OperationalStatus attribute?" + id: A_OPERATIONALSTATUS + + - label: + "Does the device implement the TargetPositionLiftPercent100ths + attribute?" + id: A_TARGETPOSITIONLIFTPERCENT100THS + + - label: + "Does the device implement the TargetPositionTiltPercent100ths + attribute?" + id: A_TARGETPOSITIONTILTPERCENT100THS + + - label: + "Does the device implement the CurrentPositionLiftPercent100ths + attribute?" + id: A_CURRENTPOSITIONLIFTPERCENT100THS + + - label: + "Does the device implement the CurrentPositionTiltPercent100ths + attribute?" + id: A_CURRENTPOSITIONTILTPERCENT100THS + - label: "Does the device implement the CurrentPositionLiftPercentage attribute?" @@ -234,6 +257,42 @@ PICS: attribute?" id: A_CURRENTPOSITIONTILTPERCENTAGE + - label: "Does the device implement the CurrentPositionLift attribute?" + id: A_CURRENTPOSITIONLIFT + + - label: "Does the device implement the CurrentPositionTilt attribute?" + id: A_CURRENTPOSITIONTILT + + - label: "Does the device implement the NumberOfActuationsLift attribute?" + id: A_NUMBEROFACTUATIONSLIFT + + - label: "Does the device implement the NumberOfActuationsTilt attribute?" + id: A_NUMBEROFACTUATIONSTILT + + - label: "Does the device implement the PhysicalClosedLimitLift attribute?" + id: A_PHYSICALCLOSEDLIMITLIFT + + - label: "Does the device implement the PhysicalClosedLimitTilt attribute?" + id: A_PHYSICALCLOSEDLIMITTILT + + - label: "Does the device implement the InstalledOpenLimitLift attribute?" + id: A_INSTALLEDOPENLIMITLIFT + + - label: "Does the device implement the InstalledOpenLimitTilt attribute?" + id: A_INSTALLEDOPENLIMITTILT + + - label: "Does the device implement the InstalledClosedLimitLift attribute?" + id: A_INSTALLEDCLOSEDLIMITLIFT + + - label: "Does the device implement the InstalledClosedLimitTilt attribute?" + id: A_INSTALLEDCLOSEDLIMITTILT + + - label: "Does the device implement the Mode attribute?" + id: A_MODE + + - label: "Does the device implement the SafetyStatus attribute?" + id: A_SAFETYSTATUS + ## WC-Commands received - label: "Does the device implement receiving the GoToLiftPercentage command?" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml index ae4d3039ffc534..37e7c86b630532 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml @@ -31,10 +31,12 @@ tests: value: nodeId ### MANDATORY Attributes + ### 1 MANDATORY Attributes ### Attribute[ 0]: Type ======================================= - - label: "2: read the RO mandatory attribute default: Type" + - label: "1a: read the RO mandatory attribute default: Type" command: "readAttribute" attribute: "Type" + PICS: A_TYPE response: constraints: type: enum8 @@ -42,9 +44,10 @@ tests: maxValue: 9 ### Attribute[ 7]: ConfigStatus =============================== - - label: "2: read the RO mandatory attribute default: ConfigStatus" + - label: "1b: read the RO mandatory attribute default: ConfigStatus" command: "readAttribute" attribute: "ConfigStatus" + PICS: A_CONFIGSTATUS response: constraints: type: map8 @@ -52,9 +55,10 @@ tests: maxValue: 63 ### Attribute[ 10]: OperationalStatus ========================== - - label: "2: read the RO mandatory attribute default: OperationalStatus" + - label: "1c: read the RO mandatory attribute default: OperationalStatus" command: "readAttribute" attribute: "OperationalStatus" + PICS: A_OPERATIONALSTATUS response: constraints: type: map8 @@ -62,9 +66,10 @@ tests: maxValue: 63 ### Attribute[ 13]: EndProductType ============================== - - label: "2: read the RO mandatory attribute default: EndProductType" + - label: "1d: read the RO mandatory attribute default: EndProductType" command: "readAttribute" attribute: "EndProductType" + PICS: A_ENDPRODUCTTYPE response: constraints: type: enum8 @@ -72,22 +77,31 @@ tests: maxValue: 23 ### Attribute[ 23]: Mode ======================================== - - label: "2: read the RW mandatory attribute default: Mode" + - label: "1e: read the RW mandatory attribute default: Mode" command: "readAttribute" attribute: "Mode" + PICS: A_MODE response: constraints: type: map8 minValue: 0 maxValue: 15 - ### CONDITIONALLY MANDATORY Attributes + - label: "1f: write a value into the RW mandatory attribute:: Mode" + command: "writeAttribute" + attribute: "Mode" + PICS: A_MODE + arguments: + value: 0 + + ### 2 CONDITIONALLY MANDATORY Attributes ### Attribute[ 11]: TargetPositionLiftPercent100ths ==================== - label: - "2: read the RO optional attribute default: + "2a: read the RO optional attribute default: TargetPositionLiftPercent100ths" command: "readAttribute" attribute: "TargetPositionLiftPercent100ths" + PICS: A_TARGETPOSITIONLIFTPERCENT100THS response: constraints: type: Percent100ths @@ -96,10 +110,11 @@ tests: ### Attribute[ 12]: TargetPositionTiltPercent100ths ==================== - label: - "2: read the RO optional attribute default: + "2b: read the RO optional attribute default: TargetPositionTiltPercent100ths" command: "readAttribute" attribute: "TargetPositionTiltPercent100ths" + PICS: A_TARGETPOSITIONTILTPERCENT100THS response: constraints: type: Percent100ths @@ -108,10 +123,11 @@ tests: ### Attribute[ 14]: CurrentPositionLiftPercent100ths ==================== - label: - "2: read the RO optional attribute default: + "2c: read the RO optional attribute default: CurrentPositionLiftPercent100ths" command: "readAttribute" attribute: "CurrentPositionLiftPercent100ths" + PICS: A_CURRENTPOSITIONLIFTPERCENT100THS response: constraints: type: Percent100ths @@ -120,10 +136,11 @@ tests: ### Attribute[ 15]: CurrentPositionTiltPercent100ths ==================== - label: - "2: read the RO optional attribute default: + "2d: read the RO optional attribute default: CurrentPositionTiltPercent100ths" command: "readAttribute" attribute: "CurrentPositionTiltPercent100ths" + PICS: A_CURRENTPOSITIONTILTPERCENT100THS response: constraints: type: Percent100ths @@ -131,9 +148,11 @@ tests: maxValue: 10000 ### Attribute[ 16]: InstalledOpenLimitLift ==================== - - label: "2: read the RO optional attribute default: InstalledOpenLimitLift" + - label: + "2e: read the RO optional attribute default: InstalledOpenLimitLift" command: "readAttribute" attribute: "InstalledOpenLimitLift" + PICS: A_INSTALLEDOPENLIMITLIFT response: constraints: type: uint16 @@ -142,9 +161,10 @@ tests: ### Attribute[ 17]: InstalledClosedLimitLift ==================== - label: - "2: read the RO optional attribute default: InstalledClosedLimitLift" + "2f: read the RO optional attribute default: InstalledClosedLimitLift" command: "readAttribute" attribute: "InstalledClosedLimitLift" + PICS: A_INSTALLEDCLOSEDLIMITLIFT response: constraints: type: uint16 @@ -152,9 +172,11 @@ tests: maxValue: 65535 ### Attribute[ 18]: InstalledOpenLimitTilt ==================== - - label: "2: read the RO optional attribute default: InstalledOpenLimitTilt" + - label: + "2g: read the RO optional attribute default: InstalledOpenLimitTilt" command: "readAttribute" attribute: "InstalledOpenLimitTilt" + PICS: A_INSTALLEDOPENLIMITTILT response: constraints: type: uint16 @@ -163,32 +185,52 @@ tests: ### Attribute[ 19]: InstalledClosedLimitTilt ==================== - label: - "2: read the RO optional attribute default: InstalledClosedLimitTilt" + "2h: read the RO optional attribute default: InstalledClosedLimitTilt" command: "readAttribute" attribute: "InstalledClosedLimitTilt" + PICS: A_INSTALLEDCLOSEDLIMITTILT response: constraints: type: uint16 minValue: 0 maxValue: 65535 - ### CONDITIONALLY and PURELY OPTIONAL Attributes + ### 3 CONDITIONALLY and PURELY OPTIONAL Attributes ### Attribute[ 26]: SafetyStatus ========================== - - label: "4: read the RO mandatory attribute default: SafetyStatus" + - label: "3a: read the RO mandatory attribute default: SafetyStatus" command: "readAttribute" attribute: "SafetyStatus" + PICS: A_SAFETYSTATUS response: constraints: type: map16 minValue: 0 maxValue: 2047 + - label: "3a.2: write a value into the RO mandatory attribute: SafetyStatus" + command: "writeAttribute" + attribute: "SafetyStatus" + PICS: A_SAFETYSTATUS + arguments: + value: 4096 + response: + error: UNSUPPORTED_WRITE + + - label: "3a.3: reads back the RO mandatory attribute: SafetyStatus" + command: "readAttribute" + attribute: "SafetyStatus" + PICS: A_SAFETYSTATUS + response: + constraints: + type: map16 + notValue: 4096 + ### Attribute[ 1]: PhysicalClosedLimitLift ==================== - label: - "4: read the RO optional attribute default: PhysicalClosedLimitLift" - disabled: true + "3b: read the RO optional attribute default: PhysicalClosedLimitLift" command: "readAttribute" attribute: "PhysicalClosedLimitLift" + PICS: A_PHYSICALCLOSEDLIMITLIFT response: constraints: type: uint16 @@ -197,10 +239,10 @@ tests: ### Attribute[ 2]: PhysicalClosedLimitTilt ==================== - label: - "4: read the RO optional attribute default: PhysicalClosedLimitTilt" - disabled: true + "3c: read the RO optional attribute default: PhysicalClosedLimitTilt" command: "readAttribute" attribute: "PhysicalClosedLimitTilt" + PICS: A_PHYSICALCLOSEDLIMITTILT response: constraints: type: uint16 @@ -208,9 +250,10 @@ tests: maxValue: 65535 ### Attribute[ 3]: CurrentPositionLift ==================== - - label: "4: read the RO optional attribute default: CurrentPositionLift" + - label: "3d: read the RO optional attribute default: CurrentPositionLift" command: "readAttribute" attribute: "CurrentPositionLift" + PICS: A_CURRENTPOSITIONLIFT response: constraints: type: uint16 @@ -218,9 +261,10 @@ tests: maxValue: 65535 ### Attribute[ 4]: CurrentPositionTilt ==================== - - label: "4: read the RO optional attribute default: CurrentPositionTilt" + - label: "3e: read the RO optional attribute default: CurrentPositionTilt" command: "readAttribute" attribute: "CurrentPositionTilt" + PICS: A_CURRENTPOSITIONTILT response: constraints: type: uint16 @@ -228,10 +272,11 @@ tests: maxValue: 65535 ### Attribute[ 5]: NumberOfActuationsLift ==================== - - label: "4: read the RO optional attribute default: NumberOfActuationsLift" - disabled: true + - label: + "3f: read the RO optional attribute default: NumberOfActuationsLift" command: "readAttribute" attribute: "NumberOfActuationsLift" + PICS: A_NUMBEROFACTUATIONSLIFT response: constraints: type: uint16 @@ -239,10 +284,11 @@ tests: maxValue: 65535 ### Attribute[ 6]: NumberOfActuationsTilt ==================== - - label: "4: read the RO optional attribute default: NumberOfActuationsTilt" - disabled: true + - label: + "3g: read the RO optional attribute default: NumberOfActuationsTilt" command: "readAttribute" attribute: "NumberOfActuationsTilt" + PICS: A_NUMBEROFACTUATIONSTILT response: constraints: type: uint16 @@ -251,10 +297,11 @@ tests: ### Attribute[ 8]: CurrentPositionLiftPercentage ==================== - label: - "4: read the RO optional attribute default: + "3h: read the RO optional attribute default: CurrentPositionLiftPercentage" command: "readAttribute" attribute: "CurrentPositionLiftPercentage" + PICS: A_CURRENTPOSITIONLIFTPERCENTAGE response: constraints: type: Percent @@ -263,10 +310,11 @@ tests: ### Attribute[ 9]: CurrentPositionTiltPercentage ==================== - label: - "4: read the RO optional attribute default: + "3i:read the RO optional attribute default: CurrentPositionTiltPercentage" command: "readAttribute" attribute: "CurrentPositionTiltPercentage" + PICS: A_CURRENTPOSITIONTILTPERCENTAGE response: constraints: type: Percent diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_4_4.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_4_4.yaml index a74f3d86c641a7..94a1062d1a3f6b 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_4_4.yaml @@ -47,20 +47,18 @@ tests: maxValue: 10000 - label: - "1b: If (PA_TL & TL) TH reads CurrentPositionTiltPercentage from DUT" + "1b 1c: If (PA_LF & LF) TH reads CurrentPositionTiltPercentage from + DUT + assert CurrentPositionTiltPercent100ths/100 equals + CurrentPositionTiltPercentage" command: "readAttribute" attribute: "CurrentPositionTiltPercentage" - PICS: WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE + PICS: WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONTILTPERCENTAGE response: - saveAs: attrCurrentPositionTiltPercentage + value: attrCurrentPositionTiltPercent100ths / 100 constraints: minValue: 0 maxValue: 100 - ##- label: "1c: If (PA_TL & TL) TH assert CurrentPositionTiltPercent100ths/100 equals CurrentPositionTiltPercentage" - ## PICS: WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE - # TODO [TC_WNCV_4_4] WindowCovering Fix this arithmetic operation issue #15190 - ######## Command BadParams 1 ####### ### Step 2x -> Verify the GoToTiltPercentage with a BadParam diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 6475ad69705aa9..8e8fbe2d148acd 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -49,20 +49,6 @@ A_CONTROLSEQUENCEOFOPERATION=1 CR_SetpointRaiseLower=1 A_OCCUPANCY=1 MANUAL_OCCUPANCY_CHANGE=1 -WNCV_LF=1 -WNCV_PA_LF=1 -WNCV_TL=1 -WNCV_PA_TL=1 -WNCV_CALIBRATION=1 -WNCV_MAINTENANCE=1 -WNCV_REVERSAL=1 -A_TYPE=1 -A_CONFIGSTATUS=1 -A_ENDPRODUCTTYPE=1 -A_CURRENTPOSITIONLIFTPERCENTAGE=1 -A_CURRENTPOSITIONTILTPERCENTAGE=1 -CR_GOTOLIFTPERCENTAGE=1 -CR_GOTOTILTPERCENTAGE=1 A_ONOFF=1 A_GLOBALSCENECONTROL=1 A_ONTIME=1 @@ -89,3 +75,36 @@ A_UNOCCUPIEDCOOLINGSETPOINT=0 A_UNOCCUPIEDHEATINGSETPOINT=0 A_MINSETPOINTDEADBAND=1 MANUAL_FLOW_CHANGE=1 + +# WindowCovering aka WNCV +WNCV_LF=1 +WNCV_PA_LF=1 +WNCV_TL=1 +WNCV_PA_TL=1 +WNCV_CALIBRATION=1 +WNCV_MAINTENANCE=1 +WNCV_REVERSAL=1 +A_TYPE=1 +A_CONFIGSTATUS=1 +A_ENDPRODUCTTYPE=1 +A_CURRENTPOSITIONLIFT=1 +A_CURRENTPOSITIONLIFTPERCENTAGE=1 +A_CURRENTPOSITIONLIFTPERCENT100THS=1 +A_TARGETPOSITIONLIFTPERCENT100THS=1 +A_CURRENTPOSITIONTILT=1 +A_CURRENTPOSITIONTILTPERCENTAGE=1 +A_CURRENTPOSITIONTILTPERCENT100THS=1 +A_TARGETPOSITIONTILTPERCENT100THS=1 +A_INSTALLEDCLOSEDLIMITLIFT=1 +A_INSTALLEDCLOSEDLIMITTILT=1 +A_INSTALLEDOPENLIMITLIFT=1 +A_INSTALLEDOPENLIMITTILT=1 +A_MODE=1 +A_OPERATIONALSTATUS=1 +A_NUMBEROFACTUATIONSLIFT=1 +A_NUMBEROFACTUATIONSTILT=1 +A_PHYSICALCLOSEDLIMITLIFT=1 +A_PHYSICALCLOSEDLIMITTILT=1 +A_SAFETYSTATUS=1 +CR_GOTOLIFTPERCENTAGE=1 +CR_GOTOTILTPERCENTAGE=1 diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index d8faea1ea1b1c1..d2d9b4c3b61cbf 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -4283,8 +4283,12 @@ client cluster WindowCovering = 258 { } readonly attribute Type type = 0; + readonly attribute int16u physicalClosedLimitLift = 1; + readonly attribute int16u physicalClosedLimitTilt = 2; readonly attribute nullable int16u currentPositionLift = 3; readonly attribute nullable int16u currentPositionTilt = 4; + readonly attribute int16u numberOfActuationsLift = 5; + readonly attribute int16u numberOfActuationsTilt = 6; readonly attribute ConfigStatus configStatus = 7; readonly attribute nullable Percent currentPositionLiftPercentage = 8; readonly attribute nullable Percent currentPositionTiltPercentage = 9; diff --git a/src/controller/data_model/controller-clusters.zap b/src/controller/data_model/controller-clusters.zap index 0d2b2739d3a231..4d59bf6fd68553 100644 --- a/src/controller/data_model/controller-clusters.zap +++ b/src/controller/data_model/controller-clusters.zap @@ -10374,7 +10374,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -10390,7 +10390,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -10438,7 +10438,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -10454,7 +10454,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -19314,4 +19314,4 @@ "deviceIdentifier": 22 } ] -} \ No newline at end of file +} diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp index 39767ccb6bae25..b1a3b87652c72d 100644 --- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp +++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp @@ -18463,6 +18463,36 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR static_cast(cppValue), value); return value; } + case Attributes::PhysicalClosedLimitLift::Id: { + using TypeInfo = Attributes::PhysicalClosedLimitLift::TypeInfo; + TypeInfo::DecodableType cppValue; + *aError = app::DataModel::Decode(aReader, cppValue); + if (*aError != CHIP_NO_ERROR) + { + return nullptr; + } + jobject value; + std::string valueClassName = "java/lang/Integer"; + std::string valueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), + cppValue, value); + return value; + } + case Attributes::PhysicalClosedLimitTilt::Id: { + using TypeInfo = Attributes::PhysicalClosedLimitTilt::TypeInfo; + TypeInfo::DecodableType cppValue; + *aError = app::DataModel::Decode(aReader, cppValue); + if (*aError != CHIP_NO_ERROR) + { + return nullptr; + } + jobject value; + std::string valueClassName = "java/lang/Integer"; + std::string valueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), + cppValue, value); + return value; + } case Attributes::CurrentPositionLift::Id: { using TypeInfo = Attributes::CurrentPositionLift::TypeInfo; TypeInfo::DecodableType cppValue; @@ -18507,6 +18537,36 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR } return value; } + case Attributes::NumberOfActuationsLift::Id: { + using TypeInfo = Attributes::NumberOfActuationsLift::TypeInfo; + TypeInfo::DecodableType cppValue; + *aError = app::DataModel::Decode(aReader, cppValue); + if (*aError != CHIP_NO_ERROR) + { + return nullptr; + } + jobject value; + std::string valueClassName = "java/lang/Integer"; + std::string valueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), + cppValue, value); + return value; + } + case Attributes::NumberOfActuationsTilt::Id: { + using TypeInfo = Attributes::NumberOfActuationsTilt::TypeInfo; + TypeInfo::DecodableType cppValue; + *aError = app::DataModel::Decode(aReader, cppValue); + if (*aError != CHIP_NO_ERROR) + { + return nullptr; + } + jobject value; + std::string valueClassName = "java/lang/Integer"; + std::string valueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), + cppValue, value); + return value; + } case Attributes::ConfigStatus::Id: { using TypeInfo = Attributes::ConfigStatus::TypeInfo; TypeInfo::DecodableType cppValue; diff --git a/src/controller/java/zap-generated/CHIPCallbackTypes.h b/src/controller/java/zap-generated/CHIPCallbackTypes.h index 2198662bfd149c..257190cef397d4 100644 --- a/src/controller/java/zap-generated/CHIPCallbackTypes.h +++ b/src/controller/java/zap-generated/CHIPCallbackTypes.h @@ -1872,10 +1872,18 @@ typedef void (*CHIPWiFiNetworkDiagnosticsClusterClusterRevisionAttributeCallback typedef void (*CHIPWindowCoveringClusterTypeAttributeCallbackType)( void *, chip::app::Clusters::WindowCovering::Attributes::Type::TypeInfo::DecodableArgType); +typedef void (*CHIPWindowCoveringClusterPhysicalClosedLimitLiftAttributeCallbackType)( + void *, chip::app::Clusters::WindowCovering::Attributes::PhysicalClosedLimitLift::TypeInfo::DecodableArgType); +typedef void (*CHIPWindowCoveringClusterPhysicalClosedLimitTiltAttributeCallbackType)( + void *, chip::app::Clusters::WindowCovering::Attributes::PhysicalClosedLimitTilt::TypeInfo::DecodableArgType); typedef void (*CHIPWindowCoveringClusterCurrentPositionLiftAttributeCallbackType)( void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionLift::TypeInfo::DecodableArgType); typedef void (*CHIPWindowCoveringClusterCurrentPositionTiltAttributeCallbackType)( void *, chip::app::Clusters::WindowCovering::Attributes::CurrentPositionTilt::TypeInfo::DecodableArgType); +typedef void (*CHIPWindowCoveringClusterNumberOfActuationsLiftAttributeCallbackType)( + void *, chip::app::Clusters::WindowCovering::Attributes::NumberOfActuationsLift::TypeInfo::DecodableArgType); +typedef void (*CHIPWindowCoveringClusterNumberOfActuationsTiltAttributeCallbackType)( + void *, chip::app::Clusters::WindowCovering::Attributes::NumberOfActuationsTilt::TypeInfo::DecodableArgType); typedef void (*CHIPWindowCoveringClusterConfigStatusAttributeCallbackType)( void *, chip::app::Clusters::WindowCovering::Attributes::ConfigStatus::TypeInfo::DecodableArgType); typedef void (*CHIPWindowCoveringClusterCurrentPositionLiftPercentageAttributeCallbackType)( diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java index c03311736a0743..0ea9d8be2466d9 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java @@ -23896,6 +23896,24 @@ public void subscribeTypeAttribute( subscribeTypeAttribute(chipClusterPtr, callback, minInterval, maxInterval); } + public void readPhysicalClosedLimitLiftAttribute(IntegerAttributeCallback callback) { + readPhysicalClosedLimitLiftAttribute(chipClusterPtr, callback); + } + + public void subscribePhysicalClosedLimitLiftAttribute( + IntegerAttributeCallback callback, int minInterval, int maxInterval) { + subscribePhysicalClosedLimitLiftAttribute(chipClusterPtr, callback, minInterval, maxInterval); + } + + public void readPhysicalClosedLimitTiltAttribute(IntegerAttributeCallback callback) { + readPhysicalClosedLimitTiltAttribute(chipClusterPtr, callback); + } + + public void subscribePhysicalClosedLimitTiltAttribute( + IntegerAttributeCallback callback, int minInterval, int maxInterval) { + subscribePhysicalClosedLimitTiltAttribute(chipClusterPtr, callback, minInterval, maxInterval); + } + public void readCurrentPositionLiftAttribute(CurrentPositionLiftAttributeCallback callback) { readCurrentPositionLiftAttribute(chipClusterPtr, callback); } @@ -23914,6 +23932,24 @@ public void subscribeCurrentPositionTiltAttribute( subscribeCurrentPositionTiltAttribute(chipClusterPtr, callback, minInterval, maxInterval); } + public void readNumberOfActuationsLiftAttribute(IntegerAttributeCallback callback) { + readNumberOfActuationsLiftAttribute(chipClusterPtr, callback); + } + + public void subscribeNumberOfActuationsLiftAttribute( + IntegerAttributeCallback callback, int minInterval, int maxInterval) { + subscribeNumberOfActuationsLiftAttribute(chipClusterPtr, callback, minInterval, maxInterval); + } + + public void readNumberOfActuationsTiltAttribute(IntegerAttributeCallback callback) { + readNumberOfActuationsTiltAttribute(chipClusterPtr, callback); + } + + public void subscribeNumberOfActuationsTiltAttribute( + IntegerAttributeCallback callback, int minInterval, int maxInterval) { + subscribeNumberOfActuationsTiltAttribute(chipClusterPtr, callback, minInterval, maxInterval); + } + public void readConfigStatusAttribute(IntegerAttributeCallback callback) { readConfigStatusAttribute(chipClusterPtr, callback); } @@ -24130,6 +24166,18 @@ public void subscribeClusterRevisionAttribute( private native void subscribeTypeAttribute( long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval); + private native void readPhysicalClosedLimitLiftAttribute( + long chipClusterPtr, IntegerAttributeCallback callback); + + private native void subscribePhysicalClosedLimitLiftAttribute( + long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval); + + private native void readPhysicalClosedLimitTiltAttribute( + long chipClusterPtr, IntegerAttributeCallback callback); + + private native void subscribePhysicalClosedLimitTiltAttribute( + long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval); + private native void readCurrentPositionLiftAttribute( long chipClusterPtr, CurrentPositionLiftAttributeCallback callback); @@ -24148,6 +24196,18 @@ private native void subscribeCurrentPositionTiltAttribute( int minInterval, int maxInterval); + private native void readNumberOfActuationsLiftAttribute( + long chipClusterPtr, IntegerAttributeCallback callback); + + private native void subscribeNumberOfActuationsLiftAttribute( + long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval); + + private native void readNumberOfActuationsTiltAttribute( + long chipClusterPtr, IntegerAttributeCallback callback); + + private native void subscribeNumberOfActuationsTiltAttribute( + long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval); + private native void readConfigStatusAttribute( long chipClusterPtr, IntegerAttributeCallback callback); diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java index 096a39974998ea..3ac7776a21e333 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java @@ -2944,12 +2944,24 @@ public static String attributeIdToName(long clusterId, long attributeId) { if (attributeId == 0L) { return "Type"; } + if (attributeId == 1L) { + return "PhysicalClosedLimitLift"; + } + if (attributeId == 2L) { + return "PhysicalClosedLimitTilt"; + } if (attributeId == 3L) { return "CurrentPositionLift"; } if (attributeId == 4L) { return "CurrentPositionTilt"; } + if (attributeId == 5L) { + return "NumberOfActuationsLift"; + } + if (attributeId == 6L) { + return "NumberOfActuationsTilt"; + } if (attributeId == 7L) { return "ConfigStatus"; } diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java index 1f3ea30bd5669e..cec82839d68ac5 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java @@ -11762,6 +11762,34 @@ public Map> getReadAttributeMap() { readWindowCoveringTypeCommandParams); readWindowCoveringInteractionInfo.put( "readTypeAttribute", readWindowCoveringTypeAttributeInteractionInfo); + Map readWindowCoveringPhysicalClosedLimitLiftCommandParams = + new LinkedHashMap(); + InteractionInfo readWindowCoveringPhysicalClosedLimitLiftAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster) + .readPhysicalClosedLimitLiftAttribute( + (ChipClusters.IntegerAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringPhysicalClosedLimitLiftCommandParams); + readWindowCoveringInteractionInfo.put( + "readPhysicalClosedLimitLiftAttribute", + readWindowCoveringPhysicalClosedLimitLiftAttributeInteractionInfo); + Map readWindowCoveringPhysicalClosedLimitTiltCommandParams = + new LinkedHashMap(); + InteractionInfo readWindowCoveringPhysicalClosedLimitTiltAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster) + .readPhysicalClosedLimitTiltAttribute( + (ChipClusters.IntegerAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringPhysicalClosedLimitTiltCommandParams); + readWindowCoveringInteractionInfo.put( + "readPhysicalClosedLimitTiltAttribute", + readWindowCoveringPhysicalClosedLimitTiltAttributeInteractionInfo); Map readWindowCoveringCurrentPositionLiftCommandParams = new LinkedHashMap(); InteractionInfo readWindowCoveringCurrentPositionLiftAttributeInteractionInfo = @@ -11792,6 +11820,34 @@ public Map> getReadAttributeMap() { readWindowCoveringInteractionInfo.put( "readCurrentPositionTiltAttribute", readWindowCoveringCurrentPositionTiltAttributeInteractionInfo); + Map readWindowCoveringNumberOfActuationsLiftCommandParams = + new LinkedHashMap(); + InteractionInfo readWindowCoveringNumberOfActuationsLiftAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster) + .readNumberOfActuationsLiftAttribute( + (ChipClusters.IntegerAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringNumberOfActuationsLiftCommandParams); + readWindowCoveringInteractionInfo.put( + "readNumberOfActuationsLiftAttribute", + readWindowCoveringNumberOfActuationsLiftAttributeInteractionInfo); + Map readWindowCoveringNumberOfActuationsTiltCommandParams = + new LinkedHashMap(); + InteractionInfo readWindowCoveringNumberOfActuationsTiltAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster) + .readNumberOfActuationsTiltAttribute( + (ChipClusters.IntegerAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringNumberOfActuationsTiltCommandParams); + readWindowCoveringInteractionInfo.put( + "readNumberOfActuationsTiltAttribute", + readWindowCoveringNumberOfActuationsTiltAttributeInteractionInfo); Map readWindowCoveringConfigStatusCommandParams = new LinkedHashMap(); InteractionInfo readWindowCoveringConfigStatusAttributeInteractionInfo = diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py index 45da2d88efecb3..0ca348b7a4c3c3 100644 --- a/src/controller/python/chip/clusters/CHIPClusters.py +++ b/src/controller/python/chip/clusters/CHIPClusters.py @@ -7204,6 +7204,18 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x00000001: { + "attributeName": "PhysicalClosedLimitLift", + "attributeId": 0x00000001, + "type": "int", + "reportable": True, + }, + 0x00000002: { + "attributeName": "PhysicalClosedLimitTilt", + "attributeId": 0x00000002, + "type": "int", + "reportable": True, + }, 0x00000003: { "attributeName": "CurrentPositionLift", "attributeId": 0x00000003, @@ -7216,6 +7228,18 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x00000005: { + "attributeName": "NumberOfActuationsLift", + "attributeId": 0x00000005, + "type": "int", + "reportable": True, + }, + 0x00000006: { + "attributeName": "NumberOfActuationsTilt", + "attributeId": 0x00000006, + "type": "int", + "reportable": True, + }, 0x00000007: { "attributeName": "ConfigStatus", "attributeId": 0x00000007, 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 b870b76adeb678..244ead4ba7e66b 100644 --- a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h +++ b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h @@ -376,7 +376,7 @@ #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask // This is an array of EmberAfAttributeMetadata structures. -#define GENERATED_ATTRIBUTE_COUNT 721 +#define GENERATED_ATTRIBUTE_COUNT 725 #define GENERATED_ATTRIBUTES \ { \ \ @@ -947,11 +947,17 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(6) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Window Covering (server) */ \ - { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* Type */ \ + { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* Type */ \ + { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFFFF) }, /* PhysicalClosedLimitLift */ \ + { 0x00000002, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFFFF) }, /* PhysicalClosedLimitTilt */ \ { 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0x7FFF) }, /* CurrentPositionLift */ \ { 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0x7FFF) }, /* CurrentPositionTilt */ \ + { 0x00000005, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ + ZAP_SIMPLE_DEFAULT(0x0000) }, /* NumberOfActuationsLift */ \ + { 0x00000006, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ + ZAP_SIMPLE_DEFAULT(0x0000) }, /* NumberOfActuationsTilt */ \ { 0x00000007, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x03) }, /* ConfigStatus */ \ { 0x00000008, ZAP_TYPE(PERCENT), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(50) }, /* CurrentPositionLiftPercentage */ \ @@ -959,14 +965,14 @@ ZAP_SIMPLE_DEFAULT(50) }, /* CurrentPositionTiltPercentage */ \ { 0x0000000A, ZAP_TYPE(BITMAP8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* OperationalStatus */ \ { 0x0000000B, ZAP_TYPE(PERCENT100THS), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), \ - ZAP_SIMPLE_DEFAULT(500) }, /* TargetPositionLiftPercent100ths */ \ + ZAP_SIMPLE_DEFAULT(5000) }, /* TargetPositionLiftPercent100ths */ \ { 0x0000000C, ZAP_TYPE(PERCENT100THS), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), \ - ZAP_SIMPLE_DEFAULT(500) }, /* TargetPositionTiltPercent100ths */ \ + ZAP_SIMPLE_DEFAULT(5000) }, /* TargetPositionTiltPercent100ths */ \ { 0x0000000D, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* EndProductType */ \ { 0x0000000E, ZAP_TYPE(PERCENT100THS), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ - ZAP_SIMPLE_DEFAULT(500) }, /* CurrentPositionLiftPercent100ths */ \ + ZAP_SIMPLE_DEFAULT(5000) }, /* CurrentPositionLiftPercent100ths */ \ { 0x0000000F, ZAP_TYPE(PERCENT100THS), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ - ZAP_SIMPLE_DEFAULT(500) }, /* CurrentPositionTiltPercent100ths */ \ + ZAP_SIMPLE_DEFAULT(5000) }, /* CurrentPositionTiltPercent100ths */ \ { 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ ZAP_SIMPLE_DEFAULT(0x0000) }, /* InstalledOpenLimitLift */ \ { 0x00000011, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ @@ -2430,8 +2436,8 @@ /* Endpoint: 1, Cluster: Window Covering (server) */ \ .clusterId = 0x00000102, \ .attributes = ZAP_ATTRIBUTE_INDEX(354), \ - .attributeCount = 20, \ - .clusterSize = 35, \ + .attributeCount = 24, \ + .clusterSize = 43, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \ .functions = chipFuncArrayWindowCoveringServer, \ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 145 ) ,\ @@ -2440,7 +2446,7 @@ { \ /* Endpoint: 1, Cluster: Barrier Control (server) */ \ .clusterId = 0x00000103, \ - .attributes = ZAP_ATTRIBUTE_INDEX(374), \ + .attributes = ZAP_ATTRIBUTE_INDEX(378), \ .attributeCount = 6, \ .clusterSize = 11, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2451,7 +2457,7 @@ { \ /* Endpoint: 1, Cluster: Pump Configuration and Control (server) */ \ .clusterId = 0x00000200, \ - .attributes = ZAP_ATTRIBUTE_INDEX(380), \ + .attributes = ZAP_ATTRIBUTE_INDEX(384), \ .attributeCount = 25, \ .clusterSize = 52, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ @@ -2462,7 +2468,7 @@ { \ /* Endpoint: 1, Cluster: Thermostat (server) */ \ .clusterId = 0x00000201, \ - .attributes = ZAP_ATTRIBUTE_INDEX(405), \ + .attributes = ZAP_ATTRIBUTE_INDEX(409), \ .attributeCount = 20, \ .clusterSize = 35, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ @@ -2473,7 +2479,7 @@ { \ /* Endpoint: 1, Cluster: Fan Control (server) */ \ .clusterId = 0x00000202, \ - .attributes = ZAP_ATTRIBUTE_INDEX(425), \ + .attributes = ZAP_ATTRIBUTE_INDEX(429), \ .attributeCount = 13, \ .clusterSize = 17, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ @@ -2484,7 +2490,7 @@ { \ /* Endpoint: 1, Cluster: Thermostat User Interface Configuration (server) */ \ .clusterId = 0x00000204, \ - .attributes = ZAP_ATTRIBUTE_INDEX(438), \ + .attributes = ZAP_ATTRIBUTE_INDEX(442), \ .attributeCount = 5, \ .clusterSize = 9, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ @@ -2495,7 +2501,7 @@ { \ /* Endpoint: 1, Cluster: Color Control (server) */ \ .clusterId = 0x00000300, \ - .attributes = ZAP_ATTRIBUTE_INDEX(443), \ + .attributes = ZAP_ATTRIBUTE_INDEX(447), \ .attributeCount = 54, \ .clusterSize = 345, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -2506,7 +2512,7 @@ { \ /* Endpoint: 1, Cluster: Illuminance Measurement (server) */ \ .clusterId = 0x00000400, \ - .attributes = ZAP_ATTRIBUTE_INDEX(497), \ + .attributes = ZAP_ATTRIBUTE_INDEX(501), \ .attributeCount = 7, \ .clusterSize = 15, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2517,7 +2523,7 @@ { \ /* Endpoint: 1, Cluster: Temperature Measurement (server) */ \ .clusterId = 0x00000402, \ - .attributes = ZAP_ATTRIBUTE_INDEX(504), \ + .attributes = ZAP_ATTRIBUTE_INDEX(508), \ .attributeCount = 6, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2528,7 +2534,7 @@ { \ /* Endpoint: 1, Cluster: Pressure Measurement (server) */ \ .clusterId = 0x00000403, \ - .attributes = ZAP_ATTRIBUTE_INDEX(510), \ + .attributes = ZAP_ATTRIBUTE_INDEX(514), \ .attributeCount = 5, \ .clusterSize = 12, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2539,7 +2545,7 @@ { \ /* Endpoint: 1, Cluster: Flow Measurement (server) */ \ .clusterId = 0x00000404, \ - .attributes = ZAP_ATTRIBUTE_INDEX(515), \ + .attributes = ZAP_ATTRIBUTE_INDEX(519), \ .attributeCount = 6, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2550,7 +2556,7 @@ { \ /* Endpoint: 1, Cluster: Relative Humidity Measurement (server) */ \ .clusterId = 0x00000405, \ - .attributes = ZAP_ATTRIBUTE_INDEX(521), \ + .attributes = ZAP_ATTRIBUTE_INDEX(525), \ .attributeCount = 6, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2561,7 +2567,7 @@ { \ /* Endpoint: 1, Cluster: Occupancy Sensing (server) */ \ .clusterId = 0x00000406, \ - .attributes = ZAP_ATTRIBUTE_INDEX(527), \ + .attributes = ZAP_ATTRIBUTE_INDEX(531), \ .attributeCount = 5, \ .clusterSize = 9, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -2572,7 +2578,7 @@ { \ /* Endpoint: 1, Cluster: IAS Zone (server) */ \ .clusterId = 0x00000500, \ - .attributes = ZAP_ATTRIBUTE_INDEX(532), \ + .attributes = ZAP_ATTRIBUTE_INDEX(536), \ .attributeCount = 7, \ .clusterSize = 20, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION) | ZAP_CLUSTER_MASK(MESSAGE_SENT_FUNCTION), \ @@ -2583,7 +2589,7 @@ { \ /* Endpoint: 1, Cluster: Wake on LAN (server) */ \ .clusterId = 0x00000503, \ - .attributes = ZAP_ATTRIBUTE_INDEX(539), \ + .attributes = ZAP_ATTRIBUTE_INDEX(543), \ .attributeCount = 3, \ .clusterSize = 39, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2594,7 +2600,7 @@ { \ /* Endpoint: 1, Cluster: Channel (server) */ \ .clusterId = 0x00000504, \ - .attributes = ZAP_ATTRIBUTE_INDEX(542), \ + .attributes = ZAP_ATTRIBUTE_INDEX(546), \ .attributeCount = 3, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2605,7 +2611,7 @@ { \ /* Endpoint: 1, Cluster: Target Navigator (server) */ \ .clusterId = 0x00000505, \ - .attributes = ZAP_ATTRIBUTE_INDEX(545), \ + .attributes = ZAP_ATTRIBUTE_INDEX(549), \ .attributeCount = 4, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2616,7 +2622,7 @@ { \ /* Endpoint: 1, Cluster: Media Playback (server) */ \ .clusterId = 0x00000506, \ - .attributes = ZAP_ATTRIBUTE_INDEX(549), \ + .attributes = ZAP_ATTRIBUTE_INDEX(553), \ .attributeCount = 8, \ .clusterSize = 43, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2627,7 +2633,7 @@ { \ /* Endpoint: 1, Cluster: Media Input (server) */ \ .clusterId = 0x00000507, \ - .attributes = ZAP_ATTRIBUTE_INDEX(557), \ + .attributes = ZAP_ATTRIBUTE_INDEX(561), \ .attributeCount = 4, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2638,7 +2644,7 @@ { \ /* Endpoint: 1, Cluster: Low Power (server) */ \ .clusterId = 0x00000508, \ - .attributes = ZAP_ATTRIBUTE_INDEX(561), \ + .attributes = ZAP_ATTRIBUTE_INDEX(565), \ .attributeCount = 2, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2649,7 +2655,7 @@ { \ /* Endpoint: 1, Cluster: Keypad Input (server) */ \ .clusterId = 0x00000509, \ - .attributes = ZAP_ATTRIBUTE_INDEX(563), \ + .attributes = ZAP_ATTRIBUTE_INDEX(567), \ .attributeCount = 2, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2660,7 +2666,7 @@ { \ /* Endpoint: 1, Cluster: Content Launcher (server) */ \ .clusterId = 0x0000050A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(565), \ + .attributes = ZAP_ATTRIBUTE_INDEX(569), \ .attributeCount = 4, \ .clusterSize = 10, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2671,7 +2677,7 @@ { \ /* Endpoint: 1, Cluster: Audio Output (server) */ \ .clusterId = 0x0000050B, \ - .attributes = ZAP_ATTRIBUTE_INDEX(569), \ + .attributes = ZAP_ATTRIBUTE_INDEX(573), \ .attributeCount = 4, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2682,7 +2688,7 @@ { \ /* Endpoint: 1, Cluster: Application Launcher (server) */ \ .clusterId = 0x0000050C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(573), \ + .attributes = ZAP_ATTRIBUTE_INDEX(577), \ .attributeCount = 3, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2693,7 +2699,7 @@ { \ /* Endpoint: 1, Cluster: Application Basic (server) */ \ .clusterId = 0x0000050D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(576), \ + .attributes = ZAP_ATTRIBUTE_INDEX(580), \ .attributeCount = 9, \ .clusterSize = 110, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2704,7 +2710,7 @@ { \ /* Endpoint: 1, Cluster: Account Login (server) */ \ .clusterId = 0x0000050E, \ - .attributes = ZAP_ATTRIBUTE_INDEX(585), \ + .attributes = ZAP_ATTRIBUTE_INDEX(589), \ .attributeCount = 2, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2715,7 +2721,7 @@ { \ /* Endpoint: 1, Cluster: Test Cluster (server) */ \ .clusterId = 0x0000050F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(587), \ + .attributes = ZAP_ATTRIBUTE_INDEX(591), \ .attributeCount = 82, \ .clusterSize = 2289, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2726,7 +2732,7 @@ { \ /* Endpoint: 1, Cluster: Electrical Measurement (server) */ \ .clusterId = 0x00000B04, \ - .attributes = ZAP_ATTRIBUTE_INDEX(669), \ + .attributes = ZAP_ATTRIBUTE_INDEX(673), \ .attributeCount = 13, \ .clusterSize = 32, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2737,7 +2743,7 @@ { \ /* Endpoint: 2, Cluster: Groups (server) */ \ .clusterId = 0x00000004, \ - .attributes = ZAP_ATTRIBUTE_INDEX(682), \ + .attributes = ZAP_ATTRIBUTE_INDEX(686), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -2748,7 +2754,7 @@ { \ /* Endpoint: 2, Cluster: On/Off (server) */ \ .clusterId = 0x00000006, \ - .attributes = ZAP_ATTRIBUTE_INDEX(685), \ + .attributes = ZAP_ATTRIBUTE_INDEX(689), \ .attributeCount = 7, \ .clusterSize = 13, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -2759,7 +2765,7 @@ { \ /* Endpoint: 2, Cluster: Descriptor (server) */ \ .clusterId = 0x0000001D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(692), \ + .attributes = ZAP_ATTRIBUTE_INDEX(696), \ .attributeCount = 6, \ .clusterSize = 4, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2770,7 +2776,7 @@ { \ /* Endpoint: 2, Cluster: Power Source (server) */ \ .clusterId = 0x0000002F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(698), \ + .attributes = ZAP_ATTRIBUTE_INDEX(702), \ .attributeCount = 8, \ .clusterSize = 72, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2781,7 +2787,7 @@ { \ /* Endpoint: 2, Cluster: Occupancy Sensing (server) */ \ .clusterId = 0x00000406, \ - .attributes = ZAP_ATTRIBUTE_INDEX(706), \ + .attributes = ZAP_ATTRIBUTE_INDEX(710), \ .attributeCount = 5, \ .clusterSize = 9, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -2792,7 +2798,7 @@ { \ /* Endpoint: 65534, Cluster: Network Commissioning (server) */ \ .clusterId = 0x00000031, \ - .attributes = ZAP_ATTRIBUTE_INDEX(711), \ + .attributes = ZAP_ATTRIBUTE_INDEX(715), \ .attributeCount = 10, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -2811,7 +2817,7 @@ // This is an array of EmberAfEndpointType structures. #define GENERATED_ENDPOINT_TYPES \ { \ - { ZAP_CLUSTER_INDEX(0), 27, 355 }, { ZAP_CLUSTER_INDEX(27), 45, 3474 }, { ZAP_CLUSTER_INDEX(72), 5, 105 }, \ + { ZAP_CLUSTER_INDEX(0), 27, 355 }, { ZAP_CLUSTER_INDEX(27), 45, 3482 }, { ZAP_CLUSTER_INDEX(72), 5, 105 }, \ { ZAP_CLUSTER_INDEX(77), 1, 0 }, \ } @@ -2824,7 +2830,7 @@ static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, #define ATTRIBUTE_SINGLETONS_SIZE (37) // Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE (3934) +#define ATTRIBUTE_MAX_SIZE (3942) // Number of fixed endpoints #define FIXED_ENDPOINT_COUNT (4) diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 4bba5cc8cccd5c..711854a0a39fe9 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -35823,7 +35823,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand class Test_TC_WNCV_2_1Suite : public TestCommand { public: - Test_TC_WNCV_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_2_1", 19, credsIssuerConfig) + Test_TC_WNCV_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_2_1", 26, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -35911,6 +35911,9 @@ class Test_TC_WNCV_2_1Suite : public TestCommand } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -35920,7 +35923,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -35930,7 +35933,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -35940,7 +35943,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -35950,7 +35953,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -35960,7 +35963,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -35970,7 +35973,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -35980,7 +35983,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -35990,7 +35993,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -36000,7 +36003,39 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 2047U)); } break; - case 15: + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "map16")); + VerifyOrReturn(CheckConstraintNotValue("value", value, 4096U)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -36010,7 +36045,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 16: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -36020,7 +36055,27 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 17: + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "", "uint16")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + } + break; + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -36030,7 +36085,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100)); } break; - case 18: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -36063,92 +36118,158 @@ class Test_TC_WNCV_2_1Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "2: read the RO mandatory attribute default: Type"); + LogStep(1, "1a: read the RO mandatory attribute default: Type"); + VerifyOrDo(!ShouldSkip("A_TYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Type::Id, true, chip::NullOptional); } case 2: { - LogStep(2, "2: read the RO mandatory attribute default: ConfigStatus"); + LogStep(2, "1b: read the RO mandatory attribute default: ConfigStatus"); + VerifyOrDo(!ShouldSkip("A_CONFIGSTATUS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "2: read the RO mandatory attribute default: OperationalStatus"); + LogStep(3, "1c: read the RO mandatory attribute default: OperationalStatus"); + VerifyOrDo(!ShouldSkip("A_OPERATIONALSTATUS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "2: read the RO mandatory attribute default: EndProductType"); + LogStep(4, "1d: read the RO mandatory attribute default: EndProductType"); + VerifyOrDo(!ShouldSkip("A_ENDPRODUCTTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "2: read the RW mandatory attribute default: Mode"); + LogStep(5, "1e: read the RW mandatory attribute default: Mode"); + VerifyOrDo(!ShouldSkip("A_MODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "2: read the RO optional attribute default: TargetPositionLiftPercent100ths"); + LogStep(6, "1f: write a value into the RW mandatory attribute:: Mode"); + VerifyOrDo(!ShouldSkip("A_MODE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::BitFlags value; + value = static_cast>(0); + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::Mode::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 7: { + LogStep(7, "2a: read the RO optional attribute default: TargetPositionLiftPercent100ths"); + VerifyOrDo(!ShouldSkip("A_TARGETPOSITIONLIFTPERCENT100THS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "2: read the RO optional attribute default: TargetPositionTiltPercent100ths"); + case 8: { + LogStep(8, "2b: read the RO optional attribute default: TargetPositionTiltPercent100ths"); + VerifyOrDo(!ShouldSkip("A_TARGETPOSITIONTILTPERCENT100THS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "2: read the RO optional attribute default: CurrentPositionLiftPercent100ths"); + case 9: { + LogStep(9, "2c: read the RO optional attribute default: CurrentPositionLiftPercent100ths"); + VerifyOrDo(!ShouldSkip("A_CURRENTPOSITIONLIFTPERCENT100THS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "2: read the RO optional attribute default: CurrentPositionTiltPercent100ths"); + case 10: { + LogStep(10, "2d: read the RO optional attribute default: CurrentPositionTiltPercent100ths"); + VerifyOrDo(!ShouldSkip("A_CURRENTPOSITIONTILTPERCENT100THS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "2: read the RO optional attribute default: InstalledOpenLimitLift"); + case 11: { + LogStep(11, "2e: read the RO optional attribute default: InstalledOpenLimitLift"); + VerifyOrDo(!ShouldSkip("A_INSTALLEDOPENLIMITLIFT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::InstalledOpenLimitLift::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "2: read the RO optional attribute default: InstalledClosedLimitLift"); + case 12: { + LogStep(12, "2f: read the RO optional attribute default: InstalledClosedLimitLift"); + VerifyOrDo(!ShouldSkip("A_INSTALLEDCLOSEDLIMITLIFT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::InstalledClosedLimitLift::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "2: read the RO optional attribute default: InstalledOpenLimitTilt"); + case 13: { + LogStep(13, "2g: read the RO optional attribute default: InstalledOpenLimitTilt"); + VerifyOrDo(!ShouldSkip("A_INSTALLEDOPENLIMITTILT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::InstalledOpenLimitTilt::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "2: read the RO optional attribute default: InstalledClosedLimitTilt"); + case 14: { + LogStep(14, "2h: read the RO optional attribute default: InstalledClosedLimitTilt"); + VerifyOrDo(!ShouldSkip("A_INSTALLEDCLOSEDLIMITTILT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::InstalledClosedLimitTilt::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "4: read the RO mandatory attribute default: SafetyStatus"); + case 15: { + LogStep(15, "3a: read the RO mandatory attribute default: SafetyStatus"); + VerifyOrDo(!ShouldSkip("A_SAFETYSTATUS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "4: read the RO optional attribute default: CurrentPositionLift"); + case 16: { + LogStep(16, "3a.2: write a value into the RO mandatory attribute: SafetyStatus"); + VerifyOrDo(!ShouldSkip("A_SAFETYSTATUS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint16_t value; + value = 4096U; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id, + value, chip::NullOptional, chip::NullOptional); + } + case 17: { + LogStep(17, "3a.3: reads back the RO mandatory attribute: SafetyStatus"); + VerifyOrDo(!ShouldSkip("A_SAFETYSTATUS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::SafetyStatus::Id, + true, chip::NullOptional); + } + case 18: { + LogStep(18, "3b: read the RO optional attribute default: PhysicalClosedLimitLift"); + VerifyOrDo(!ShouldSkip("A_PHYSICALCLOSEDLIMITLIFT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::PhysicalClosedLimitLift::Id, true, chip::NullOptional); + } + case 19: { + LogStep(19, "3c: read the RO optional attribute default: PhysicalClosedLimitTilt"); + VerifyOrDo(!ShouldSkip("A_PHYSICALCLOSEDLIMITTILT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::PhysicalClosedLimitTilt::Id, true, chip::NullOptional); + } + case 20: { + LogStep(20, "3d: read the RO optional attribute default: CurrentPositionLift"); + VerifyOrDo(!ShouldSkip("A_CURRENTPOSITIONLIFT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLift::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "4: read the RO optional attribute default: CurrentPositionTilt"); + case 21: { + LogStep(21, "3e: read the RO optional attribute default: CurrentPositionTilt"); + VerifyOrDo(!ShouldSkip("A_CURRENTPOSITIONTILT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTilt::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "4: read the RO optional attribute default: CurrentPositionLiftPercentage"); + case 22: { + LogStep(22, "3f: read the RO optional attribute default: NumberOfActuationsLift"); + VerifyOrDo(!ShouldSkip("A_NUMBEROFACTUATIONSLIFT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::NumberOfActuationsLift::Id, true, chip::NullOptional); + } + case 23: { + LogStep(23, "3g: read the RO optional attribute default: NumberOfActuationsTilt"); + VerifyOrDo(!ShouldSkip("A_NUMBEROFACTUATIONSTILT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::NumberOfActuationsTilt::Id, true, chip::NullOptional); + } + case 24: { + LogStep(24, "3h: read the RO optional attribute default: CurrentPositionLiftPercentage"); + VerifyOrDo(!ShouldSkip("A_CURRENTPOSITIONLIFTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "4: read the RO optional attribute default: CurrentPositionTiltPercentage"); + case 25: { + LogStep(25, "3i:read the RO optional attribute default: CurrentPositionTiltPercentage"); + VerifyOrDo(!ShouldSkip("A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } @@ -38972,7 +39093,6 @@ class Test_TC_WNCV_4_4Suite : public TestCommand chip::Optional mTimeout; chip::app::DataModel::Nullable attrCurrentPositionTiltPercent100ths; - chip::app::DataModel::Nullable attrCurrentPositionTiltPercentage; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -39005,9 +39125,11 @@ class Test_TC_WNCV_4_4Suite : public TestCommand { chip::app::DataModel::Nullable value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueNonNull("currentPositionTiltPercentage", value)); + VerifyOrReturn(CheckValue("currentPositionTiltPercentage.Value()", value.Value(), + static_cast(attrCurrentPositionTiltPercent100ths.Value() / 100))); VerifyOrReturn(CheckConstraintMinValue("value", value, 0)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 100)); - attrCurrentPositionTiltPercentage = value; } break; case 3: @@ -39048,8 +39170,10 @@ class Test_TC_WNCV_4_4Suite : public TestCommand WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } case 2: { - LogStep(2, "1b: If (PA_TL & TL) TH reads CurrentPositionTiltPercentage from DUT"); - VerifyOrDo(!ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE"), + LogStep(2, + "1b 1c: If (PA_LF & LF) TH reads CurrentPositionTiltPercentage from DUT + assert " + "CurrentPositionTiltPercent100ths/100 equals CurrentPositionTiltPercentage"); + VerifyOrDo(!ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONTILTPERCENTAGE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); 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 212c0a5571ef9d..5d82ddb6c46e18 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -57659,84 +57659,214 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : 2: read the RO mandatory attribute default: Type\n"); - err = Test2ReadTheRoMandatoryAttributeDefaultType_1(); + ChipLogProgress(chipTool, " ***** Test Step 1 : 1a: read the RO mandatory attribute default: Type\n"); + if (ShouldSkip("A_TYPE")) { + NextTest(); + return; + } + err = Test1aReadTheRoMandatoryAttributeDefaultType_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : 2: read the RO mandatory attribute default: ConfigStatus\n"); - err = Test2ReadTheRoMandatoryAttributeDefaultConfigStatus_2(); + ChipLogProgress(chipTool, " ***** Test Step 2 : 1b: read the RO mandatory attribute default: ConfigStatus\n"); + if (ShouldSkip("A_CONFIGSTATUS")) { + NextTest(); + return; + } + err = Test1bReadTheRoMandatoryAttributeDefaultConfigStatus_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : 2: read the RO mandatory attribute default: OperationalStatus\n"); - err = Test2ReadTheRoMandatoryAttributeDefaultOperationalStatus_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : 1c: read the RO mandatory attribute default: OperationalStatus\n"); + if (ShouldSkip("A_OPERATIONALSTATUS")) { + NextTest(); + return; + } + err = Test1cReadTheRoMandatoryAttributeDefaultOperationalStatus_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : 2: read the RO mandatory attribute default: EndProductType\n"); - err = Test2ReadTheRoMandatoryAttributeDefaultEndProductType_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : 1d: read the RO mandatory attribute default: EndProductType\n"); + if (ShouldSkip("A_ENDPRODUCTTYPE")) { + NextTest(); + return; + } + err = Test1dReadTheRoMandatoryAttributeDefaultEndProductType_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : 2: read the RW mandatory attribute default: Mode\n"); - err = Test2ReadTheRwMandatoryAttributeDefaultMode_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : 1e: read the RW mandatory attribute default: Mode\n"); + if (ShouldSkip("A_MODE")) { + NextTest(); + return; + } + err = Test1eReadTheRwMandatoryAttributeDefaultMode_5(); break; case 6: - ChipLogProgress( - chipTool, " ***** Test Step 6 : 2: read the RO optional attribute default: TargetPositionLiftPercent100ths\n"); - err = Test2ReadTheRoOptionalAttributeDefaultTargetPositionLiftPercent100ths_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : 1f: write a value into the RW mandatory attribute:: Mode\n"); + if (ShouldSkip("A_MODE")) { + NextTest(); + return; + } + err = Test1fWriteAValueIntoTheRwMandatoryAttributeMode_6(); break; case 7: ChipLogProgress( - chipTool, " ***** Test Step 7 : 2: read the RO optional attribute default: TargetPositionTiltPercent100ths\n"); - err = Test2ReadTheRoOptionalAttributeDefaultTargetPositionTiltPercent100ths_7(); + chipTool, " ***** Test Step 7 : 2a: read the RO optional attribute default: TargetPositionLiftPercent100ths\n"); + if (ShouldSkip("A_TARGETPOSITIONLIFTPERCENT100THS")) { + NextTest(); + return; + } + err = Test2aReadTheRoOptionalAttributeDefaultTargetPositionLiftPercent100ths_7(); break; case 8: ChipLogProgress( - chipTool, " ***** Test Step 8 : 2: read the RO optional attribute default: CurrentPositionLiftPercent100ths\n"); - err = Test2ReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercent100ths_8(); + chipTool, " ***** Test Step 8 : 2b: read the RO optional attribute default: TargetPositionTiltPercent100ths\n"); + if (ShouldSkip("A_TARGETPOSITIONTILTPERCENT100THS")) { + NextTest(); + return; + } + err = Test2bReadTheRoOptionalAttributeDefaultTargetPositionTiltPercent100ths_8(); break; case 9: ChipLogProgress( - chipTool, " ***** Test Step 9 : 2: read the RO optional attribute default: CurrentPositionTiltPercent100ths\n"); - err = Test2ReadTheRoOptionalAttributeDefaultCurrentPositionTiltPercent100ths_9(); + chipTool, " ***** Test Step 9 : 2c: read the RO optional attribute default: CurrentPositionLiftPercent100ths\n"); + if (ShouldSkip("A_CURRENTPOSITIONLIFTPERCENT100THS")) { + NextTest(); + return; + } + err = Test2cReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercent100ths_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : 2: read the RO optional attribute default: InstalledOpenLimitLift\n"); - err = Test2ReadTheRoOptionalAttributeDefaultInstalledOpenLimitLift_10(); + ChipLogProgress( + chipTool, " ***** Test Step 10 : 2d: read the RO optional attribute default: CurrentPositionTiltPercent100ths\n"); + if (ShouldSkip("A_CURRENTPOSITIONTILTPERCENT100THS")) { + NextTest(); + return; + } + err = Test2dReadTheRoOptionalAttributeDefaultCurrentPositionTiltPercent100ths_10(); break; case 11: - ChipLogProgress( - chipTool, " ***** Test Step 11 : 2: read the RO optional attribute default: InstalledClosedLimitLift\n"); - err = Test2ReadTheRoOptionalAttributeDefaultInstalledClosedLimitLift_11(); + ChipLogProgress(chipTool, " ***** Test Step 11 : 2e: read the RO optional attribute default: InstalledOpenLimitLift\n"); + if (ShouldSkip("A_INSTALLEDOPENLIMITLIFT")) { + NextTest(); + return; + } + err = Test2eReadTheRoOptionalAttributeDefaultInstalledOpenLimitLift_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : 2: read the RO optional attribute default: InstalledOpenLimitTilt\n"); - err = Test2ReadTheRoOptionalAttributeDefaultInstalledOpenLimitTilt_12(); + ChipLogProgress( + chipTool, " ***** Test Step 12 : 2f: read the RO optional attribute default: InstalledClosedLimitLift\n"); + if (ShouldSkip("A_INSTALLEDCLOSEDLIMITLIFT")) { + NextTest(); + return; + } + err = Test2fReadTheRoOptionalAttributeDefaultInstalledClosedLimitLift_12(); break; case 13: - ChipLogProgress( - chipTool, " ***** Test Step 13 : 2: read the RO optional attribute default: InstalledClosedLimitTilt\n"); - err = Test2ReadTheRoOptionalAttributeDefaultInstalledClosedLimitTilt_13(); + ChipLogProgress(chipTool, " ***** Test Step 13 : 2g: read the RO optional attribute default: InstalledOpenLimitTilt\n"); + if (ShouldSkip("A_INSTALLEDOPENLIMITTILT")) { + NextTest(); + return; + } + err = Test2gReadTheRoOptionalAttributeDefaultInstalledOpenLimitTilt_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : 4: read the RO mandatory attribute default: SafetyStatus\n"); - err = Test4ReadTheRoMandatoryAttributeDefaultSafetyStatus_14(); + ChipLogProgress( + chipTool, " ***** Test Step 14 : 2h: read the RO optional attribute default: InstalledClosedLimitTilt\n"); + if (ShouldSkip("A_INSTALLEDCLOSEDLIMITTILT")) { + NextTest(); + return; + } + err = Test2hReadTheRoOptionalAttributeDefaultInstalledClosedLimitTilt_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : 4: read the RO optional attribute default: CurrentPositionLift\n"); - err = Test4ReadTheRoOptionalAttributeDefaultCurrentPositionLift_15(); + ChipLogProgress(chipTool, " ***** Test Step 15 : 3a: read the RO mandatory attribute default: SafetyStatus\n"); + if (ShouldSkip("A_SAFETYSTATUS")) { + NextTest(); + return; + } + err = Test3aReadTheRoMandatoryAttributeDefaultSafetyStatus_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : 4: read the RO optional attribute default: CurrentPositionTilt\n"); - err = Test4ReadTheRoOptionalAttributeDefaultCurrentPositionTilt_16(); + ChipLogProgress(chipTool, " ***** Test Step 16 : 3a.2: write a value into the RO mandatory attribute: SafetyStatus\n"); + if (ShouldSkip("A_SAFETYSTATUS")) { + NextTest(); + return; + } + err = Test3a2WriteAValueIntoTheRoMandatoryAttributeSafetyStatus_16(); break; case 17: - ChipLogProgress( - chipTool, " ***** Test Step 17 : 4: read the RO optional attribute default: CurrentPositionLiftPercentage\n"); - err = Test4ReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercentage_17(); + ChipLogProgress(chipTool, " ***** Test Step 17 : 3a.3: reads back the RO mandatory attribute: SafetyStatus\n"); + if (ShouldSkip("A_SAFETYSTATUS")) { + NextTest(); + return; + } + err = Test3a3ReadsBackTheRoMandatoryAttributeSafetyStatus_17(); break; case 18: ChipLogProgress( - chipTool, " ***** Test Step 18 : 4: read the RO optional attribute default: CurrentPositionTiltPercentage\n"); - err = Test4ReadTheRoOptionalAttributeDefaultCurrentPositionTiltPercentage_18(); + chipTool, " ***** Test Step 18 : 3b: read the RO optional attribute default: PhysicalClosedLimitLift\n"); + if (ShouldSkip("A_PHYSICALCLOSEDLIMITLIFT")) { + NextTest(); + return; + } + err = Test3bReadTheRoOptionalAttributeDefaultPhysicalClosedLimitLift_18(); + break; + case 19: + ChipLogProgress( + chipTool, " ***** Test Step 19 : 3c: read the RO optional attribute default: PhysicalClosedLimitTilt\n"); + if (ShouldSkip("A_PHYSICALCLOSEDLIMITTILT")) { + NextTest(); + return; + } + err = Test3cReadTheRoOptionalAttributeDefaultPhysicalClosedLimitTilt_19(); + break; + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : 3d: read the RO optional attribute default: CurrentPositionLift\n"); + if (ShouldSkip("A_CURRENTPOSITIONLIFT")) { + NextTest(); + return; + } + err = Test3dReadTheRoOptionalAttributeDefaultCurrentPositionLift_20(); + break; + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : 3e: read the RO optional attribute default: CurrentPositionTilt\n"); + if (ShouldSkip("A_CURRENTPOSITIONTILT")) { + NextTest(); + return; + } + err = Test3eReadTheRoOptionalAttributeDefaultCurrentPositionTilt_21(); + break; + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : 3f: read the RO optional attribute default: NumberOfActuationsLift\n"); + if (ShouldSkip("A_NUMBEROFACTUATIONSLIFT")) { + NextTest(); + return; + } + err = Test3fReadTheRoOptionalAttributeDefaultNumberOfActuationsLift_22(); + break; + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : 3g: read the RO optional attribute default: NumberOfActuationsTilt\n"); + if (ShouldSkip("A_NUMBEROFACTUATIONSTILT")) { + NextTest(); + return; + } + err = Test3gReadTheRoOptionalAttributeDefaultNumberOfActuationsTilt_23(); + break; + case 24: + ChipLogProgress( + chipTool, " ***** Test Step 24 : 3h: read the RO optional attribute default: CurrentPositionLiftPercentage\n"); + if (ShouldSkip("A_CURRENTPOSITIONLIFTPERCENTAGE")) { + NextTest(); + return; + } + err = Test3hReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercentage_24(); + break; + case 25: + ChipLogProgress( + chipTool, " ***** Test Step 25 : 3i:read the RO optional attribute default: CurrentPositionTiltPercentage\n"); + if (ShouldSkip("A_CURRENTPOSITIONTILTPERCENTAGE")) { + NextTest(); + return; + } + err = Test3ireadTheRoOptionalAttributeDefaultCurrentPositionTiltPercentage_25(); break; } @@ -57798,7 +57928,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -57806,6 +57936,27 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -57819,7 +57970,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 19; + const uint16_t mTestCount = 26; chip::Optional mNodeId; chip::Optional mCluster; @@ -57833,14 +57984,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return WaitForCommissionee("alpha", value); } - CHIP_ERROR Test2ReadTheRoMandatoryAttributeDefaultType_1() + CHIP_ERROR Test1aReadTheRoMandatoryAttributeDefaultType_1() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeTypeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO mandatory attribute default: Type Error: %@", err); + NSLog(@"1a: read the RO mandatory attribute default: Type Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -57858,14 +58009,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoMandatoryAttributeDefaultConfigStatus_2() + CHIP_ERROR Test1bReadTheRoMandatoryAttributeDefaultConfigStatus_2() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeConfigStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO mandatory attribute default: ConfigStatus Error: %@", err); + NSLog(@"1b: read the RO mandatory attribute default: ConfigStatus Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -57883,14 +58034,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoMandatoryAttributeDefaultOperationalStatus_3() + CHIP_ERROR Test1cReadTheRoMandatoryAttributeDefaultOperationalStatus_3() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO mandatory attribute default: OperationalStatus Error: %@", err); + NSLog(@"1c: read the RO mandatory attribute default: OperationalStatus Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -57908,14 +58059,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoMandatoryAttributeDefaultEndProductType_4() + CHIP_ERROR Test1dReadTheRoMandatoryAttributeDefaultEndProductType_4() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEndProductTypeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO mandatory attribute default: EndProductType Error: %@", err); + NSLog(@"1d: read the RO mandatory attribute default: EndProductType Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -57933,14 +58084,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRwMandatoryAttributeDefaultMode_5() + CHIP_ERROR Test1eReadTheRwMandatoryAttributeDefaultMode_5() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RW mandatory attribute default: Mode Error: %@", err); + NSLog(@"1e: read the RW mandatory attribute default: Mode Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -57958,7 +58109,27 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultTargetPositionLiftPercent100ths_6() + CHIP_ERROR Test1fWriteAValueIntoTheRwMandatoryAttributeMode_6() + { + CHIPDevice * device = GetDevice("alpha"); + CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id modeArgument; + modeArgument = [NSNumber numberWithUnsignedChar:0]; + [cluster writeAttributeModeWithValue:modeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"1f: write a value into the RW mandatory attribute:: Mode Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test2aReadTheRoOptionalAttributeDefaultTargetPositionLiftPercent100ths_7() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -57966,7 +58137,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { [cluster readAttributeTargetPositionLiftPercent100thsWithCompletionHandler:^( NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: TargetPositionLiftPercent100ths Error: %@", err); + NSLog(@"2a: read the RO optional attribute default: TargetPositionLiftPercent100ths Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -57986,7 +58157,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultTargetPositionTiltPercent100ths_7() + CHIP_ERROR Test2bReadTheRoOptionalAttributeDefaultTargetPositionTiltPercent100ths_8() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -57994,7 +58165,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { [cluster readAttributeTargetPositionTiltPercent100thsWithCompletionHandler:^( NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: TargetPositionTiltPercent100ths Error: %@", err); + NSLog(@"2b: read the RO optional attribute default: TargetPositionTiltPercent100ths Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58014,7 +58185,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercent100ths_8() + CHIP_ERROR Test2cReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercent100ths_9() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -58022,7 +58193,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { [cluster readAttributeCurrentPositionLiftPercent100thsWithCompletionHandler:^( NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: CurrentPositionLiftPercent100ths Error: %@", err); + NSLog(@"2c: read the RO optional attribute default: CurrentPositionLiftPercent100ths Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58042,7 +58213,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultCurrentPositionTiltPercent100ths_9() + CHIP_ERROR Test2dReadTheRoOptionalAttributeDefaultCurrentPositionTiltPercent100ths_10() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -58050,7 +58221,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { [cluster readAttributeCurrentPositionTiltPercent100thsWithCompletionHandler:^( NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: CurrentPositionTiltPercent100ths Error: %@", err); + NSLog(@"2d: read the RO optional attribute default: CurrentPositionTiltPercent100ths Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58070,14 +58241,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultInstalledOpenLimitLift_10() + CHIP_ERROR Test2eReadTheRoOptionalAttributeDefaultInstalledOpenLimitLift_11() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeInstalledOpenLimitLiftWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: InstalledOpenLimitLift Error: %@", err); + NSLog(@"2e: read the RO optional attribute default: InstalledOpenLimitLift Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58095,14 +58266,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultInstalledClosedLimitLift_11() + CHIP_ERROR Test2fReadTheRoOptionalAttributeDefaultInstalledClosedLimitLift_12() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeInstalledClosedLimitLiftWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: InstalledClosedLimitLift Error: %@", err); + NSLog(@"2f: read the RO optional attribute default: InstalledClosedLimitLift Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58120,14 +58291,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultInstalledOpenLimitTilt_12() + CHIP_ERROR Test2gReadTheRoOptionalAttributeDefaultInstalledOpenLimitTilt_13() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeInstalledOpenLimitTiltWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: InstalledOpenLimitTilt Error: %@", err); + NSLog(@"2g: read the RO optional attribute default: InstalledOpenLimitTilt Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58145,14 +58316,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2ReadTheRoOptionalAttributeDefaultInstalledClosedLimitTilt_13() + CHIP_ERROR Test2hReadTheRoOptionalAttributeDefaultInstalledClosedLimitTilt_14() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeInstalledClosedLimitTiltWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2: read the RO optional attribute default: InstalledClosedLimitTilt Error: %@", err); + NSLog(@"2h: read the RO optional attribute default: InstalledClosedLimitTilt Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58170,14 +58341,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4ReadTheRoMandatoryAttributeDefaultSafetyStatus_14() + CHIP_ERROR Test3aReadTheRoMandatoryAttributeDefaultSafetyStatus_15() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeSafetyStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"4: read the RO mandatory attribute default: SafetyStatus Error: %@", err); + NSLog(@"3a: read the RO mandatory attribute default: SafetyStatus Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58195,14 +58366,105 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4ReadTheRoOptionalAttributeDefaultCurrentPositionLift_15() + CHIP_ERROR Test3a2WriteAValueIntoTheRoMandatoryAttributeSafetyStatus_16() + { + CHIPDevice * device = GetDevice("alpha"); + CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id safetyStatusArgument; + safetyStatusArgument = [NSNumber numberWithUnsignedShort:4096U]; + [cluster writeAttributeSafetyStatusWithValue:safetyStatusArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"3a.2: write a value into the RO mandatory attribute: SafetyStatus Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3a3ReadsBackTheRoMandatoryAttributeSafetyStatus_17() + { + CHIPDevice * device = GetDevice("alpha"); + CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeSafetyStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a.3: reads back the RO mandatory attribute: SafetyStatus Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("safetyStatus", "", "map16")); + if (value != nil) { + VerifyOrReturn(CheckConstraintNotValue("safetyStatus", value, 4096U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3bReadTheRoOptionalAttributeDefaultPhysicalClosedLimitLift_18() + { + CHIPDevice * device = GetDevice("alpha"); + CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributePhysicalClosedLimitLiftWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3b: read the RO optional attribute default: PhysicalClosedLimitLift Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("physicalClosedLimitLift", "", "uint16")); + if (value != nil) { + VerifyOrReturn(CheckConstraintMinValue("physicalClosedLimitLift", [value unsignedShortValue], 0U)); + } + if (value != nil) { + VerifyOrReturn(CheckConstraintMaxValue("physicalClosedLimitLift", [value unsignedShortValue], 65535U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3cReadTheRoOptionalAttributeDefaultPhysicalClosedLimitTilt_19() + { + CHIPDevice * device = GetDevice("alpha"); + CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributePhysicalClosedLimitTiltWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3c: read the RO optional attribute default: PhysicalClosedLimitTilt Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("physicalClosedLimitTilt", "", "uint16")); + if (value != nil) { + VerifyOrReturn(CheckConstraintMinValue("physicalClosedLimitTilt", [value unsignedShortValue], 0U)); + } + if (value != nil) { + VerifyOrReturn(CheckConstraintMaxValue("physicalClosedLimitTilt", [value unsignedShortValue], 65535U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3dReadTheRoOptionalAttributeDefaultCurrentPositionLift_20() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentPositionLiftWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"4: read the RO optional attribute default: CurrentPositionLift Error: %@", err); + NSLog(@"3d: read the RO optional attribute default: CurrentPositionLift Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58220,14 +58482,14 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4ReadTheRoOptionalAttributeDefaultCurrentPositionTilt_16() + CHIP_ERROR Test3eReadTheRoOptionalAttributeDefaultCurrentPositionTilt_21() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeCurrentPositionTiltWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"4: read the RO optional attribute default: CurrentPositionTilt Error: %@", err); + NSLog(@"3e: read the RO optional attribute default: CurrentPositionTilt Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58245,7 +58507,57 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4ReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercentage_17() + CHIP_ERROR Test3fReadTheRoOptionalAttributeDefaultNumberOfActuationsLift_22() + { + CHIPDevice * device = GetDevice("alpha"); + CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeNumberOfActuationsLiftWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3f: read the RO optional attribute default: NumberOfActuationsLift Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("numberOfActuationsLift", "", "uint16")); + if (value != nil) { + VerifyOrReturn(CheckConstraintMinValue("numberOfActuationsLift", [value unsignedShortValue], 0U)); + } + if (value != nil) { + VerifyOrReturn(CheckConstraintMaxValue("numberOfActuationsLift", [value unsignedShortValue], 65535U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3gReadTheRoOptionalAttributeDefaultNumberOfActuationsTilt_23() + { + CHIPDevice * device = GetDevice("alpha"); + CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeNumberOfActuationsTiltWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3g: read the RO optional attribute default: NumberOfActuationsTilt Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("numberOfActuationsTilt", "", "uint16")); + if (value != nil) { + VerifyOrReturn(CheckConstraintMinValue("numberOfActuationsTilt", [value unsignedShortValue], 0U)); + } + if (value != nil) { + VerifyOrReturn(CheckConstraintMaxValue("numberOfActuationsTilt", [value unsignedShortValue], 65535U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3hReadTheRoOptionalAttributeDefaultCurrentPositionLiftPercentage_24() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -58253,7 +58565,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { [cluster readAttributeCurrentPositionLiftPercentageWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"4: read the RO optional attribute default: CurrentPositionLiftPercentage Error: %@", err); + NSLog(@"3h: read the RO optional attribute default: CurrentPositionLiftPercentage Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -58273,7 +58585,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4ReadTheRoOptionalAttributeDefaultCurrentPositionTiltPercentage_18() + CHIP_ERROR Test3ireadTheRoOptionalAttributeDefaultCurrentPositionTiltPercentage_25() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -58281,7 +58593,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { [cluster readAttributeCurrentPositionTiltPercentageWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"4: read the RO optional attribute default: CurrentPositionTiltPercentage Error: %@", err); + NSLog(@"3i:read the RO optional attribute default: CurrentPositionTiltPercentage Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -63649,12 +63961,14 @@ class Test_TC_WNCV_4_4 : public TestCommandBridge { err = Test1aIfPaTlTlThReadsCurrentPositionTiltPercent100thsFromDut_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : 1b: If (PA_TL & TL) TH reads CurrentPositionTiltPercentage from DUT\n"); - if (ShouldSkip("WNCV_TL && WNCV_PA_TL && A_CURRENTPOSITIONTILTPERCENTAGE")) { + ChipLogProgress(chipTool, + " ***** Test Step 2 : 1b 1c: If (PA_LF & LF) TH reads CurrentPositionTiltPercentage from DUT + assert " + "CurrentPositionTiltPercent100ths/100 equals CurrentPositionTiltPercentage\n"); + if (ShouldSkip("WNCV_LF && WNCV_PA_LF && A_CURRENTPOSITIONTILTPERCENTAGE")) { NextTest(); return; } - err = Test1bIfPaTlTlThReadsCurrentPositionTiltPercentageFromDut_2(); + err = Test1b1cIfPaLfLfThReadsCurrentPositionTiltPercentageFromDutAssertCurrentPositionTiltPercent100ths100EqualsCurrentPositionTiltPercentage_2(); break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : 2b: TH sends GoToTiltPercentage command with BadParam to DUT\n"); @@ -63766,9 +64080,9 @@ class Test_TC_WNCV_4_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - NSNumber * _Nullable attrCurrentPositionTiltPercentage; - CHIP_ERROR Test1bIfPaTlTlThReadsCurrentPositionTiltPercentageFromDut_2() + CHIP_ERROR + Test1b1cIfPaLfLfThReadsCurrentPositionTiltPercentageFromDutAssertCurrentPositionTiltPercent100ths100EqualsCurrentPositionTiltPercentage_2() { CHIPDevice * device = GetDevice("alpha"); CHIPTestWindowCovering * cluster = [[CHIPTestWindowCovering alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -63776,10 +64090,19 @@ class Test_TC_WNCV_4_4 : public TestCommandBridge { [cluster readAttributeCurrentPositionTiltPercentageWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"1b: If (PA_TL & TL) TH reads CurrentPositionTiltPercentage from DUT Error: %@", err); + NSLog(@"1b 1c: If (PA_LF & LF) TH reads CurrentPositionTiltPercentage from DUT + assert " + @"CurrentPositionTiltPercent100ths/100 equals CurrentPositionTiltPercentage Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValueNonNull("CurrentPositionTiltPercentage", actualValue)); + VerifyOrReturn(CheckValue("CurrentPositionTiltPercentage", actualValue, + [attrCurrentPositionTiltPercent100ths unsignedShortValue] / 100)); + } + if (value != nil) { VerifyOrReturn( CheckConstraintMinValue("currentPositionTiltPercentage", [value unsignedCharValue], 0)); @@ -63788,9 +64111,6 @@ class Test_TC_WNCV_4_4 : public TestCommandBridge { VerifyOrReturn( CheckConstraintMaxValue("currentPositionTiltPercentage", [value unsignedCharValue], 100)); } - { - attrCurrentPositionTiltPercentage = value; - } NextTest(); }]; diff --git a/zzz_generated/window-app/zap-generated/endpoint_config.h b/zzz_generated/window-app/zap-generated/endpoint_config.h index 1acf16c0d077f9..f2d67941c2300c 100644 --- a/zzz_generated/window-app/zap-generated/endpoint_config.h +++ b/zzz_generated/window-app/zap-generated/endpoint_config.h @@ -93,7 +93,7 @@ #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask // This is an array of EmberAfAttributeMetadata structures. -#define GENERATED_ATTRIBUTE_COUNT 274 +#define GENERATED_ATTRIBUTE_COUNT 282 #define GENERATED_ATTRIBUTES \ { \ \ @@ -465,11 +465,17 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Window Covering (server) */ \ - { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* Type */ \ + { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* Type */ \ + { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFFFF) }, /* PhysicalClosedLimitLift */ \ + { 0x00000002, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFFFF) }, /* PhysicalClosedLimitTilt */ \ { 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* CurrentPositionLift */ \ { 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* CurrentPositionTilt */ \ + { 0x00000005, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ + ZAP_SIMPLE_DEFAULT(0x0000) }, /* NumberOfActuationsLift */ \ + { 0x00000006, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ + ZAP_SIMPLE_DEFAULT(0x0000) }, /* NumberOfActuationsTilt */ \ { 0x00000007, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x03) }, /* ConfigStatus */ \ { 0x00000008, ZAP_TYPE(PERCENT), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* CurrentPositionLiftPercentage */ \ @@ -514,11 +520,17 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */ \ \ /* Endpoint: 2, Cluster: Window Covering (server) */ \ - { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* Type */ \ + { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* Type */ \ + { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFFFF) }, /* PhysicalClosedLimitLift */ \ + { 0x00000002, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFFFF) }, /* PhysicalClosedLimitTilt */ \ { 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* CurrentPositionLift */ \ { 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* CurrentPositionTilt */ \ + { 0x00000005, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ + ZAP_SIMPLE_DEFAULT(0x0000) }, /* NumberOfActuationsLift */ \ + { 0x00000006, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(TOKENIZE), \ + ZAP_SIMPLE_DEFAULT(0x0000) }, /* NumberOfActuationsTilt */ \ { 0x00000007, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x03) }, /* ConfigStatus */ \ { 0x00000008, ZAP_TYPE(PERCENT), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* CurrentPositionLiftPercentage */ \ @@ -1003,8 +1015,8 @@ /* Endpoint: 1, Cluster: Window Covering (server) */ \ .clusterId = 0x00000102, \ .attributes = ZAP_ATTRIBUTE_INDEX(225), \ - .attributeCount = 20, \ - .clusterSize = 35, \ + .attributeCount = 24, \ + .clusterSize = 43, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \ .functions = chipFuncArrayWindowCoveringServer, \ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 70 ) ,\ @@ -1013,7 +1025,7 @@ { \ /* Endpoint: 2, Cluster: Groups (server) */ \ .clusterId = 0x00000004, \ - .attributes = ZAP_ATTRIBUTE_INDEX(245), \ + .attributes = ZAP_ATTRIBUTE_INDEX(249), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1024,7 +1036,7 @@ { \ /* Endpoint: 2, Cluster: Scenes (client) */ \ .clusterId = 0x00000005, \ - .attributes = ZAP_ATTRIBUTE_INDEX(248), \ + .attributes = ZAP_ATTRIBUTE_INDEX(252), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1035,7 +1047,7 @@ { \ /* Endpoint: 2, Cluster: Descriptor (server) */ \ .clusterId = 0x0000001D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(248), \ + .attributes = ZAP_ATTRIBUTE_INDEX(252), \ .attributeCount = 6, \ .clusterSize = 4, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1046,9 +1058,9 @@ { \ /* Endpoint: 2, Cluster: Window Covering (server) */ \ .clusterId = 0x00000102, \ - .attributes = ZAP_ATTRIBUTE_INDEX(254), \ - .attributeCount = 20, \ - .clusterSize = 35, \ + .attributes = ZAP_ATTRIBUTE_INDEX(258), \ + .attributeCount = 24, \ + .clusterSize = 43, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \ .functions = chipFuncArrayWindowCoveringServer, \ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 90 ) ,\ @@ -1065,7 +1077,7 @@ // This is an array of EmberAfEndpointType structures. #define GENERATED_ENDPOINT_TYPES \ { \ - { ZAP_CLUSTER_INDEX(0), 21, 318 }, { ZAP_CLUSTER_INDEX(21), 5, 55 }, { ZAP_CLUSTER_INDEX(26), 4, 46 }, \ + { ZAP_CLUSTER_INDEX(0), 21, 318 }, { ZAP_CLUSTER_INDEX(21), 5, 63 }, { ZAP_CLUSTER_INDEX(26), 4, 54 }, \ } // Largest attribute size is needed for various buffers @@ -1077,7 +1089,7 @@ static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, #define ATTRIBUTE_SINGLETONS_SIZE (41) // Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE (419) +#define ATTRIBUTE_MAX_SIZE (435) // Number of fixed endpoints #define FIXED_ENDPOINT_COUNT (3)