| # 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 as Server] |
| |
| PICS: |
| - WNCV.S |
| |
| # TC-WNCV tests featuremap conditional dependencies -> use PICS |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Window Covering" |
| endpoint: 1 |
| |
| tests: |
| - label: "Step 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: |
| "Step 1a: TH sends DownOrClose command to preposition the DUT in the |
| opposite direction" |
| command: "DownOrClose" |
| PICS: WNCV.S.C01.Rsp |
| |
| - label: "Step 1b: TH waits for 6-8 seconds movement(s) on the DUT" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 6000 |
| |
| - label: |
| "Step 1c: TH sends UpOrOpen command to preposition the DUT in the |
| opposite direction" |
| command: "UpOrOpen" |
| PICS: WNCV.S.C00.Rsp |
| |
| - label: "Step 1d: TH waits for 1-5 seconds revert motion(s) on the DUT" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 2000 |
| |
| - label: "Step 1e: TH reads OperationalStatus attribute from DUT" |
| command: "readAttribute" |
| attribute: "OperationalStatus" |
| PICS: WNCV.S.A000a |
| response: |
| constraints: |
| notValue: 0 |
| |
| - label: "Step 1f: TH waits for 2 seconds" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 2000 |
| |
| ######## StopMotion Command ####### |
| ### Step 2x -> Check StopMotion fast effects |
| ### Before subscribe to reports |
| - label: "Step 2: Subscribe to DUT reports on OperationalStatus attribute" |
| command: "subscribeAttribute" |
| attribute: "OperationalStatus" |
| minInterval: 4 |
| maxInterval: 5 |
| response: |
| constraints: |
| type: bitmap8 |
| |
| ### MANDATORY Command |
| - label: "Step 2a: TH sends a StopMotion command to DUT" |
| command: "StopMotion" |
| PICS: WNCV.S.C02.Rsp |
| |
| ### DUT Slow down and stop |
| - label: "Step 2b: TH waits for 1-5 seconds end of motion(s) on the DUT" |
| 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: "Step 2c: TH reads OperationalStatus attribute from DUT" |
| command: "readAttribute" |
| attribute: "OperationalStatus" |
| PICS: WNCV.S.A000a |
| response: |
| value: 0 |
| |
| ### DUT updates its attributes |
| - label: "Step 2d: TH waits for 100ms - 3s attributes update on the device" |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 2000 |
| |
| ### MANDATORY reads |
| - label: "Step 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: |
| "Step 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: |
| "Step 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: |
| "Step 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: |
| "Step 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 |