Skip to content

Commit bbc773a

Browse files
Fixes the Service Area server's SkipArea handling (#35019)
* Updated the rvc-example PICS XML files. * update the handling of the SkipArea command to match the latest spec. * Updated the name of SkipCurrentArea to SkipArea in the Instance and Delegate classes. * Refactored SkipCurrentArea names to SkipArea in the RVC example app. * Restyled by clang-format --------- Co-authored-by: Restyled.io <commits@restyled.io>
1 parent 18fefb1 commit bbc773a

11 files changed

+399
-129
lines changed

examples/rvc-app/rvc-common/include/rvc-device.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class RvcDevice
6161
mOperationalStateDelegate.SetGoHomeCallback(&RvcDevice::HandleOpStateGoHomeCallback, this);
6262

6363
mServiceAreaDelegate.SetIsSetSelectedAreasAllowedCallback(&RvcDevice::SaIsSetSelectedAreasAllowed, this);
64-
mServiceAreaDelegate.SetHandleSkipCurrentAreaCallback(&RvcDevice::SaHandleSkipCurrentArea, this);
64+
mServiceAreaDelegate.SetHandleSkipAreaCallback(&RvcDevice::SaHandleSkipArea, this);
6565
mServiceAreaDelegate.SetIsSupportedAreasChangeAllowedCallback(&RvcDevice::SaIsSupportedAreasChangeAllowed, this);
6666
mServiceAreaDelegate.SetIsSupportedMapChangeAllowedCallback(&RvcDevice::SaIsSupportedMapChangeAllowed, this);
6767
}
@@ -104,7 +104,7 @@ class RvcDevice
104104

105105
bool SaIsSetSelectedAreasAllowed(MutableCharSpan & statusText);
106106

107-
bool SaHandleSkipCurrentArea(uint32_t skippedArea, MutableCharSpan & skipStatusText);
107+
bool SaHandleSkipArea(uint32_t skippedArea, MutableCharSpan & skipStatusText);
108108

109109
bool SaIsSupportedAreasChangeAllowed();
110110

examples/rvc-app/rvc-common/include/rvc-service-area-delegate.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ namespace Clusters {
3030
class RvcDevice;
3131

3232
typedef bool (RvcDevice::*IsSetSelectedAreasAllowedCallback)(MutableCharSpan & statusText);
33-
typedef bool (RvcDevice::*HandleSkipCurrentAreaCallback)(uint32_t skippedArea, MutableCharSpan & skipStatusText);
33+
typedef bool (RvcDevice::*HandleSkipAreaCallback)(uint32_t skippedArea, MutableCharSpan & skipStatusText);
3434
typedef bool (RvcDevice::*IsChangeAllowedSimpleCallback)();
3535

3636
namespace ServiceArea {
@@ -46,8 +46,8 @@ class RvcServiceAreaDelegate : public Delegate
4646

4747
RvcDevice * mIsSetSelectedAreasAllowedDeviceInstance;
4848
IsSetSelectedAreasAllowedCallback mIsSetSelectedAreasAllowedCallback;
49-
RvcDevice * mHandleSkipCurrentAreaDeviceInstance;
50-
HandleSkipCurrentAreaCallback mHandleSkipCurrentAreaCallback;
49+
RvcDevice * mHandleSkipAreaDeviceInstance;
50+
HandleSkipAreaCallback mHandleSkipAreaCallback;
5151
RvcDevice * mIsSupportedAreasChangeAllowedDeviceInstance;
5252
IsChangeAllowedSimpleCallback mIsSupportedAreasChangeAllowedCallback;
5353
RvcDevice * mIsSupportedMapChangeAllowedDeviceInstance;
@@ -82,7 +82,7 @@ class RvcServiceAreaDelegate : public Delegate
8282
bool IsValidSelectAreasSet(const ServiceArea::Commands::SelectAreas::DecodableType & req,
8383
ServiceArea::SelectAreasStatus & areaStatus, MutableCharSpan & statusText) override;
8484

85-
bool HandleSkipCurrentArea(uint32_t skippedArea, MutableCharSpan & skipStatusText) override;
85+
bool HandleSkipArea(uint32_t skippedArea, MutableCharSpan & skipStatusText) override;
8686

8787
//*************************************************************************
8888
// Supported Areas accessors
@@ -169,10 +169,10 @@ class RvcServiceAreaDelegate : public Delegate
169169
mIsSetSelectedAreasAllowedDeviceInstance = instance;
170170
}
171171

172-
void SetHandleSkipCurrentAreaCallback(HandleSkipCurrentAreaCallback callback, RvcDevice * instance)
172+
void SetHandleSkipAreaCallback(HandleSkipAreaCallback callback, RvcDevice * instance)
173173
{
174-
mHandleSkipCurrentAreaCallback = callback;
175-
mHandleSkipCurrentAreaDeviceInstance = instance;
174+
mHandleSkipAreaCallback = callback;
175+
mHandleSkipAreaDeviceInstance = instance;
176176
}
177177

178178
void SetIsSupportedAreasChangeAllowedCallback(IsChangeAllowedSimpleCallback callback, RvcDevice * instance)

examples/rvc-app/rvc-common/pics/RVC Clean Mode Cluster Test Plan.xml

+32-34
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
<?xml version="1.0" encoding="utf-8"?><!--
2-
Autogenerated xml file - Version No:V_21_TE2-FALL2023
3-
Generated date:2023-08-03 21:56:43
2+
Autogenerated xml file - Version No:V_32_1_4_TE2_FALL_2024
3+
Generated date:2024-08-09 05:01:19
44
Cluster Name -RVC Clean Mode Cluster Test Plan
55
XML PICS -Ref Document:
6-
version master a35005c,
6+
version master 8f9bd8c,
77
Draft
8-
2023-08-03 08:35:53 -0700
8+
2024-08-08 16:19:15 -0700
99
--><clusterPICS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Generic-PICS-XML-Schema.xsd">
10-
<!--General cluster information-->
10+
<!--General cluster information
11+
Notes:
12+
- PICS definition table contains PICS from other clusters that may be needed to run all the test cases.
13+
- To load these PICS, refer to the following clusters.
14+
PICS Cluster Name Reference
15+
RVCRUNM.S.A0000 RVC Run Mode Cluster Test Plan 103.2.2. [TC-RVCCLEANM-2.2] Change to Mode restrictions with DUT as Server - allclusters.html[pdf]
16+
RVCRUNM.S.A0001 RVC Run Mode Cluster Test Plan 103.2.2. [TC-RVCCLEANM-2.2] Change to Mode restrictions with DUT as Server - allclusters.html[pdf]
17+
-->
1118
<name>RVC Clean Mode Cluster Test Plan</name>
1219
<clusterId> </clusterId>
1320
<picsRoot> </picsRoot>
@@ -16,7 +23,7 @@ Draft
1623
<picsItem>
1724
<itemNumber>RVCCLEANM.S</itemNumber>
1825
<feature>Does the device implement the RVCCLEANM cluster as a server?</feature>
19-
<reference>89.1. Role - allclusters.html[pdf]</reference>
26+
<reference>99.1. Role - allclusters.html[pdf]</reference>
2027
<status>O</status>
2128
<support>true</support>
2229
</picsItem>
@@ -26,16 +33,14 @@ Draft
2633
<pixitItem>
2734
<itemNumber>PIXIT.RVCCLEANM.MODE_CHANGE_FAIL</itemNumber>
2835
<feature>Id of mode the device will fail to transition to, given its current state</feature>
29-
<reference>90. PIXIT Definition - allclusters.html[pdf]</reference>
30-
<status cond="RVCCLEANM.S">O</status>
31-
<support>0x01</support>
36+
<reference>100. PIXIT Definition - allclusters.html[pdf]</reference>
37+
<status cond="RVCCLEANM.S">O</status><support>n/a</support>
3238
</pixitItem>
3339
<pixitItem>
3440
<itemNumber>PIXIT.RVCCLEANM.MODE_CHANGE_OK</itemNumber>
3541
<feature>Id of mode the device will successfully transition to, given its current state</feature>
36-
<reference>90. PIXIT Definition - allclusters.html[pdf]</reference>
37-
<status cond="RVCCLEANM.S">O</status>
38-
<support>0x01</support>
42+
<reference>100. PIXIT Definition - allclusters.html[pdf]</reference>
43+
<status cond="RVCCLEANM.S">O</status><support>n/a</support>
3944
</pixitItem>
4045
</pixit>
4146
<!--Server side PICS-->
@@ -45,31 +50,17 @@ Draft
4550
<picsItem>
4651
<itemNumber>RVCCLEANM.S.A0000</itemNumber>
4752
<feature>Does the device implement the SupportedModes attribute?</feature>
48-
<reference>89.2.2. Attributes - allclusters.html[pdf]</reference>
53+
<reference>99.2.1. Attributes - allclusters.html[pdf]</reference>
4954
<status cond="RVCCLEANM.S">M</status>
5055
<support>true</support>
5156
</picsItem>
5257
<picsItem>
5358
<itemNumber>RVCCLEANM.S.A0001</itemNumber>
5459
<feature>Does the device implement the CurrentMode attribute?</feature>
55-
<reference>89.2.2. Attributes - allclusters.html[pdf]</reference>
60+
<reference>99.2.1. Attributes - allclusters.html[pdf]</reference>
5661
<status cond="RVCCLEANM.S">M</status>
5762
<support>true</support>
5863
</picsItem>
59-
<picsItem>
60-
<itemNumber>RVCCLEANM.S.A0002</itemNumber>
61-
<feature>Does the device implement the StartUpMode attribute?</feature>
62-
<reference>89.2.2. Attributes - allclusters.html[pdf]</reference>
63-
<status cond="RVCCLEANM.S">O</status>
64-
<support>false</support>
65-
</picsItem>
66-
<picsItem>
67-
<itemNumber>RVCCLEANM.S.A0003</itemNumber>
68-
<feature>Does the device implement the OnMode attribute?</feature>
69-
<reference>89.2.2. Attributes - allclusters.html[pdf]</reference>
70-
<status cond="RVCCLEANM.S.F00">M</status>
71-
<support>false</support>
72-
</picsItem>
7364
</attributes>
7465
<!--Events PICS write-->
7566
<events/>
@@ -78,7 +69,7 @@ Draft
7869
<picsItem>
7970
<itemNumber>RVCCLEANM.S.C01.Tx</itemNumber>
8071
<feature>Does the device implement sending the ChangeToModeResponse command?</feature>
81-
<reference>89.2.4. Commands generated - allclusters.html[pdf]</reference>
72+
<reference>99.2.3. Commands generated - allclusters.html[pdf]</reference>
8273
<status cond="RVCCLEANM.S">M</status>
8374
<support>true</support>
8475
</picsItem>
@@ -88,17 +79,17 @@ Draft
8879
<picsItem>
8980
<itemNumber>RVCCLEANM.S.C00.Rsp</itemNumber>
9081
<feature>Does the device implement receiving the ChangeToMode command?</feature>
91-
<reference>89.2.3. Commands received - allclusters.html[pdf]</reference>
82+
<reference>99.2.2. Commands received - allclusters.html[pdf]</reference>
9283
<status cond="RVCCLEANM.S">M</status>
9384
<support>true</support>
9485
</picsItem>
9586
</commandsReceived>
9687
<!--Features PICS write-->
9788
<features>
9889
<picsItem>
99-
<itemNumber>RVCCLEANM.S.F00</itemNumber>
100-
<feature>Does the device support depending on an On/Off cluster implemented on the same endpoint?</feature>
101-
<reference>89.2.1. Features - allclusters.html[pdf]</reference>
90+
<itemNumber>RVCCLEANM.S.F16</itemNumber>
91+
<feature>Does the device support changing clean modes from non-Idle states?</feature>
92+
<reference>101.1. Features - allclusters.html[pdf]</reference>
10293
<status cond="RVCCLEANM.S">O</status>
10394
<support>false</support>
10495
</picsItem>
@@ -108,10 +99,17 @@ Draft
10899
<picsItem>
109100
<itemNumber>RVCCLEANM.S.M.CAN_TEST_MODE_FAILURE</itemNumber>
110101
<feature>Does the DUT support testing the failed ChangeToMode command?</feature>
111-
<reference>89.2.5. Manual controllable - allclusters.html[pdf]</reference>
102+
<reference>99.2.4. Manual controllable - allclusters.html[pdf]</reference>
112103
<status cond="RVCCLEANM.S">O</status>
113104
<support>true</support>
114105
</picsItem>
106+
<picsItem>
107+
<itemNumber>RVCCLEANM.S.M.CAN_MANUALLY_CONTROLLED</itemNumber>
108+
<feature>Can the mode change be manually controlled?</feature>
109+
<reference>99.2.4. Manual controllable - allclusters.html[pdf]</reference>
110+
<status cond="RVCCLEANM.S">O</status>
111+
<support>false</support>
112+
</picsItem>
115113
</manually>
116114
</clusterSide>
117115
<!--Client side PICS-->

0 commit comments

Comments
 (0)