From 730a6193c9c59c51787f56e0ca51570fe2b56c74 Mon Sep 17 00:00:00 2001 From: Tennessee Carmel-Veilleux Date: Mon, 9 Sep 2024 21:10:23 -0400 Subject: [PATCH] Ensure all derived clusters have the base enum values (#35489) - OperationalState and ModeBase cluster enum values did not include the base enums values. This causes all sorts of pain for anything based on .matter files or code-gened enum values. - This PR fixes the situation in the short term by having the ZAP XML include the necessary values Testing done: - No changes of values, only added values --- .../all-clusters-app.matter | 108 ++++++++ .../rootnode_laundrywasher_fb10d238c8.matter | 10 + ...ode_roboticvacuumcleaner_1807ff0c49.matter | 28 ++ .../energy-management-app.matter | 30 +++ .../nxp/zap/laundry-washer-app.matter | 10 + .../microwave-oven-app.matter | 10 + examples/rvc-app/rvc-common/rvc-app.matter | 28 ++ .../device-energy-management-mode-cluster.xml | 17 +- .../chip/dishwasher-mode-cluster.xml | 18 +- .../chip/energy-evse-mode-cluster.xml | 15 ++ .../chip/laundry-washer-mode-cluster.xml | 18 +- .../chip/microwave-oven-mode-cluster.xml | 15 ++ .../zcl/data-model/chip/mode-base-cluster.xml | 2 + .../chip/operational-state-cluster.xml | 2 - .../chip/operational-state-oven-cluster.xml | 29 ++- .../chip/operational-state-rvc-cluster.xml | 20 ++ .../zcl/data-model/chip/oven-mode-cluster.xml | 15 ++ ...rature-controlled-cabinet-mode-cluster.xml | 18 +- .../chip/rvc-clean-mode-cluster.xml | 18 +- .../data-model/chip/rvc-run-mode-cluster.xml | 15 ++ .../chip/water-heater-mode-cluster.xml | 16 ++ .../data_model/controller-clusters.matter | 108 ++++++++ .../python/chip/clusters/Objects.py | 112 +++++++- .../CHIP/zap-generated/MTRBaseClusters.h | 108 ++++++++ .../zap-generated/cluster-enums-check.h | 106 ++++++-- .../app-common/zap-generated/cluster-enums.h | 242 +++++++++++++----- 26 files changed, 1023 insertions(+), 95 deletions(-) diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index 06a034512fc199..cc36d5c6160113 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -2985,6 +2985,16 @@ cluster OvenMode = 73 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kBake = 16384; kConvection = 16385; kGrill = 16386; @@ -3106,6 +3116,16 @@ cluster LaundryWasherMode = 81 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kDelicate = 16385; kHeavy = 16386; @@ -3157,6 +3177,16 @@ cluster RefrigeratorAndTemperatureControlledCabinetMode = 82 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kRapidCool = 16384; kRapidFreeze = 16385; } @@ -3234,6 +3264,16 @@ cluster RvcRunMode = 84 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kIdle = 16384; kCleaning = 16385; kMapping = 16386; @@ -3293,6 +3333,16 @@ cluster RvcCleanMode = 85 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kDeepClean = 16384; kVacuum = 16385; kMop = 16386; @@ -3403,6 +3453,16 @@ cluster DishwasherMode = 89 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kHeavy = 16385; kLight = 16386; @@ -3644,6 +3704,16 @@ cluster MicrowaveOvenMode = 94 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kDefrost = 16385; } @@ -3744,6 +3814,10 @@ cluster RvcOperationalState = 97 { revision 1; enum ErrorStateEnum : enum8 { + kNoError = 0; + kUnableToStartOrResume = 1; + kUnableToCompleteOperation = 2; + kCommandInvalidInState = 3; kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -3755,6 +3829,10 @@ cluster RvcOperationalState = 97 { } enum OperationalStateEnum : enum8 { + kStopped = 0; + kRunning = 1; + kPaused = 2; + kError = 3; kSeekingCharger = 64; kCharging = 65; kDocked = 66; @@ -4903,6 +4981,16 @@ cluster EnergyEvseMode = 157 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kManual = 16384; kTimeOfUse = 16385; kSolarCharging = 16386; @@ -4953,6 +5041,16 @@ cluster WaterHeaterMode = 158 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kOff = 16384; kManual = 16385; kTimed = 16386; @@ -5003,6 +5101,16 @@ provisional cluster DeviceEnergyManagementMode = 159 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNoOptimization = 16384; kDeviceOptimization = 16385; kLocalOptimization = 16386; diff --git a/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter index 47ed02f1523ca3..e160cd4fe8cb82 100644 --- a/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter +++ b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter @@ -1303,6 +1303,16 @@ cluster LaundryWasherMode = 81 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kDelicate = 16385; kHeavy = 16386; diff --git a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter index 2922ddca5d7ace..6870f3cd42718a 100644 --- a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter +++ b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter @@ -1583,6 +1583,16 @@ cluster RvcRunMode = 84 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kIdle = 16384; kCleaning = 16385; kMapping = 16386; @@ -1642,6 +1652,16 @@ cluster RvcCleanMode = 85 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kDeepClean = 16384; kVacuum = 16385; kMop = 16386; @@ -1694,6 +1714,10 @@ cluster RvcOperationalState = 97 { revision 1; enum ErrorStateEnum : enum8 { + kNoError = 0; + kUnableToStartOrResume = 1; + kUnableToCompleteOperation = 2; + kCommandInvalidInState = 3; kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -1705,6 +1729,10 @@ cluster RvcOperationalState = 97 { } enum OperationalStateEnum : enum8 { + kStopped = 0; + kRunning = 1; + kPaused = 2; + kError = 3; kSeekingCharger = 64; kCharging = 65; kDocked = 66; diff --git a/examples/energy-management-app/energy-management-common/energy-management-app.matter b/examples/energy-management-app/energy-management-common/energy-management-app.matter index 9b9bf1476e0f0e..3dae5dc5d7a88f 100644 --- a/examples/energy-management-app/energy-management-common/energy-management-app.matter +++ b/examples/energy-management-app/energy-management-common/energy-management-app.matter @@ -2222,6 +2222,16 @@ cluster EnergyEvseMode = 157 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kManual = 16384; kTimeOfUse = 16385; kSolarCharging = 16386; @@ -2272,6 +2282,16 @@ cluster WaterHeaterMode = 158 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kOff = 16384; kManual = 16385; kTimed = 16386; @@ -2322,6 +2342,16 @@ provisional cluster DeviceEnergyManagementMode = 159 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNoOptimization = 16384; kDeviceOptimization = 16385; kLocalOptimization = 16386; diff --git a/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter b/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter index e597b02c74e841..e3ba743cb6f971 100644 --- a/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter +++ b/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter @@ -1963,6 +1963,16 @@ cluster LaundryWasherMode = 81 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kDelicate = 16385; kHeavy = 16386; diff --git a/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter b/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter index 0ac59afb131cd9..b4c1f0365b4ee7 100644 --- a/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter +++ b/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter @@ -1321,6 +1321,16 @@ cluster MicrowaveOvenMode = 94 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kDefrost = 16385; } diff --git a/examples/rvc-app/rvc-common/rvc-app.matter b/examples/rvc-app/rvc-common/rvc-app.matter index 974c0dc73a689c..9d927871f8154a 100644 --- a/examples/rvc-app/rvc-common/rvc-app.matter +++ b/examples/rvc-app/rvc-common/rvc-app.matter @@ -1247,6 +1247,16 @@ cluster RvcRunMode = 84 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kIdle = 16384; kCleaning = 16385; kMapping = 16386; @@ -1306,6 +1316,16 @@ cluster RvcCleanMode = 85 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kDeepClean = 16384; kVacuum = 16385; kMop = 16386; @@ -1358,6 +1378,10 @@ cluster RvcOperationalState = 97 { revision 1; enum ErrorStateEnum : enum8 { + kNoError = 0; + kUnableToStartOrResume = 1; + kUnableToCompleteOperation = 2; + kCommandInvalidInState = 3; kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -1369,6 +1393,10 @@ cluster RvcOperationalState = 97 { } enum OperationalStateEnum : enum8 { + kStopped = 0; + kRunning = 1; + kPaused = 2; + kError = 3; kSeekingCharger = 64; kCharging = 65; kDocked = 66; diff --git a/src/app/zap-templates/zcl/data-model/chip/device-energy-management-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/device-energy-management-mode-cluster.xml index 043fb4a1833502..3ee32897b4df06 100644 --- a/src/app/zap-templates/zcl/data-model/chip/device-energy-management-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/device-energy-management-mode-cluster.xml @@ -19,8 +19,23 @@ limitations under the License. + + + + + + + + + + + + + - + diff --git a/src/app/zap-templates/zcl/data-model/chip/dishwasher-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/dishwasher-mode-cluster.xml index 436967be2cee89..7c7dec635f3b6c 100644 --- a/src/app/zap-templates/zcl/data-model/chip/dishwasher-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/dishwasher-mode-cluster.xml @@ -19,6 +19,22 @@ limitations under the License. + + + + + + + + + + + + + + @@ -39,7 +55,7 @@ limitations under the License. - + SupportedModes CurrentMode diff --git a/src/app/zap-templates/zcl/data-model/chip/energy-evse-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/energy-evse-mode-cluster.xml index c4b702b701d174..b5dc56682132a5 100644 --- a/src/app/zap-templates/zcl/data-model/chip/energy-evse-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/energy-evse-mode-cluster.xml @@ -19,6 +19,21 @@ limitations under the License. + + + + + + + + + + + + + diff --git a/src/app/zap-templates/zcl/data-model/chip/laundry-washer-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/laundry-washer-mode-cluster.xml index 99e4ef50c9ca7b..b8afd87d76665c 100644 --- a/src/app/zap-templates/zcl/data-model/chip/laundry-washer-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/laundry-washer-mode-cluster.xml @@ -19,6 +19,22 @@ limitations under the License. + + + + + + + + + + + + + + @@ -40,7 +56,7 @@ limitations under the License. - + SupportedModes CurrentMode diff --git a/src/app/zap-templates/zcl/data-model/chip/microwave-oven-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/microwave-oven-mode-cluster.xml index 3e4e9cfe84d86c..856fde36da15ee 100644 --- a/src/app/zap-templates/zcl/data-model/chip/microwave-oven-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/microwave-oven-mode-cluster.xml @@ -19,6 +19,21 @@ limitations under the License. + + + + + + + + + + + + + diff --git a/src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml index b8e81233473932..db99a3daba9bc0 100644 --- a/src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml @@ -21,6 +21,8 @@ limitations under the License. The generic enum values for the StatusCode and ModeTag enums are defined within the ModeBase namespace in the mode-base-server source code. See mode-base-cluster-objects.h. This is because zap does not currently support generating code for clusters that do not have a cluster ID. + +Each of these enum values is also listed/copied in the derived clusters. --> diff --git a/src/app/zap-templates/zcl/data-model/chip/operational-state-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/operational-state-cluster.xml index bf296d237b8327..53b9c73cad6b3e 100644 --- a/src/app/zap-templates/zcl/data-model/chip/operational-state-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/operational-state-cluster.xml @@ -19,7 +19,6 @@ limitations under the License. - @@ -28,7 +27,6 @@ limitations under the License. - diff --git a/src/app/zap-templates/zcl/data-model/chip/operational-state-oven-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/operational-state-oven-cluster.xml index 83f2fc8b7984d4..fd52204b02fe85 100644 --- a/src/app/zap-templates/zcl/data-model/chip/operational-state-oven-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/operational-state-oven-cluster.xml @@ -16,6 +16,33 @@ limitations under the License. --> + + + + + + + + + + + + + + + + + + + + + + + Appliances Oven Cavity Operational State @@ -67,4 +94,4 @@ limitations under the License. - \ No newline at end of file + diff --git a/src/app/zap-templates/zcl/data-model/chip/operational-state-rvc-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/operational-state-rvc-cluster.xml index 27817054967fb5..e3b054fe3fedce 100644 --- a/src/app/zap-templates/zcl/data-model/chip/operational-state-rvc-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/operational-state-rvc-cluster.xml @@ -19,6 +19,16 @@ limitations under the License. + + + + + + + + @@ -26,6 +36,16 @@ limitations under the License. + + + + + + + + diff --git a/src/app/zap-templates/zcl/data-model/chip/oven-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/oven-mode-cluster.xml index 41f95e81cdd248..0faa1b037eb318 100644 --- a/src/app/zap-templates/zcl/data-model/chip/oven-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/oven-mode-cluster.xml @@ -19,6 +19,21 @@ limitations under the License. + + + + + + + + + + + + + diff --git a/src/app/zap-templates/zcl/data-model/chip/refrigerator-and-temperature-controlled-cabinet-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/refrigerator-and-temperature-controlled-cabinet-mode-cluster.xml index e5ff239c18afa6..e29080ce4a43cb 100644 --- a/src/app/zap-templates/zcl/data-model/chip/refrigerator-and-temperature-controlled-cabinet-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/refrigerator-and-temperature-controlled-cabinet-mode-cluster.xml @@ -19,6 +19,22 @@ limitations under the License. + + + + + + + + + + + + + + @@ -38,7 +54,7 @@ limitations under the License. - + SupportedModes CurrentMode diff --git a/src/app/zap-templates/zcl/data-model/chip/rvc-clean-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/rvc-clean-mode-cluster.xml index afd87fd18f3d54..65c2f17a3e8e75 100644 --- a/src/app/zap-templates/zcl/data-model/chip/rvc-clean-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/rvc-clean-mode-cluster.xml @@ -24,6 +24,22 @@ limitations under the License. + + + + + + + + + + + + + + @@ -38,7 +54,7 @@ limitations under the License. true Attributes and commands for selecting a mode from a list of supported options. - + diff --git a/src/app/zap-templates/zcl/data-model/chip/rvc-run-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/rvc-run-mode-cluster.xml index df27b2c15e0b83..ce835576396bb8 100644 --- a/src/app/zap-templates/zcl/data-model/chip/rvc-run-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/rvc-run-mode-cluster.xml @@ -31,6 +31,21 @@ limitations under the License. + + + + + + + + + + + + + diff --git a/src/app/zap-templates/zcl/data-model/chip/water-heater-mode-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/water-heater-mode-cluster.xml index 23a1b2eec5d4c0..502f9e3f032b54 100644 --- a/src/app/zap-templates/zcl/data-model/chip/water-heater-mode-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/water-heater-mode-cluster.xml @@ -19,6 +19,22 @@ limitations under the License. + + + + + + + + + + + + + + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 412550214b68ec..0a2a04ee0e420c 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -3206,6 +3206,16 @@ cluster OvenMode = 73 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kBake = 16384; kConvection = 16385; kGrill = 16386; @@ -3324,6 +3334,16 @@ cluster LaundryWasherMode = 81 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kDelicate = 16385; kHeavy = 16386; @@ -3375,6 +3395,16 @@ cluster RefrigeratorAndTemperatureControlledCabinetMode = 82 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kRapidCool = 16384; kRapidFreeze = 16385; } @@ -3452,6 +3482,16 @@ cluster RvcRunMode = 84 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kIdle = 16384; kCleaning = 16385; kMapping = 16386; @@ -3511,6 +3551,16 @@ cluster RvcCleanMode = 85 { revision 3; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kDeepClean = 16384; kVacuum = 16385; kMop = 16386; @@ -3621,6 +3671,16 @@ cluster DishwasherMode = 89 { revision 2; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kHeavy = 16385; kLight = 16386; @@ -3862,6 +3922,16 @@ cluster MicrowaveOvenMode = 94 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNormal = 16384; kDefrost = 16385; } @@ -4006,6 +4076,10 @@ cluster RvcOperationalState = 97 { revision 1; enum ErrorStateEnum : enum8 { + kNoError = 0; + kUnableToStartOrResume = 1; + kUnableToCompleteOperation = 2; + kCommandInvalidInState = 3; kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -4017,6 +4091,10 @@ cluster RvcOperationalState = 97 { } enum OperationalStateEnum : enum8 { + kStopped = 0; + kRunning = 1; + kPaused = 2; + kError = 3; kSeekingCharger = 64; kCharging = 65; kDocked = 66; @@ -5454,6 +5532,16 @@ cluster EnergyEvseMode = 157 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kManual = 16384; kTimeOfUse = 16385; kSolarCharging = 16386; @@ -5504,6 +5592,16 @@ cluster WaterHeaterMode = 158 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kOff = 16384; kManual = 16385; kTimed = 16386; @@ -5554,6 +5652,16 @@ provisional cluster DeviceEnergyManagementMode = 159 { revision 1; enum ModeTag : enum16 { + kAuto = 0; + kQuick = 1; + kQuiet = 2; + kLowNoise = 3; + kLowEnergy = 4; + kVacation = 5; + kMin = 6; + kMax = 7; + kNight = 8; + kDay = 9; kNoOptimization = 16384; kDeviceOptimization = 16385; kLocalOptimization = 16386; diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index b408fb5fd57e71..89f364a79a094e 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -16030,6 +16030,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kBake = 0x4000 kConvection = 0x4001 kGrill = 0x4002 @@ -16043,7 +16053,7 @@ class ModeTag(MatterIntEnum): # to kUnknownEnumValue. This is a helper enum value that should only # be used by code to process how it handles receiving an unknown # enum value. This specific value should never be transmitted. - kUnknownEnumValue = 0, + kUnknownEnumValue = 10, class Bitmaps: class Feature(IntFlag): @@ -16756,6 +16766,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kNormal = 0x4000 kDelicate = 0x4001 kHeavy = 0x4002 @@ -17029,6 +17049,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kRapidCool = 0x4000 kRapidFreeze = 0x4001 # kUnknownEnumValue intentionally not defined. This enum never goes @@ -17506,6 +17536,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kIdle = 0x4000 kCleaning = 0x4001 kMapping = 0x4002 @@ -17757,6 +17797,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kDeepClean = 0x4000 kVacuum = 0x4001 kMop = 0x4002 @@ -18464,6 +18514,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kNormal = 0x4000 kHeavy = 0x4001 kLight = 0x4002 @@ -19789,13 +19849,23 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kNormal = 0x4000 kDefrost = 0x4001 # All received enum values that are not listed above will be mapped # to kUnknownEnumValue. This is a helper enum value that should only # be used by code to process how it handles receiving an unknown # enum value. This specific value should never be transmitted. - kUnknownEnumValue = 0, + kUnknownEnumValue = 10, class Bitmaps: class Feature(IntFlag): @@ -20720,6 +20790,10 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ErrorStateEnum(MatterIntEnum): + kNoError = 0x00 + kUnableToStartOrResume = 0x01 + kUnableToCompleteOperation = 0x02 + kCommandInvalidInState = 0x03 kFailedToFindChargingDock = 0x40 kStuck = 0x41 kDustBinMissing = 0x42 @@ -20735,6 +20809,10 @@ class ErrorStateEnum(MatterIntEnum): # src/app/common/templates/config-data.yaml. class OperationalStateEnum(MatterIntEnum): + kStopped = 0x00 + kRunning = 0x01 + kPaused = 0x02 + kError = 0x03 kSeekingCharger = 0x40 kCharging = 0x41 kDocked = 0x42 @@ -27374,6 +27452,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kManual = 0x4000 kTimeOfUse = 0x4001 kSolarCharging = 0x4002 @@ -27646,6 +27734,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kOff = 0x4000 kManual = 0x4001 kTimed = 0x4002 @@ -27918,6 +28016,16 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Enums: class ModeTag(MatterIntEnum): + kAuto = 0x00 + kQuick = 0x01 + kQuiet = 0x02 + kLowNoise = 0x03 + kLowEnergy = 0x04 + kVacation = 0x05 + kMin = 0x06 + kMax = 0x07 + kNight = 0x08 + kDay = 0x09 kNoOptimization = 0x4000 kDeviceOptimization = 0x4001 kLocalOptimization = 0x4002 diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index 60c65ac382561d..2273d8ab191bd3 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -18522,6 +18522,16 @@ typedef NS_ENUM(uint8_t, MTROvenCavityOperationalStateOperationalState) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTROvenModeModeTag) { + MTROvenModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTROvenModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTROvenModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTROvenModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTROvenModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTROvenModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTROvenModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTROvenModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTROvenModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTROvenModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTROvenModeModeTagBake MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTROvenModeModeTagConvection MTR_PROVISIONALLY_AVAILABLE = 0x4001, MTROvenModeModeTagGrill MTR_PROVISIONALLY_AVAILABLE = 0x4002, @@ -18550,6 +18560,16 @@ typedef NS_OPTIONS(uint32_t, MTRModeSelectFeature) { } MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); typedef NS_ENUM(uint16_t, MTRLaundryWasherModeModeTag) { + MTRLaundryWasherModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRLaundryWasherModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRLaundryWasherModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRLaundryWasherModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRLaundryWasherModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRLaundryWasherModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRLaundryWasherModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRLaundryWasherModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRLaundryWasherModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRLaundryWasherModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRLaundryWasherModeModeTagNormal MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTRLaundryWasherModeModeTagDelicate MTR_PROVISIONALLY_AVAILABLE = 0x4001, MTRLaundryWasherModeModeTagHeavy MTR_PROVISIONALLY_AVAILABLE = 0x4002, @@ -18561,6 +18581,16 @@ typedef NS_OPTIONS(uint32_t, MTRLaundryWasherModeFeature) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTRRefrigeratorAndTemperatureControlledCabinetModeModeTag) { + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagRapidCool MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTRRefrigeratorAndTemperatureControlledCabinetModeModeTagRapidFreeze MTR_PROVISIONALLY_AVAILABLE = 0x4001, } MTR_PROVISIONALLY_AVAILABLE; @@ -18582,6 +18612,16 @@ typedef NS_OPTIONS(uint32_t, MTRLaundryWasherControlsFeature) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTRRVCRunModeModeTag) { + MTRRVCRunModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRRVCRunModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRRVCRunModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRRVCRunModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRRVCRunModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRRVCRunModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRRVCRunModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRRVCRunModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRRVCRunModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRRVCRunModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRRVCRunModeModeTagIdle MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x4000, MTRRVCRunModeModeTagCleaning MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x4001, MTRRVCRunModeModeTagMapping MTR_PROVISIONALLY_AVAILABLE = 0x4002, @@ -18603,6 +18643,16 @@ typedef NS_OPTIONS(uint32_t, MTRRVCRunModeFeature) { } MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)); typedef NS_ENUM(uint16_t, MTRRVCCleanModeModeTag) { + MTRRVCCleanModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRRVCCleanModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRRVCCleanModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRRVCCleanModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRRVCCleanModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRRVCCleanModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRRVCCleanModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRRVCCleanModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRRVCCleanModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRRVCCleanModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRRVCCleanModeModeTagDeepClean MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x4000, MTRRVCCleanModeModeTagVacuum MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x4001, MTRRVCCleanModeModeTagMop MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x4002, @@ -18627,6 +18677,16 @@ typedef NS_OPTIONS(uint32_t, MTRRefrigeratorAlarmAlarmBitmap) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTRDishwasherModeModeTag) { + MTRDishwasherModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRDishwasherModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRDishwasherModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRDishwasherModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRDishwasherModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRDishwasherModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRDishwasherModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRDishwasherModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRDishwasherModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRDishwasherModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRDishwasherModeModeTagNormal MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTRDishwasherModeModeTagHeavy MTR_PROVISIONALLY_AVAILABLE = 0x4001, MTRDishwasherModeModeTagLight MTR_PROVISIONALLY_AVAILABLE = 0x4002, @@ -18713,6 +18773,16 @@ typedef NS_OPTIONS(uint32_t, MTRDishwasherAlarmFeature) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTRMicrowaveOvenModeModeTag) { + MTRMicrowaveOvenModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRMicrowaveOvenModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRMicrowaveOvenModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRMicrowaveOvenModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRMicrowaveOvenModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRMicrowaveOvenModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRMicrowaveOvenModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRMicrowaveOvenModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRMicrowaveOvenModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRMicrowaveOvenModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRMicrowaveOvenModeModeTagNormal MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTRMicrowaveOvenModeModeTagDefrost MTR_PROVISIONALLY_AVAILABLE = 0x4001, } MTR_PROVISIONALLY_AVAILABLE; @@ -18742,6 +18812,10 @@ typedef NS_ENUM(uint8_t, MTROperationalState) { } MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)); typedef NS_ENUM(uint8_t, MTRRVCOperationalStateErrorState) { + MTRRVCOperationalStateErrorStateNoError MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRRVCOperationalStateErrorStateUnableToStartOrResume MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRRVCOperationalStateErrorStateUnableToCompleteOperation MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRRVCOperationalStateErrorStateCommandInvalidInState MTR_PROVISIONALLY_AVAILABLE = 0x03, MTRRVCOperationalStateErrorStateFailedToFindChargingDock MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x40, MTRRVCOperationalStateErrorStateStuck MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x41, MTRRVCOperationalStateErrorStateDustBinMissing MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x42, @@ -18753,6 +18827,10 @@ typedef NS_ENUM(uint8_t, MTRRVCOperationalStateErrorState) { } MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)); typedef NS_ENUM(uint8_t, MTRRVCOperationalStateOperationalState) { + MTRRVCOperationalStateOperationalStateStopped MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRRVCOperationalStateOperationalStateRunning MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRRVCOperationalStateOperationalStatePaused MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRRVCOperationalStateOperationalStateError MTR_PROVISIONALLY_AVAILABLE = 0x03, MTRRVCOperationalStateOperationalStateSeekingCharger MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x40, MTRRVCOperationalStateOperationalStateCharging MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x41, MTRRVCOperationalStateOperationalStateDocked MTR_AVAILABLE(ios(17.4), macos(14.4), watchos(10.4), tvos(17.4)) = 0x42, @@ -19202,6 +19280,16 @@ typedef NS_OPTIONS(uint32_t, MTRPowerTopologyFeature) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTREnergyEVSEModeModeTag) { + MTREnergyEVSEModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTREnergyEVSEModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTREnergyEVSEModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTREnergyEVSEModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTREnergyEVSEModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTREnergyEVSEModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTREnergyEVSEModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTREnergyEVSEModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTREnergyEVSEModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTREnergyEVSEModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTREnergyEVSEModeModeTagManual MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTREnergyEVSEModeModeTagTimeOfUse MTR_PROVISIONALLY_AVAILABLE = 0x4001, MTREnergyEVSEModeModeTagSolarCharging MTR_PROVISIONALLY_AVAILABLE = 0x4002, @@ -19212,6 +19300,16 @@ typedef NS_OPTIONS(uint32_t, MTREnergyEVSEModeFeature) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTRWaterHeaterModeModeTag) { + MTRWaterHeaterModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRWaterHeaterModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRWaterHeaterModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRWaterHeaterModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRWaterHeaterModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRWaterHeaterModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRWaterHeaterModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRWaterHeaterModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRWaterHeaterModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRWaterHeaterModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRWaterHeaterModeModeTagOff MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTRWaterHeaterModeModeTagManual MTR_PROVISIONALLY_AVAILABLE = 0x4001, MTRWaterHeaterModeModeTagTimed MTR_PROVISIONALLY_AVAILABLE = 0x4002, @@ -19222,6 +19320,16 @@ typedef NS_OPTIONS(uint32_t, MTRWaterHeaterModeFeature) { } MTR_PROVISIONALLY_AVAILABLE; typedef NS_ENUM(uint16_t, MTRDeviceEnergyManagementModeModeTag) { + MTRDeviceEnergyManagementModeModeTagAuto MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRDeviceEnergyManagementModeModeTagQuick MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRDeviceEnergyManagementModeModeTagQuiet MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRDeviceEnergyManagementModeModeTagLowNoise MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRDeviceEnergyManagementModeModeTagLowEnergy MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRDeviceEnergyManagementModeModeTagVacation MTR_PROVISIONALLY_AVAILABLE = 0x05, + MTRDeviceEnergyManagementModeModeTagMin MTR_PROVISIONALLY_AVAILABLE = 0x06, + MTRDeviceEnergyManagementModeModeTagMax MTR_PROVISIONALLY_AVAILABLE = 0x07, + MTRDeviceEnergyManagementModeModeTagNight MTR_PROVISIONALLY_AVAILABLE = 0x08, + MTRDeviceEnergyManagementModeModeTagDay MTR_PROVISIONALLY_AVAILABLE = 0x09, MTRDeviceEnergyManagementModeModeTagNoOptimization MTR_PROVISIONALLY_AVAILABLE = 0x4000, MTRDeviceEnergyManagementModeModeTagDeviceOptimization MTR_PROVISIONALLY_AVAILABLE = 0x4001, MTRDeviceEnergyManagementModeModeTagLocalOptimization MTR_PROVISIONALLY_AVAILABLE = 0x4002, diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h index 90d399b8e6fde7..2bde6623e6af84 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h @@ -169,20 +169,6 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(detail::DegradationDire return EnumType::kUnknownEnumValue; } } -static auto __attribute__((unused)) EnsureKnownEnumValue(detail::ErrorStateEnum val) -{ - using EnumType = detail::ErrorStateEnum; - switch (val) - { - case EnumType::kNoError: - case EnumType::kUnableToStartOrResume: - case EnumType::kUnableToCompleteOperation: - case EnumType::kCommandInvalidInState: - return val; - default: - return EnumType::kUnknownEnumValue; - } -} static auto __attribute__((unused)) EnsureKnownEnumValue(Globals::FloorSurfaceTag val) { using EnumType = Globals::FloorSurfaceTag; @@ -351,20 +337,6 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(detail::MeasurementUnit return EnumType::kUnknownEnumValue; } } -static auto __attribute__((unused)) EnsureKnownEnumValue(detail::OperationalStateEnum val) -{ - using EnumType = detail::OperationalStateEnum; - switch (val) - { - case EnumType::kStopped: - case EnumType::kRunning: - case EnumType::kPaused: - case EnumType::kError: - return val; - default: - return EnumType::kUnknownEnumValue; - } -} static auto __attribute__((unused)) EnsureKnownEnumValue(Globals::PositionTag val) { using EnumType = Globals::PositionTag; @@ -1651,11 +1623,50 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(Timer::TimerStatusEnum } } +static auto __attribute__((unused)) EnsureKnownEnumValue(OvenCavityOperationalState::ErrorStateEnum val) +{ + using EnumType = OvenCavityOperationalState::ErrorStateEnum; + switch (val) + { + case EnumType::kNoError: + case EnumType::kUnableToStartOrResume: + case EnumType::kUnableToCompleteOperation: + case EnumType::kCommandInvalidInState: + return val; + default: + return EnumType::kUnknownEnumValue; + } +} +static auto __attribute__((unused)) EnsureKnownEnumValue(OvenCavityOperationalState::OperationalStateEnum val) +{ + using EnumType = OvenCavityOperationalState::OperationalStateEnum; + switch (val) + { + case EnumType::kStopped: + case EnumType::kRunning: + case EnumType::kPaused: + case EnumType::kError: + return val; + default: + return EnumType::kUnknownEnumValue; + } +} + static auto __attribute__((unused)) EnsureKnownEnumValue(OvenMode::ModeTag val) { using EnumType = OvenMode::ModeTag; switch (val) { + case EnumType::kAuto: + case EnumType::kQuick: + case EnumType::kQuiet: + case EnumType::kLowNoise: + case EnumType::kLowEnergy: + case EnumType::kVacation: + case EnumType::kMin: + case EnumType::kMax: + case EnumType::kNight: + case EnumType::kDay: case EnumType::kBake: case EnumType::kConvection: case EnumType::kGrill: @@ -1808,6 +1819,16 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(MicrowaveOvenMode::Mode using EnumType = MicrowaveOvenMode::ModeTag; switch (val) { + case EnumType::kAuto: + case EnumType::kQuick: + case EnumType::kQuiet: + case EnumType::kLowNoise: + case EnumType::kLowEnergy: + case EnumType::kVacation: + case EnumType::kMin: + case EnumType::kMax: + case EnumType::kNight: + case EnumType::kDay: case EnumType::kNormal: case EnumType::kDefrost: return val; @@ -1816,6 +1837,35 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(MicrowaveOvenMode::Mode } } +static auto __attribute__((unused)) EnsureKnownEnumValue(OperationalState::ErrorStateEnum val) +{ + using EnumType = OperationalState::ErrorStateEnum; + switch (val) + { + case EnumType::kNoError: + case EnumType::kUnableToStartOrResume: + case EnumType::kUnableToCompleteOperation: + case EnumType::kCommandInvalidInState: + return val; + default: + return EnumType::kUnknownEnumValue; + } +} +static auto __attribute__((unused)) EnsureKnownEnumValue(OperationalState::OperationalStateEnum val) +{ + using EnumType = OperationalState::OperationalStateEnum; + switch (val) + { + case EnumType::kStopped: + case EnumType::kRunning: + case EnumType::kPaused: + case EnumType::kError: + return val; + default: + return EnumType::kUnknownEnumValue; + } +} + static auto __attribute__((unused)) EnsureKnownEnumValue(ValveConfigurationAndControl::StatusCodeEnum val) { using EnumType = ValveConfigurationAndControl::StatusCodeEnum; diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index b1a50bcd44a722..627b5808fa7931 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -53,20 +53,6 @@ enum class DegradationDirectionEnum : uint8_t kUnknownEnumValue = 2, }; -// Enum for ErrorStateEnum -enum class ErrorStateEnum : uint8_t -{ - kNoError = 0x00, - kUnableToStartOrResume = 0x01, - kUnableToCompleteOperation = 0x02, - kCommandInvalidInState = 0x03, - // All received enum values that are not listed above will be mapped - // to kUnknownEnumValue. This is a helper enum value that should only - // be used by code to process how it handles receiving and unknown - // enum value. This specific should never be transmitted. - kUnknownEnumValue = 4, -}; - // Enum for LevelValueEnum enum class LevelValueEnum : uint8_t { @@ -138,20 +124,6 @@ enum class MeasurementUnitEnum : uint8_t kUnknownEnumValue = 8, }; -// Enum for OperationalStateEnum -enum class OperationalStateEnum : uint8_t -{ - kStopped = 0x00, - kRunning = 0x01, - kPaused = 0x02, - kError = 0x03, - // All received enum values that are not listed above will be mapped - // to kUnknownEnumValue. This is a helper enum value that should only - // be used by code to process how it handles receiving and unknown - // enum value. This specific should never be transmitted. - kUnknownEnumValue = 4, -}; - // Enum for ProductIdentifierTypeEnum enum class ProductIdentifierTypeEnum : uint8_t { @@ -1992,9 +1964,33 @@ enum class Feature : uint32_t namespace OvenCavityOperationalState { -using ErrorStateEnum = Clusters::detail::ErrorStateEnum; +// Enum for ErrorStateEnum +enum class ErrorStateEnum : uint8_t +{ + kNoError = 0x00, + kUnableToStartOrResume = 0x01, + kUnableToCompleteOperation = 0x02, + kCommandInvalidInState = 0x03, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 4, +}; -using OperationalStateEnum = Clusters::detail::OperationalStateEnum; +// Enum for OperationalStateEnum +enum class OperationalStateEnum : uint8_t +{ + kStopped = 0x00, + kRunning = 0x01, + kPaused = 0x02, + kError = 0x03, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 4, +}; } // namespace OvenCavityOperationalState namespace OvenMode { @@ -2002,6 +1998,16 @@ namespace OvenMode { // Enum for ModeTag enum class ModeTag : uint16_t { + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, kBake = 0x4000, kConvection = 0x4001, kGrill = 0x4002, @@ -2015,7 +2021,7 @@ enum class ModeTag : uint16_t // to kUnknownEnumValue. This is a helper enum value that should only // be used by code to process how it handles receiving and unknown // enum value. This specific should never be transmitted. - kUnknownEnumValue = 0, + kUnknownEnumValue = 10, }; // Bitmap for Feature @@ -2056,10 +2062,20 @@ namespace LaundryWasherMode { // Enum for ModeTag enum class ModeTag : uint16_t { - kNormal = 0x4000, - kDelicate = 0x4001, - kHeavy = 0x4002, - kWhites = 0x4003, + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, + kNormal = 0x4000, + kDelicate = 0x4001, + kHeavy = 0x4002, + kWhites = 0x4003, // kUnknownEnumValue intentionally not defined. This enum never goes // through DataModel::Decode, likely because it is a part of a derived // cluster. As a result having kUnknownEnumValue in this enum is error @@ -2079,6 +2095,16 @@ namespace RefrigeratorAndTemperatureControlledCabinetMode { // Enum for ModeTag enum class ModeTag : uint16_t { + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, kRapidCool = 0x4000, kRapidFreeze = 0x4001, // kUnknownEnumValue intentionally not defined. This enum never goes @@ -2124,9 +2150,19 @@ namespace RvcRunMode { // Enum for ModeTag enum class ModeTag : uint16_t { - kIdle = 0x4000, - kCleaning = 0x4001, - kMapping = 0x4002, + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, + kIdle = 0x4000, + kCleaning = 0x4001, + kMapping = 0x4002, // kUnknownEnumValue intentionally not defined. This enum never goes // through DataModel::Decode, likely because it is a part of a derived // cluster. As a result having kUnknownEnumValue in this enum is error @@ -2164,6 +2200,16 @@ namespace RvcCleanMode { // Enum for ModeTag enum class ModeTag : uint16_t { + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, kDeepClean = 0x4000, kVacuum = 0x4001, kMop = 0x4002, @@ -2217,9 +2263,19 @@ namespace DishwasherMode { // Enum for ModeTag enum class ModeTag : uint16_t { - kNormal = 0x4000, - kHeavy = 0x4001, - kLight = 0x4002, + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, + kNormal = 0x4000, + kHeavy = 0x4001, + kLight = 0x4002, // kUnknownEnumValue intentionally not defined. This enum never goes // through DataModel::Decode, likely because it is a part of a derived // cluster. As a result having kUnknownEnumValue in this enum is error @@ -2381,13 +2437,23 @@ namespace MicrowaveOvenMode { // Enum for ModeTag enum class ModeTag : uint16_t { - kNormal = 0x4000, - kDefrost = 0x4001, + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, + kNormal = 0x4000, + kDefrost = 0x4001, // All received enum values that are not listed above will be mapped // to kUnknownEnumValue. This is a helper enum value that should only // be used by code to process how it handles receiving and unknown // enum value. This specific should never be transmitted. - kUnknownEnumValue = 0, + kUnknownEnumValue = 10, }; // Bitmap for Feature @@ -2410,9 +2476,33 @@ enum class Feature : uint32_t namespace OperationalState { -using ErrorStateEnum = Clusters::detail::ErrorStateEnum; +// Enum for ErrorStateEnum +enum class ErrorStateEnum : uint8_t +{ + kNoError = 0x00, + kUnableToStartOrResume = 0x01, + kUnableToCompleteOperation = 0x02, + kCommandInvalidInState = 0x03, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 4, +}; -using OperationalStateEnum = Clusters::detail::OperationalStateEnum; +// Enum for OperationalStateEnum +enum class OperationalStateEnum : uint8_t +{ + kStopped = 0x00, + kRunning = 0x01, + kPaused = 0x02, + kError = 0x03, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 4, +}; } // namespace OperationalState namespace RvcOperationalState { @@ -2420,14 +2510,18 @@ namespace RvcOperationalState { // Enum for ErrorStateEnum enum class ErrorStateEnum : uint8_t { - kFailedToFindChargingDock = 0x40, - kStuck = 0x41, - kDustBinMissing = 0x42, - kDustBinFull = 0x43, - kWaterTankEmpty = 0x44, - kWaterTankMissing = 0x45, - kWaterTankLidOpen = 0x46, - kMopCleaningPadMissing = 0x47, + kNoError = 0x00, + kUnableToStartOrResume = 0x01, + kUnableToCompleteOperation = 0x02, + kCommandInvalidInState = 0x03, + kFailedToFindChargingDock = 0x40, + kStuck = 0x41, + kDustBinMissing = 0x42, + kDustBinFull = 0x43, + kWaterTankEmpty = 0x44, + kWaterTankMissing = 0x45, + kWaterTankLidOpen = 0x46, + kMopCleaningPadMissing = 0x47, // kUnknownEnumValue intentionally not defined. This enum never goes // through DataModel::Decode, likely because it is a part of a derived // cluster. As a result having kUnknownEnumValue in this enum is error @@ -2438,6 +2532,10 @@ enum class ErrorStateEnum : uint8_t // Enum for OperationalStateEnum enum class OperationalStateEnum : uint8_t { + kStopped = 0x00, + kRunning = 0x01, + kPaused = 0x02, + kError = 0x03, kSeekingCharger = 0x40, kCharging = 0x41, kDocked = 0x42, @@ -3092,6 +3190,16 @@ namespace EnergyEvseMode { // Enum for ModeTag enum class ModeTag : uint16_t { + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, kManual = 0x4000, kTimeOfUse = 0x4001, kSolarCharging = 0x4002, @@ -3114,9 +3222,19 @@ namespace WaterHeaterMode { // Enum for ModeTag enum class ModeTag : uint16_t { - kOff = 0x4000, - kManual = 0x4001, - kTimed = 0x4002, + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, + kOff = 0x4000, + kManual = 0x4001, + kTimed = 0x4002, // kUnknownEnumValue intentionally not defined. This enum never goes // through DataModel::Decode, likely because it is a part of a derived // cluster. As a result having kUnknownEnumValue in this enum is error @@ -3136,6 +3254,16 @@ namespace DeviceEnergyManagementMode { // Enum for ModeTag enum class ModeTag : uint16_t { + kAuto = 0x00, + kQuick = 0x01, + kQuiet = 0x02, + kLowNoise = 0x03, + kLowEnergy = 0x04, + kVacation = 0x05, + kMin = 0x06, + kMax = 0x07, + kNight = 0x08, + kDay = 0x09, kNoOptimization = 0x4000, kDeviceOptimization = 0x4001, kLocalOptimization = 0x4002,