Skip to content

Commit

Permalink
Deprecating chip_server_cluster_attributes and if_basic_global_respon…
Browse files Browse the repository at this point in the history
…se (project-chip#25693)

* Replacing a state helper such as chip_server_cluster_attributes with a stateless helper zcl_attributes_server such that we can get deprecate the stateful helpers one by one. Also deprecating if_basic_global_response with if_basic_attribute.
The generation diff that is being seen here pertains to generating all server attributes for the corresponding client clusters instead of hacking the server attributes in the zap file. The hack here referes to how server attributes being generated are those attributes which have been enabled without the corresponding server cluster enabled. To avoid this hack, the code now generates all server attributes for the corresponding client cluster. This seems to be in sync with the non java/python templates in terms of generation.
Another generation diff seen here is that there is no basic global response for certain attributes which refer to atomic types such as group_id and vendor_id. I am not sure why that is the case. These attributes seem basic enough.
Updating the zap being used
- Updating min zap version to 3.16 instead of 3.17
- Github: ZAP#898

* Updating min zap version to 2023-03-22
Github: ZAP#898

* Deleting the file which was deleted in the main chip repo. Added by mistake during rebase
Github: ZAP#898

* Regen after rebase
Github: ZAP#898

* Making attributes of type vendor_id to be treated as basic types instead of an exception like it used to be in the past.
Updating the min zap version
Github: ZAP#898

* update matter idl template gen logic

* ZAP regen all

* Remove extra newline before commands in server clusters

* Adjust whitespace a bit more

* Another whitespace alignment update

* minor whitespace adjustment in zapt comment

* Remove compatibility workaround for codegen in java - zap should not treat things differently anymore

* Make android chip-tool compile

---------

Co-authored-by: Andrei Litvin <andy314@gmail.com>
  • Loading branch information
brdandu and andy31415 authored Mar 23, 2023
1 parent 82f4108 commit 47c3fe9
Show file tree
Hide file tree
Showing 41 changed files with 13,056 additions and 1,583 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ class BasicClientFragment : Fragment() {
}

private suspend fun sendReadVendorIDAttribute() {
getBasicClusterForDevice().readVendorIDAttribute(object : ChipClusters.BasicInformationCluster.VendorIDAttributeCallback {
getBasicClusterForDevice().readVendorIDAttribute(object : ChipClusters.IntegerAttributeCallback {
override fun onSuccess(value: Int) {
Log.i(TAG,"[Read Success] VendorID: $value")
showMessage("[Read Success] VendorID: $value")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1398,6 +1398,15 @@ client cluster OccupancySensing = 1030 {
readonly attribute OccupancyBitmap occupancy = 0;
readonly attribute OccupancySensorTypeEnum occupancySensorType = 1;
readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2;
attribute access(write: manage) int16u PIROccupiedToUnoccupiedDelay = 16;
attribute access(write: manage) int16u PIRUnoccupiedToOccupiedDelay = 17;
attribute access(write: manage) int8u PIRUnoccupiedToOccupiedThreshold = 18;
attribute access(write: manage) int16u ultrasonicOccupiedToUnoccupiedDelay = 32;
attribute access(write: manage) int16u ultrasonicUnoccupiedToOccupiedDelay = 33;
attribute access(write: manage) int8u ultrasonicUnoccupiedToOccupiedThreshold = 34;
attribute access(write: manage) int16u physicalContactOccupiedToUnoccupiedDelay = 48;
attribute access(write: manage) int16u physicalContactUnoccupiedToOccupiedDelay = 49;
attribute access(write: manage) int8u physicalContactUnoccupiedToOccupiedThreshold = 50;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1264,6 +1264,15 @@ client cluster OccupancySensing = 1030 {
readonly attribute OccupancyBitmap occupancy = 0;
readonly attribute OccupancySensorTypeEnum occupancySensorType = 1;
readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2;
attribute access(write: manage) int16u PIROccupiedToUnoccupiedDelay = 16;
attribute access(write: manage) int16u PIRUnoccupiedToOccupiedDelay = 17;
attribute access(write: manage) int8u PIRUnoccupiedToOccupiedThreshold = 18;
attribute access(write: manage) int16u ultrasonicOccupiedToUnoccupiedDelay = 32;
attribute access(write: manage) int16u ultrasonicUnoccupiedToOccupiedDelay = 33;
attribute access(write: manage) int8u ultrasonicUnoccupiedToOccupiedThreshold = 34;
attribute access(write: manage) int16u physicalContactOccupiedToUnoccupiedDelay = 48;
attribute access(write: manage) int16u physicalContactUnoccupiedToOccupiedDelay = 49;
attribute access(write: manage) int8u physicalContactUnoccupiedToOccupiedThreshold = 50;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1296,10 +1296,54 @@ client cluster Thermostat = 513 {
}

readonly attribute nullable int16s localTemperature = 0;
readonly attribute nullable int16s outdoorTemperature = 1;
readonly attribute bitmap8 occupancy = 2;
readonly attribute int16s absMinHeatSetpointLimit = 3;
readonly attribute int16s absMaxHeatSetpointLimit = 4;
readonly attribute int16s absMinCoolSetpointLimit = 5;
readonly attribute int16s absMaxCoolSetpointLimit = 6;
readonly attribute int8u PICoolingDemand = 7;
readonly attribute int8u PIHeatingDemand = 8;
attribute access(write: manage) bitmap8 HVACSystemTypeConfiguration = 9;
attribute access(write: manage) int8s localTemperatureCalibration = 16;
attribute int16s occupiedCoolingSetpoint = 17;
attribute int16s occupiedHeatingSetpoint = 18;
attribute int16s unoccupiedCoolingSetpoint = 19;
attribute int16s unoccupiedHeatingSetpoint = 20;
attribute access(write: manage) int16s minHeatSetpointLimit = 21;
attribute access(write: manage) int16s maxHeatSetpointLimit = 22;
attribute access(write: manage) int16s minCoolSetpointLimit = 23;
attribute access(write: manage) int16s maxCoolSetpointLimit = 24;
attribute access(write: manage) int8s minSetpointDeadBand = 25;
attribute access(write: manage) bitmap8 remoteSensing = 26;
attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27;
attribute access(write: manage) enum8 systemMode = 28;
readonly attribute enum8 thermostatRunningMode = 30;
readonly attribute enum8 startOfWeek = 32;
readonly attribute int8u numberOfWeeklyTransitions = 33;
readonly attribute int8u numberOfDailyTransitions = 34;
attribute access(write: manage) enum8 temperatureSetpointHold = 35;
attribute access(write: manage) nullable int16u temperatureSetpointHoldDuration = 36;
attribute access(write: manage) bitmap8 thermostatProgrammingOperationMode = 37;
readonly attribute bitmap16 thermostatRunningState = 41;
readonly attribute enum8 setpointChangeSource = 48;
readonly attribute nullable int16s setpointChangeAmount = 49;
readonly attribute epoch_s setpointChangeSourceTimestamp = 50;
attribute access(write: manage) nullable int8u occupiedSetback = 52;
readonly attribute nullable int8u occupiedSetbackMin = 53;
readonly attribute nullable int8u occupiedSetbackMax = 54;
attribute access(write: manage) nullable int8u unoccupiedSetback = 55;
readonly attribute nullable int8u unoccupiedSetbackMin = 56;
readonly attribute nullable int8u unoccupiedSetbackMax = 57;
attribute access(write: manage) int8u emergencyHeatDelta = 58;
attribute access(write: manage) enum8 ACType = 64;
attribute access(write: manage) int16u ACCapacity = 65;
attribute access(write: manage) enum8 ACRefrigerantType = 66;
attribute access(write: manage) enum8 ACCompressorType = 67;
attribute access(write: manage) bitmap32 ACErrorCode = 68;
attribute access(write: manage) enum8 ACLouverPosition = 69;
readonly attribute nullable int16s ACCoilTemperature = 70;
attribute access(write: manage) enum8 ACCapacityformat = 71;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,10 @@ client cluster OnOff = 6 {
}

readonly attribute boolean onOff = 0;
readonly attribute boolean globalSceneControl = 16384;
attribute int16u onTime = 16385;
attribute int16u offWaitTime = 16386;
attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
31 changes: 31 additions & 0 deletions examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1240,6 +1240,17 @@ client cluster FanControl = 514 {
kNaturalWind = 0x2;
}

attribute FanModeType fanMode = 0;
attribute FanModeSequenceType fanModeSequence = 1;
attribute nullable int8u percentSetting = 2;
readonly attribute int8u percentCurrent = 3;
readonly attribute int8u speedMax = 4;
attribute nullable int8u speedSetting = 5;
readonly attribute int8u speedCurrent = 6;
readonly attribute bitmap8 rockSupport = 7;
attribute bitmap8 rockSetting = 8;
readonly attribute bitmap8 windSupport = 9;
attribute bitmap8 windSetting = 10;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand All @@ -1260,6 +1271,10 @@ server cluster ThermostatUserInterfaceConfiguration = 516 {
}

client cluster TemperatureMeasurement = 1026 {
readonly attribute nullable int16s measuredValue = 0;
readonly attribute nullable int16s minMeasuredValue = 1;
readonly attribute nullable int16s maxMeasuredValue = 2;
readonly attribute int16u tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand All @@ -1269,6 +1284,10 @@ client cluster TemperatureMeasurement = 1026 {
}

client cluster RelativeHumidityMeasurement = 1029 {
readonly attribute nullable int16u measuredValue = 0;
readonly attribute nullable int16u minMeasuredValue = 1;
readonly attribute nullable int16u maxMeasuredValue = 2;
readonly attribute int16u tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand All @@ -1295,6 +1314,18 @@ client cluster OccupancySensing = 1030 {
kPhysicalContact = 0x4;
}

readonly attribute OccupancyBitmap occupancy = 0;
readonly attribute OccupancySensorTypeEnum occupancySensorType = 1;
readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2;
attribute access(write: manage) int16u PIROccupiedToUnoccupiedDelay = 16;
attribute access(write: manage) int16u PIRUnoccupiedToOccupiedDelay = 17;
attribute access(write: manage) int8u PIRUnoccupiedToOccupiedThreshold = 18;
attribute access(write: manage) int16u ultrasonicOccupiedToUnoccupiedDelay = 32;
attribute access(write: manage) int16u ultrasonicUnoccupiedToOccupiedDelay = 33;
attribute access(write: manage) int8u ultrasonicUnoccupiedToOccupiedThreshold = 34;
attribute access(write: manage) int16u physicalContactOccupiedToUnoccupiedDelay = 48;
attribute access(write: manage) int16u physicalContactUnoccupiedToOccupiedDelay = 49;
attribute access(write: manage) int8u physicalContactUnoccupiedToOccupiedThreshold = 50;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ client cluster Scenes = 5 {
readonly attribute group_id currentGroup = 2;
readonly attribute boolean sceneValid = 3;
readonly attribute bitmap8 nameSupport = 4;
readonly attribute nullable node_id lastConfiguredBy = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down Expand Up @@ -1668,10 +1669,41 @@ client cluster ColorControl = 768 {
readonly attribute int16u remainingTime = 2;
readonly attribute int16u currentX = 3;
readonly attribute int16u currentY = 4;
readonly attribute enum8 driftCompensation = 5;
readonly attribute char_string<254> compensationText = 6;
readonly attribute int16u colorTemperatureMireds = 7;
readonly attribute enum8 colorMode = 8;
attribute bitmap8 options = 15;
readonly attribute nullable int8u numberOfPrimaries = 16;
readonly attribute int16u primary1X = 17;
readonly attribute int16u primary1Y = 18;
readonly attribute nullable int8u primary1Intensity = 19;
readonly attribute int16u primary2X = 21;
readonly attribute int16u primary2Y = 22;
readonly attribute nullable int8u primary2Intensity = 23;
readonly attribute int16u primary3X = 25;
readonly attribute int16u primary3Y = 26;
readonly attribute nullable int8u primary3Intensity = 27;
readonly attribute int16u primary4X = 32;
readonly attribute int16u primary4Y = 33;
readonly attribute nullable int8u primary4Intensity = 34;
readonly attribute int16u primary5X = 36;
readonly attribute int16u primary5Y = 37;
readonly attribute nullable int8u primary5Intensity = 38;
readonly attribute int16u primary6X = 40;
readonly attribute int16u primary6Y = 41;
readonly attribute nullable int8u primary6Intensity = 42;
attribute access(write: manage) int16u whitePointX = 48;
attribute access(write: manage) int16u whitePointY = 49;
attribute access(write: manage) int16u colorPointRX = 50;
attribute access(write: manage) int16u colorPointRY = 51;
attribute access(write: manage) nullable int8u colorPointRIntensity = 52;
attribute access(write: manage) int16u colorPointGX = 54;
attribute access(write: manage) int16u colorPointGY = 55;
attribute access(write: manage) nullable int8u colorPointGIntensity = 56;
attribute access(write: manage) int16u colorPointBX = 58;
attribute access(write: manage) int16u colorPointBY = 59;
attribute access(write: manage) nullable int8u colorPointBIntensity = 60;
readonly attribute int16u enhancedCurrentHue = 16384;
readonly attribute enum8 enhancedColorMode = 16385;
readonly attribute int8u colorLoopActive = 16386;
Expand Down
2 changes: 2 additions & 0 deletions examples/placeholder/linux/apps/app1/config.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1673,6 +1673,7 @@ client cluster OperationalCredentials = 62 {
fabric_idx fabricIndex = 254;
}

readonly attribute access(read: administer) NOCStruct NOCs[] = 0;
readonly attribute FabricDescriptorStruct fabrics[] = 1;
readonly attribute int8u supportedFabrics = 2;
readonly attribute int8u commissionedFabrics = 3;
Expand Down Expand Up @@ -1906,6 +1907,7 @@ client cluster ModeSelect = 80 {
readonly attribute ModeOptionStruct supportedModes[] = 2;
readonly attribute int8u currentMode = 3;
attribute nullable int8u startUpMode = 4;
attribute nullable int8u onMode = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
2 changes: 2 additions & 0 deletions examples/placeholder/linux/apps/app2/config.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1642,6 +1642,7 @@ client cluster OperationalCredentials = 62 {
fabric_idx fabricIndex = 254;
}

readonly attribute access(read: administer) NOCStruct NOCs[] = 0;
readonly attribute FabricDescriptorStruct fabrics[] = 1;
readonly attribute int8u supportedFabrics = 2;
readonly attribute int8u commissionedFabrics = 3;
Expand Down Expand Up @@ -1875,6 +1876,7 @@ client cluster ModeSelect = 80 {
readonly attribute ModeOptionStruct supportedModes[] = 2;
readonly attribute int8u currentMode = 3;
attribute nullable int8u startUpMode = 4;
attribute nullable int8u onMode = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
12 changes: 12 additions & 0 deletions examples/pump-app/pump-common/pump-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1297,6 +1297,18 @@ client cluster OccupancySensing = 1030 {
kPhysicalContact = 0x4;
}

readonly attribute OccupancyBitmap occupancy = 0;
readonly attribute OccupancySensorTypeEnum occupancySensorType = 1;
readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2;
attribute access(write: manage) int16u PIROccupiedToUnoccupiedDelay = 16;
attribute access(write: manage) int16u PIRUnoccupiedToOccupiedDelay = 17;
attribute access(write: manage) int8u PIRUnoccupiedToOccupiedThreshold = 18;
attribute access(write: manage) int16u ultrasonicOccupiedToUnoccupiedDelay = 32;
attribute access(write: manage) int16u ultrasonicUnoccupiedToOccupiedDelay = 33;
attribute access(write: manage) int8u ultrasonicUnoccupiedToOccupiedThreshold = 34;
attribute access(write: manage) int16u physicalContactOccupiedToUnoccupiedDelay = 48;
attribute access(write: manage) int16u physicalContactUnoccupiedToOccupiedDelay = 49;
attribute access(write: manage) int8u physicalContactUnoccupiedToOccupiedThreshold = 50;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ client cluster OnOff = 6 {
}

readonly attribute boolean onOff = 0;
readonly attribute boolean globalSceneControl = 16384;
attribute int16u onTime = 16385;
attribute int16u offWaitTime = 16386;
attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down Expand Up @@ -1105,10 +1109,26 @@ client cluster PumpConfigurationAndControl = 512 {
readonly attribute nullable int16s maxPressure = 0;
readonly attribute nullable int16u maxSpeed = 1;
readonly attribute nullable int16u maxFlow = 2;
readonly attribute nullable int16s minConstPressure = 3;
readonly attribute nullable int16s maxConstPressure = 4;
readonly attribute nullable int16s minCompPressure = 5;
readonly attribute nullable int16s maxCompPressure = 6;
readonly attribute nullable int16u minConstSpeed = 7;
readonly attribute nullable int16u maxConstSpeed = 8;
readonly attribute nullable int16u minConstFlow = 9;
readonly attribute nullable int16u maxConstFlow = 10;
readonly attribute nullable int16s minConstTemp = 11;
readonly attribute nullable int16s maxConstTemp = 12;
readonly attribute PumpStatusBitmap pumpStatus = 16;
readonly attribute OperationModeEnum effectiveOperationMode = 17;
readonly attribute ControlModeEnum effectiveControlMode = 18;
readonly attribute nullable int16s capacity = 19;
readonly attribute nullable int16u speed = 20;
attribute access(write: manage) nullable int24u lifetimeRunningHours = 21;
readonly attribute nullable int24u power = 22;
attribute access(write: manage) nullable int32u lifetimeEnergyConsumed = 23;
attribute access(write: manage) OperationModeEnum operationMode = 32;
attribute access(write: manage) ControlModeEnum controlMode = 33;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand All @@ -1121,6 +1141,7 @@ client cluster TemperatureMeasurement = 1026 {
readonly attribute nullable int16s measuredValue = 0;
readonly attribute nullable int16s minMeasuredValue = 1;
readonly attribute nullable int16s maxMeasuredValue = 2;
readonly attribute int16u tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand All @@ -1137,6 +1158,12 @@ client cluster PressureMeasurement = 1027 {
readonly attribute nullable int16s measuredValue = 0;
readonly attribute nullable int16s minMeasuredValue = 1;
readonly attribute nullable int16s maxMeasuredValue = 2;
readonly attribute int16u tolerance = 3;
readonly attribute nullable int16s scaledValue = 16;
readonly attribute nullable int16s minScaledValue = 17;
readonly attribute nullable int16s maxScaledValue = 18;
readonly attribute int16u scaledTolerance = 19;
readonly attribute int8s scale = 20;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand All @@ -1149,6 +1176,7 @@ client cluster FlowMeasurement = 1028 {
readonly attribute nullable int16u measuredValue = 0;
readonly attribute nullable int16u minMeasuredValue = 1;
readonly attribute nullable int16u maxMeasuredValue = 2;
readonly attribute int16u tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
Expand Down
Loading

0 comments on commit 47c3fe9

Please sign in to comment.