| # Copyright (c) 2021 Project CHIP Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| name: |
| Window Covering [TC-WNCV-3.3] StopMotion command & OperationalStatus |
| attribute Verification [DUT_Server] |
| |
| PICS: |
| - WNCV.S |
| |
| # TC-WNCV tests featuremap conditional dependencies -> use PICS |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Window Covering" |
| endpoint: 1 |
| |
| tests: |
| - label: "0: Wait for the commissioned device to be retrieved" |
| cluster: "DelayCommands" |
| command: "WaitForCommissionee" |
| arguments: |
| values: |
| - name: "nodeId" |
| value: nodeId |
| |
| ################ Position Init Phase ############# |
| ### Step 1x -> Initialize the Covering position before any testing |
| ### MANDATORY Init Commands |
| - label: |
| "1a: TH sends DownOrClose command to preposition the DUT in the |
| opposite direction" |
| command: "DownOrClose" |
| PICS: WNCV.S.C01.Rsp |
| |
| - label: "1b: TH Waits for 6-8 seconds movement(s) on the device" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 6000 |
| |
| - label: |
| "1c: TH sends UpOrOpen command to preposition the DUT in the opposite |
| direction" |
| command: "UpOrOpen" |
| PICS: WNCV.S.C00.Rsp |
| |
| - label: "1d: TH Waits for 2 seconds movement(s) on the device" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 2000 |
| |
| - label: "1e: TH reads OperationalStatus attribute from DUT" |
| command: "readAttribute" |
| attribute: "OperationalStatus" |
| PICS: WNCV.S.A000a |
| response: |
| constraints: |
| notValue: 0 |
| |
| - label: "1d: TH Waits for 2 seconds movement(s) on the device" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 2000 |
| |
| ######## StopMotion Command ####### |
| ### Step 2x -> Check StopMotion fast effects |
| ### Before subscribe to reports |
| - label: "2: Subscribe to DUT reports on OperationalStatus attribute" |
| command: "subscribeAttribute" |
| attribute: "OperationalStatus" |
| minInterval: 4 |
| maxInterval: 5 |
| response: |
| constraints: |
| type: bitmap8 |
| |
| ### MANDATORY Command |
| - label: "2a: TH sends a StopMotion command to DUT" |
| command: "StopMotion" |
| PICS: WNCV.S.C02.Rsp |
| |
| ### DUT Slow down and stop |
| - label: |
| "2b: TH waits for 3 seconds the end of inertial movement(s) on the |
| device" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 3000 |
| |
| ### Must Be ZERO |
| # The value of bit 0..1 must be 00b & if (LF) value of bit 2..3 must be 00b & if (TL) value of bit 4..5 must be 00b |
| - label: |
| "2c: TH reads OperationalStatus attribute from DUT after a StopMotion" |
| command: "readAttribute" |
| attribute: "OperationalStatus" |
| PICS: WNCV.S.A000a |
| response: |
| value: 0 |
| |
| ### DUT updates its attributes |
| - label: "2d: TH waits for 100ms - 3s attributes update on the device" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 2000 |
| |
| ### MANDATORY reads |
| - label: "2e: TH reads OperationalStatus attribute from DUT" |
| command: "readAttribute" |
| attribute: "OperationalStatus" |
| PICS: WNCV.S.A000a |
| response: |
| value: 0 |
| |
| ######## StopMotion w/ Lift ####### |
| ### Step 3x -> Verify StopMotion longer period effects on Lift |
| ### Mandatory/Optionality Depends on (PA & LF) for all 4x Steps |
| |
| ### Read Current Position -> Store this value for step 4c |
| - label: |
| "3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute |
| from DUT" |
| command: "readAttribute" |
| attribute: "CurrentPositionLiftPercent100ths" |
| PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e |
| response: |
| saveAs: attrCurrentPositionLift |
| constraints: |
| minValue: 0 |
| maxValue: 10000 |
| |
| ### Read Target Position -> Compare this value w/ Current |
| ### Shall be tested as equals CurrentPositionLiftPercent100ths |
| - label: |
| "3b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute |
| 3c: it Must be equal with CurrentPositionLiftPercent100ths from DUT" |
| command: "readAttribute" |
| attribute: "TargetPositionLiftPercent100ths" |
| PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && WNCV.S.A000e |
| response: |
| value: attrCurrentPositionLift |
| |
| ######## StopMotion w/ Tilt ####### |
| ### Step 4x -> Verify StopMotion longer period effects on Tilt |
| ### Mandatory/Optionality Depends on (PA & TL) for all 4x Steps |
| |
| ### Read Current Position -> Store this value for step 4c |
| - label: |
| "4a: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute |
| from DUT" |
| command: "readAttribute" |
| attribute: "CurrentPositionTiltPercent100ths" |
| PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f |
| response: |
| saveAs: attrCurrentPositionTilt |
| constraints: |
| minValue: 0 |
| maxValue: 10000 |
| |
| ### Read Target Position -> Compare this value w/ Current |
| ### Shall be tested as equals CurrentPositionTiltPercent100ths |
| - label: |
| "4b: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute |
| 4c: it Must be equal with CurrentPositionTiltPercent100ths from DUT" |
| command: "readAttribute" |
| attribute: "TargetPositionTiltPercent100ths" |
| PICS: |
| WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000c && WNCV.S.A000f && |
| PICS_SKIP_SAMPLE_APP |
| response: |
| value: attrCurrentPositionTilt |