Skip to content

Commit bc7f2a4

Browse files
Additional RVC Operational States and Errors (project-chip#38420)
* additional operational states from 1.5 spec * additional operational error states from 1.5 spec * codegen: python * codegen: darwin * codegen: .matter files * codegen: zzz * add timing note for provisional items * Restyled by prettier-yaml --------- Co-authored-by: Restyled.io <commits@restyled.io>
1 parent 37948e2 commit bc7f2a4

9 files changed

Lines changed: 114 additions & 10 deletions

File tree

examples/all-clusters-app/all-clusters-common/all-clusters-app.matter

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3839,6 +3839,13 @@ cluster RvcOperationalState = 97 {
38393839
kWaterTankMissing = 69;
38403840
kWaterTankLidOpen = 70;
38413841
kMopCleaningPadMissing = 71;
3842+
kLowBattery = 72;
3843+
kCannotReachTargetArea = 73;
3844+
kDirtyWaterTankFull = 74;
3845+
kDirtyWaterTankMissing = 75;
3846+
kWheelsJammed = 76;
3847+
kBrushJammed = 77;
3848+
kNavigationSensorObscured = 78;
38423849
}
38433850

38443851
enum OperationalStateEnum : enum8 {
@@ -3849,6 +3856,10 @@ cluster RvcOperationalState = 97 {
38493856
kSeekingCharger = 64;
38503857
kCharging = 65;
38513858
kDocked = 66;
3859+
kEmptyingDustBin = 67;
3860+
kCleaningMop = 68;
3861+
kFillingWaterTank = 69;
3862+
kUpdatingMaps = 70;
38523863
}
38533864

38543865
shared struct ErrorStateStruct {

examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1771,6 +1771,13 @@ cluster RvcOperationalState = 97 {
17711771
kWaterTankMissing = 69;
17721772
kWaterTankLidOpen = 70;
17731773
kMopCleaningPadMissing = 71;
1774+
kLowBattery = 72;
1775+
kCannotReachTargetArea = 73;
1776+
kDirtyWaterTankFull = 74;
1777+
kDirtyWaterTankMissing = 75;
1778+
kWheelsJammed = 76;
1779+
kBrushJammed = 77;
1780+
kNavigationSensorObscured = 78;
17741781
}
17751782

17761783
enum OperationalStateEnum : enum8 {
@@ -1781,6 +1788,10 @@ cluster RvcOperationalState = 97 {
17811788
kSeekingCharger = 64;
17821789
kCharging = 65;
17831790
kDocked = 66;
1791+
kEmptyingDustBin = 67;
1792+
kCleaningMop = 68;
1793+
kFillingWaterTank = 69;
1794+
kUpdatingMaps = 70;
17841795
}
17851796

17861797
shared struct ErrorStateStruct {

examples/rvc-app/rvc-common/rvc-app.matter

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1452,6 +1452,13 @@ cluster RvcOperationalState = 97 {
14521452
kWaterTankMissing = 69;
14531453
kWaterTankLidOpen = 70;
14541454
kMopCleaningPadMissing = 71;
1455+
kLowBattery = 72;
1456+
kCannotReachTargetArea = 73;
1457+
kDirtyWaterTankFull = 74;
1458+
kDirtyWaterTankMissing = 75;
1459+
kWheelsJammed = 76;
1460+
kBrushJammed = 77;
1461+
kNavigationSensorObscured = 78;
14551462
}
14561463

14571464
enum OperationalStateEnum : enum8 {
@@ -1462,6 +1469,10 @@ cluster RvcOperationalState = 97 {
14621469
kSeekingCharger = 64;
14631470
kCharging = 65;
14641471
kDocked = 66;
1472+
kEmptyingDustBin = 67;
1473+
kCleaningMop = 68;
1474+
kFillingWaterTank = 69;
1475+
kUpdatingMaps = 70;
14651476
}
14661477

14671478
shared struct ErrorStateStruct {

src/app/zap-templates/zcl/data-model/chip/operational-state-rvc-cluster.xml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,13 @@ limitations under the License.
2929
<item name="Error" value="0x03"/>
3030

3131
<!-- Derived cluster-specific values start below at 0x40 -->
32-
<item name="SeekingCharger" value="0x40"/>
33-
<item name="Charging" value="0x41"/>
34-
<item name="Docked" value="0x42"/>
32+
<item name="SeekingCharger" value="0x40"/>
33+
<item name="Charging" value="0x41"/>
34+
<item name="Docked" value="0x42"/>
35+
<item name="EmptyingDustBin" value="0x43"/>
36+
<item name="CleaningMop" value="0x44"/>
37+
<item name="FillingWaterTank" value="0x45"/>
38+
<item name="UpdatingMaps" value="0x46"/>
3539
</enum>
3640

3741
<enum name="ErrorStateEnum" type="enum8">
@@ -54,6 +58,13 @@ limitations under the License.
5458
<item name="WaterTankMissing" value="0x45"/>
5559
<item name="WaterTankLidOpen" value="0x46"/>
5660
<item name="MopCleaningPadMissing" value="0x47"/>
61+
<item name="LowBattery" value="0x48"/>
62+
<item name="CannotReachTargetArea" value="0x49"/>
63+
<item name="DirtyWaterTankFull" value="0x4a"/>
64+
<item name="DirtyWaterTankMissing" value="0x4b"/>
65+
<item name="WheelsJammed" value="0x4c"/>
66+
<item name="BrushJammed" value="0x4d"/>
67+
<item name="NavigationSensorObscured" value="0x4e"/>
5768
</enum>
5869

5970
<cluster>

src/controller/data_model/controller-clusters.matter

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4102,6 +4102,13 @@ cluster RvcOperationalState = 97 {
41024102
kWaterTankMissing = 69;
41034103
kWaterTankLidOpen = 70;
41044104
kMopCleaningPadMissing = 71;
4105+
kLowBattery = 72;
4106+
kCannotReachTargetArea = 73;
4107+
kDirtyWaterTankFull = 74;
4108+
kDirtyWaterTankMissing = 75;
4109+
kWheelsJammed = 76;
4110+
kBrushJammed = 77;
4111+
kNavigationSensorObscured = 78;
41054112
}
41064113

41074114
enum OperationalStateEnum : enum8 {
@@ -4112,6 +4119,10 @@ cluster RvcOperationalState = 97 {
41124119
kSeekingCharger = 64;
41134120
kCharging = 65;
41144121
kDocked = 66;
4122+
kEmptyingDustBin = 67;
4123+
kCleaningMop = 68;
4124+
kFillingWaterTank = 69;
4125+
kUpdatingMaps = 70;
41154126
}
41164127

41174128
shared struct ErrorStateStruct {

src/controller/python/chip/clusters/Objects.py

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/darwin/Framework/CHIP/templates/availability.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11671,6 +11671,22 @@
1167111671
MeasurementTypeEnum:
1167211672
- ApparentEnergy
1167311673
- ReactiveEnergy
11674+
RVCOperationalState:
11675+
# Additional error and operational states:
11676+
# in-progress for maybe Matter 1.5
11677+
ErrorStateEnum:
11678+
- LowBattery
11679+
- CannotReachTargetArea
11680+
- DirtyWaterTankFull
11681+
- DirtyWaterTankMissing
11682+
- WheelsJammed
11683+
- BrushJammed
11684+
- NavigationSensorObscured
11685+
OperationalStateEnum:
11686+
- EmptyingDustBin
11687+
- CleaningMop
11688+
- FillingWaterTank
11689+
- UpdatingMaps
1167411690
device types:
1167511691
# In-progress for maybe Matter 1.5
1167611692
- Awning

src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

zzz_generated/app-common/clusters/RvcOperationalState/Enums.h

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ enum class ErrorStateEnum : uint8_t
4141
kWaterTankMissing = 0x45,
4242
kWaterTankLidOpen = 0x46,
4343
kMopCleaningPadMissing = 0x47,
44+
kLowBattery = 0x48,
45+
kCannotReachTargetArea = 0x49,
46+
kDirtyWaterTankFull = 0x4A,
47+
kDirtyWaterTankMissing = 0x4B,
48+
kWheelsJammed = 0x4C,
49+
kBrushJammed = 0x4D,
50+
kNavigationSensorObscured = 0x4E,
4451
// kUnknownEnumValue intentionally not defined. This enum never goes
4552
// through DataModel::Decode, likely because it is a part of a derived
4653
// cluster. As a result having kUnknownEnumValue in this enum is error
@@ -51,13 +58,17 @@ enum class ErrorStateEnum : uint8_t
5158
// Enum for OperationalStateEnum
5259
enum class OperationalStateEnum : uint8_t
5360
{
54-
kStopped = 0x00,
55-
kRunning = 0x01,
56-
kPaused = 0x02,
57-
kError = 0x03,
58-
kSeekingCharger = 0x40,
59-
kCharging = 0x41,
60-
kDocked = 0x42,
61+
kStopped = 0x00,
62+
kRunning = 0x01,
63+
kPaused = 0x02,
64+
kError = 0x03,
65+
kSeekingCharger = 0x40,
66+
kCharging = 0x41,
67+
kDocked = 0x42,
68+
kEmptyingDustBin = 0x43,
69+
kCleaningMop = 0x44,
70+
kFillingWaterTank = 0x45,
71+
kUpdatingMaps = 0x46,
6172
// kUnknownEnumValue intentionally not defined. This enum never goes
6273
// through DataModel::Decode, likely because it is a part of a derived
6374
// cluster. As a result having kUnknownEnumValue in this enum is error

0 commit comments

Comments
 (0)