Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]RVC Operational State implementation and example cluster server application #27979

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6e61284
OperationalState attribute simply to Enum
mideayanghui Jul 13, 2023
e36a5d2
temporary remove some test step in TestOperationalState
mideayanghui Jul 14, 2023
d756399
zap regen all
mideayanghui Jul 14, 2023
1c1ac28
modify the code related of the OperationalState attribute type
mideayanghui Jul 14, 2023
34152ce
update OperationalState type to Enum in TestOperationalState.yaml
mideayanghui Jul 14, 2023
726b34b
Restyled by clang-format
restyled-commits Jul 14, 2023
5fed945
Merge branch 'master' into feature/operational-state-xml-update-1
mideayanghui Jul 15, 2023
66a6920
modify the api of GetCurrentOperationalState in class Delegate
mideayanghui Jul 15, 2023
c25b4ba
modify the api of SetOperationalState in class Delegate
mideayanghui Jul 15, 2023
2abaa8d
optimize the Operational State cluster definition
mideayanghui Jul 15, 2023
10fad31
zap regen all
mideayanghui Jul 15, 2023
14085d2
Restyled by clang-format
restyled-commits Jul 15, 2023
f15219f
modify the note for RVC Operational State cluster definition
mideayanghui Jul 15, 2023
fa84e16
Add OperationalError event api for operational state cluster
mideayanghui Jul 15, 2023
1a27012
fix build error
mideayanghui Jul 15, 2023
aae5a7e
Add OperationCompletion event api for operational state cluster
mideayanghui Jul 15, 2023
d688c69
fix build error
mideayanghui Jul 15, 2023
bd5ff29
Add RVC Operational State Cluster Implementation
mideayanghui Jul 15, 2023
98f4174
enable RVC operational state cluster in all-cluster-app and zap regen…
mideayanghui Jul 15, 2023
ff12b56
Add RVC operational state server in all-cluster-app
mideayanghui Jul 15, 2023
3e41b30
Restyled by clang-format
restyled-commits Jul 15, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2692,7 +2692,70 @@ server cluster OperationalState = 96 {
readonly attribute nullable int8u currentPhase = 1;
readonly attribute nullable elapsed_s countdownTime = 2;
readonly attribute OperationalStateStruct operationalStateList[] = 3;
readonly attribute OperationalStateStruct operationalState = 4;
readonly attribute OperationalStateEnum operationalState = 4;
readonly attribute ErrorStateStruct operationalError = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;

response struct OperationalCommandResponse = 4 {
ErrorStateStruct commandResponseState = 0;
}

command Pause(): OperationalCommandResponse = 0;
command Stop(): OperationalCommandResponse = 1;
command Start(): OperationalCommandResponse = 2;
command Resume(): OperationalCommandResponse = 3;
}

/** This cluster supports remotely monitoring and, where supported, changing the operational state of a Robotic Vacuum. */
server cluster RvcOperationalState = 97 {
enum ErrorStateEnum : ENUM8 {
kFailedToFindChargingDock = 64;
kStuck = 65;
kDustBinMissing = 66;
kDustBinFull = 67;
kWaterTankEmpty = 68;
kWaterTankMissing = 69;
kWaterTankLidOpen = 70;
kMopCleaningPadMissing = 71;
}

enum OperationalStateEnum : ENUM8 {
kSeekingCharger = 64;
kCharging = 65;
kDocked = 66;
}

struct ErrorStateStruct {
enum8 errorStateID = 0;
optional char_string<64> errorStateLabel = 1;
optional char_string<64> errorStateDetails = 2;
}

struct OperationalStateStruct {
enum8 operationalStateID = 0;
optional char_string<64> operationalStateLabel = 1;
}

critical event OperationalError = 0 {
ErrorStateStruct errorState = 0;
}

info event OperationCompletion = 1 {
ENUM8 completionErrorCode = 0;
optional nullable elapsed_s totalOperationalTime = 1;
optional nullable elapsed_s pausedTime = 2;
}

readonly attribute nullable CHAR_STRING phaseList[] = 0;
readonly attribute nullable int8u currentPhase = 1;
readonly attribute nullable elapsed_s countdownTime = 2;
readonly attribute OperationalStateStruct operationalStateList[] = 3;
readonly attribute enum8 operationalState = 4;
readonly attribute ErrorStateStruct operationalError = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down Expand Up @@ -6712,6 +6775,23 @@ endpoint 1 {
ram attribute clusterRevision default = 1;
}

server cluster RvcOperationalState {
emits event OperationalError;
emits event OperationCompletion;
callback attribute phaseList;
callback attribute currentPhase default = 0;
callback attribute countdownTime default = 0;
callback attribute operationalStateList default = 0;
callback attribute operationalState default = 0;
callback attribute operationalError default = 0;
callback attribute generatedCommandList default = 0;
callback attribute acceptedCommandList default = 0;
callback attribute eventList default = 0;
callback attribute attributeList default = 0;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;
}

server cluster HepaFilterMonitoring {
ram attribute condition;
ram attribute degradationDirection;
Expand Down
Loading
Loading