From 0f468cecafe92ddc5807cd57633d3284dafa62e7 Mon Sep 17 00:00:00 2001 From: Carol Yang Date: Wed, 15 Dec 2021 06:57:52 -0800 Subject: [PATCH] Align OTA Provider Cluster with spec (#13019) --- .../all-clusters-common/all-clusters-app.zap | 54 +++---- .../lighting-common/lighting-app.zap | 13 +- .../ota-provider-common/ota-provider-app.zap | 17 +-- .../ota-requestor-app.zap | 10 +- .../thermostat-common/thermostat.zap | 32 ++--- examples/tv-app/tv-common/tv-app.zap | 57 +------- .../tv-casting-common/tv-casting-app.zap | 59 ++------ .../zcl/data-model/chip/chip-ota.xml | 30 ++-- .../data_model/controller-clusters.zap | 10 +- .../python/chip/clusters/CHIPClusters.py | 8 +- .../python/chip/clusters/Objects.py | 64 ++++----- .../zap-generated/CHIPCommandPayloadsObjc.h | 24 ++-- .../zap-generated/CHIPCommandPayloadsObjc.mm | 46 +++--- .../app-common/zap-generated/callback.h | 24 ++-- .../zap-generated/cluster-objects.cpp | 98 ++++++------- .../zap-generated/cluster-objects.h | 132 +++++++++--------- .../app-common/zap-generated/command-id.h | 8 +- .../app-common/zap-generated/ids/Commands.h | 16 +-- .../zap-generated/cluster/Commands.h | 8 +- 19 files changed, 302 insertions(+), 408 deletions(-) diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap index 8c4384de9db207..8a9a1208d23873 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap @@ -1369,7 +1369,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 1, @@ -1377,11 +1377,11 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ @@ -1412,15 +1412,15 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", - "incoming": 1, + "incoming": 0, "outgoing": 1 }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -8672,14 +8672,6 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "NotifyUpdateApplied", "code": 2, "mfgCode": null, "source": "client", @@ -8713,17 +8705,9 @@ "side": "server", "enabled": 0, "commands": [ - { - "name": "QueryImageResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -13664,7 +13648,7 @@ ], "attributes": [ { - "name": "tv channel list", + "name": "channel list", "code": 0, "mfgCode": null, "side": "server", @@ -13679,7 +13663,7 @@ "reportableChange": 0 }, { - "name": "tv channel lineup", + "name": "channel lineup", "code": 1, "mfgCode": null, "side": "server", @@ -13694,7 +13678,7 @@ "reportableChange": 0 }, { - "name": "current tv channel", + "name": "current channel", "code": 2, "mfgCode": null, "side": "server", @@ -14084,7 +14068,7 @@ "reportableChange": 0 }, { - "name": "position updated at", + "name": "position", "code": 3, "mfgCode": null, "side": "server", @@ -14099,7 +14083,7 @@ "reportableChange": 0 }, { - "name": "position", + "name": "playback speed", "code": 4, "mfgCode": null, "side": "server", @@ -14114,7 +14098,7 @@ "reportableChange": 0 }, { - "name": "playback speed", + "name": "seek range end", "code": 5, "mfgCode": null, "side": "server", @@ -14129,7 +14113,7 @@ "reportableChange": 0 }, { - "name": "seek range end", + "name": "seek range start", "code": 6, "mfgCode": null, "side": "server", @@ -14491,7 +14475,7 @@ "reportableChange": 0 }, { - "name": "supported streaming types", + "name": "supported streaming protocols", "code": 1, "mfgCode": null, "side": "server", @@ -14690,7 +14674,7 @@ "reportableChange": 0 }, { - "name": "catalog vendor id", + "name": "application launcher app", "code": 1, "mfgCode": null, "side": "server", @@ -14817,7 +14801,7 @@ "reportableChange": 0 }, { - "name": "application id", + "name": "application status", "code": 5, "mfgCode": null, "side": "server", @@ -14832,7 +14816,7 @@ "reportableChange": 0 }, { - "name": "catalog vendor id", + "name": "application version", "code": 6, "mfgCode": null, "side": "server", @@ -15726,7 +15710,7 @@ "reportableChange": 0 }, { - "name": "struct", + "name": "struct_attr", "code": 37, "mfgCode": null, "side": "server", diff --git a/examples/lighting-app/lighting-common/lighting-app.zap b/examples/lighting-app/lighting-common/lighting-app.zap index 94dcee9b9675be..9816b0fee7511b 100644 --- a/examples/lighting-app/lighting-common/lighting-app.zap +++ b/examples/lighting-app/lighting-common/lighting-app.zap @@ -1284,7 +1284,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 0, @@ -1292,7 +1292,7 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 0, @@ -1327,7 +1327,7 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", "incoming": 1, @@ -1335,7 +1335,7 @@ }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -1691,7 +1691,7 @@ "reportableChange": 0 }, { - "name": "NetworkDisabled", + "name": "InterfaceEnabled", "code": 4, "mfgCode": null, "side": "server", @@ -6666,5 +6666,6 @@ "endpointVersion": 1, "deviceIdentifier": 259 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap b/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap index 0e83a9e108bcbe..d98d8675d8d297 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap @@ -979,7 +979,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 1, @@ -987,11 +987,11 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ @@ -1022,15 +1022,15 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", - "incoming": 1, + "incoming": 0, "outgoing": 1 }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -1454,7 +1454,7 @@ "reportableChange": 0 }, { - "name": "NetworkDisabled", + "name": "InterfaceEnabled", "code": 4, "mfgCode": null, "side": "server", @@ -3813,5 +3813,6 @@ "endpointVersion": 1, "deviceIdentifier": 22 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap index 562c31df99298c..297c6634e512ca 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap @@ -979,7 +979,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 0, @@ -987,7 +987,7 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 0, @@ -1022,7 +1022,7 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", "incoming": 1, @@ -1030,7 +1030,7 @@ }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -1477,7 +1477,7 @@ "reportableChange": 0 }, { - "name": "NetworkDisabled", + "name": "InterfaceEnabled", "code": 4, "mfgCode": null, "side": "server", diff --git a/examples/thermostat/thermostat-common/thermostat.zap b/examples/thermostat/thermostat-common/thermostat.zap index 063efbc6075ea5..a1bd8303bfdeee 100644 --- a/examples/thermostat/thermostat-common/thermostat.zap +++ b/examples/thermostat/thermostat-common/thermostat.zap @@ -1280,7 +1280,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 1, @@ -1288,11 +1288,11 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ @@ -1323,15 +1323,15 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", - "incoming": 1, + "incoming": 0, "outgoing": 1 }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -1703,7 +1703,7 @@ "reportableChange": 0 }, { - "name": "NetworkDisabled", + "name": "InterfaceEnabled", "code": 4, "mfgCode": null, "side": "server", @@ -8164,14 +8164,6 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "NotifyUpdateApplied", "code": 2, "mfgCode": null, "source": "client", @@ -8205,17 +8197,9 @@ "side": "server", "enabled": 0, "commands": [ - { - "name": "QueryImageResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, diff --git a/examples/tv-app/tv-common/tv-app.zap b/examples/tv-app/tv-common/tv-app.zap index 782c98d7fca93b..17333d3c8e2cbe 100644 --- a/examples/tv-app/tv-common/tv-app.zap +++ b/examples/tv-app/tv-common/tv-app.zap @@ -1265,7 +1265,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 1, @@ -1273,11 +1273,11 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ @@ -1308,15 +1308,15 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", - "incoming": 1, + "incoming": 0, "outgoing": 1 }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -9389,21 +9389,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "allowed vendor list", - "code": 7, - "mfgCode": null, - "side": "server", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -9868,21 +9853,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "allowed vendor list", - "code": 7, - "mfgCode": null, - "side": "server", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -10145,21 +10115,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "allowed vendor list", - "code": 7, - "mfgCode": null, - "side": "server", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap b/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap index ae8d70b000b154..549958969f00ea 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap @@ -1280,7 +1280,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 1, @@ -1288,11 +1288,11 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ @@ -1323,15 +1323,15 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", - "incoming": 1, + "incoming": 0, "outgoing": 1 }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -1703,7 +1703,7 @@ "reportableChange": 0 }, { - "name": "NetworkDisabled", + "name": "InterfaceEnabled", "code": 4, "mfgCode": null, "side": "server", @@ -7996,14 +7996,6 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "NotifyUpdateApplied", "code": 2, "mfgCode": null, "source": "client", @@ -8037,17 +8029,9 @@ "side": "server", "enabled": 0, "commands": [ - { - "name": "QueryImageResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -11934,7 +11918,7 @@ ], "attributes": [ { - "name": "tv channel list", + "name": "channel list", "code": 0, "mfgCode": null, "side": "server", @@ -11949,7 +11933,7 @@ "reportableChange": 0 }, { - "name": "tv channel lineup", + "name": "channel lineup", "code": 1, "mfgCode": null, "side": "server", @@ -11964,7 +11948,7 @@ "reportableChange": 0 }, { - "name": "current tv channel", + "name": "current channel", "code": 2, "mfgCode": null, "side": "server", @@ -12557,7 +12541,7 @@ "reportableChange": 0 }, { - "name": "supported streaming types", + "name": "supported streaming protocols", "code": 1, "mfgCode": null, "side": "server", @@ -12853,7 +12837,7 @@ "reportableChange": 0 }, { - "name": "application id", + "name": "application status", "code": 5, "mfgCode": null, "side": "server", @@ -12868,7 +12852,7 @@ "reportableChange": 0 }, { - "name": "catalog vendor id", + "name": "application version", "code": 6, "mfgCode": null, "side": "server", @@ -12882,21 +12866,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "application status", - "code": 7, - "mfgCode": null, - "side": "server", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, diff --git a/src/app/zap-templates/zcl/data-model/chip/chip-ota.xml b/src/app/zap-templates/zcl/data-model/chip/chip-ota.xml index 8532dc4f7bc4e1..dccca1f98327c1 100644 --- a/src/app/zap-templates/zcl/data-model/chip/chip-ota.xml +++ b/src/app/zap-templates/zcl/data-model/chip/chip-ota.xml @@ -52,35 +52,35 @@ limitations under the License. - + - - Determine next action to take for a new Software Image - - - - - Notify OTA Provider that an update was applied - - - - + Response to QueryImage command - + - + - + + Determine next action to take for a downloaded Software Image + + + + Reponse to ApplyUpdateRequest command + + Notify OTA Provider that an update was applied + + + diff --git a/src/controller/data_model/controller-clusters.zap b/src/controller/data_model/controller-clusters.zap index cd2ee0e48eb350..11abb13fddae82 100644 --- a/src/controller/data_model/controller-clusters.zap +++ b/src/controller/data_model/controller-clusters.zap @@ -2232,7 +2232,7 @@ }, { "name": "ApplyUpdateRequest", - "code": 1, + "code": 2, "mfgCode": null, "source": "client", "incoming": 0, @@ -2240,7 +2240,7 @@ }, { "name": "NotifyUpdateApplied", - "code": 2, + "code": 4, "mfgCode": null, "source": "client", "incoming": 0, @@ -2275,7 +2275,7 @@ "commands": [ { "name": "QueryImageResponse", - "code": 3, + "code": 1, "mfgCode": null, "source": "server", "incoming": 1, @@ -2283,7 +2283,7 @@ }, { "name": "ApplyUpdateResponse", - "code": 4, + "code": 3, "mfgCode": null, "source": "server", "incoming": 1, @@ -12994,7 +12994,7 @@ "reportableChange": 0 }, { - "name": "struct", + "name": "struct_attr", "code": 37, "mfgCode": null, "side": "server", diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py index cd19b6e5599669..fc2a82f2a406e4 100644 --- a/src/controller/python/chip/clusters/CHIPClusters.py +++ b/src/controller/python/chip/clusters/CHIPClusters.py @@ -2794,16 +2794,16 @@ class ChipClusters: "clusterName": "OtaSoftwareUpdateProvider", "clusterId": 0x00000029, "commands": { - 0x00000001: { - "commandId": 0x00000001, + 0x00000002: { + "commandId": 0x00000002, "commandName": "ApplyUpdateRequest", "args": { "updateToken": "bytes", "newVersion": "int", }, }, - 0x00000002: { - "commandId": 0x00000002, + 0x00000004: { + "commandId": 0x00000004, "commandName": "NotifyUpdateApplied", "args": { "updateToken": "bytes", diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index 7b17da90f9cd04..7252c9104976dc 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -6570,24 +6570,36 @@ def descriptor(cls) -> ClusterObjectDescriptor: metadataForProvider: 'typing.Optional[bytes]' = None @dataclass - class ApplyUpdateRequest(ClusterCommand): + class QueryImageResponse(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x0029 command_id: typing.ClassVar[int] = 0x0001 - is_client: typing.ClassVar[bool] = True + is_client: typing.ClassVar[bool] = False @ChipUtility.classproperty def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( Fields = [ - ClusterObjectFieldDescriptor(Label="updateToken", Tag=0, Type=bytes), - ClusterObjectFieldDescriptor(Label="newVersion", Tag=1, Type=uint), + ClusterObjectFieldDescriptor(Label="status", Tag=0, Type=OtaSoftwareUpdateProvider.Enums.OTAQueryStatus), + ClusterObjectFieldDescriptor(Label="delayedActionTime", Tag=1, Type=typing.Optional[uint]), + ClusterObjectFieldDescriptor(Label="imageURI", Tag=2, Type=typing.Optional[str]), + ClusterObjectFieldDescriptor(Label="softwareVersion", Tag=3, Type=typing.Optional[uint]), + ClusterObjectFieldDescriptor(Label="softwareVersionString", Tag=4, Type=typing.Optional[str]), + ClusterObjectFieldDescriptor(Label="updateToken", Tag=5, Type=typing.Optional[bytes]), + ClusterObjectFieldDescriptor(Label="userConsentNeeded", Tag=6, Type=typing.Optional[bool]), + ClusterObjectFieldDescriptor(Label="metadataForRequestor", Tag=7, Type=typing.Optional[bytes]), ]) - updateToken: 'bytes' = b"" - newVersion: 'uint' = 0 + status: 'OtaSoftwareUpdateProvider.Enums.OTAQueryStatus' = 0 + delayedActionTime: 'typing.Optional[uint]' = None + imageURI: 'typing.Optional[str]' = None + softwareVersion: 'typing.Optional[uint]' = None + softwareVersionString: 'typing.Optional[str]' = None + updateToken: 'typing.Optional[bytes]' = None + userConsentNeeded: 'typing.Optional[bool]' = None + metadataForRequestor: 'typing.Optional[bytes]' = None @dataclass - class NotifyUpdateApplied(ClusterCommand): + class ApplyUpdateRequest(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x0029 command_id: typing.ClassVar[int] = 0x0002 is_client: typing.ClassVar[bool] = True @@ -6597,14 +6609,14 @@ def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( Fields = [ ClusterObjectFieldDescriptor(Label="updateToken", Tag=0, Type=bytes), - ClusterObjectFieldDescriptor(Label="softwareVersion", Tag=1, Type=uint), + ClusterObjectFieldDescriptor(Label="newVersion", Tag=1, Type=uint), ]) updateToken: 'bytes' = b"" - softwareVersion: 'uint' = 0 + newVersion: 'uint' = 0 @dataclass - class QueryImageResponse(ClusterCommand): + class ApplyUpdateResponse(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x0029 command_id: typing.ClassVar[int] = 0x0003 is_client: typing.ClassVar[bool] = False @@ -6613,41 +6625,29 @@ class QueryImageResponse(ClusterCommand): def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( Fields = [ - ClusterObjectFieldDescriptor(Label="status", Tag=0, Type=OtaSoftwareUpdateProvider.Enums.OTAQueryStatus), - ClusterObjectFieldDescriptor(Label="delayedActionTime", Tag=1, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="imageURI", Tag=2, Type=typing.Optional[str]), - ClusterObjectFieldDescriptor(Label="softwareVersion", Tag=3, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="softwareVersionString", Tag=4, Type=typing.Optional[str]), - ClusterObjectFieldDescriptor(Label="updateToken", Tag=5, Type=typing.Optional[bytes]), - ClusterObjectFieldDescriptor(Label="userConsentNeeded", Tag=6, Type=typing.Optional[bool]), - ClusterObjectFieldDescriptor(Label="metadataForRequestor", Tag=7, Type=typing.Optional[bytes]), + ClusterObjectFieldDescriptor(Label="action", Tag=0, Type=OtaSoftwareUpdateProvider.Enums.OTAApplyUpdateAction), + ClusterObjectFieldDescriptor(Label="delayedActionTime", Tag=1, Type=uint), ]) - status: 'OtaSoftwareUpdateProvider.Enums.OTAQueryStatus' = 0 - delayedActionTime: 'typing.Optional[uint]' = None - imageURI: 'typing.Optional[str]' = None - softwareVersion: 'typing.Optional[uint]' = None - softwareVersionString: 'typing.Optional[str]' = None - updateToken: 'typing.Optional[bytes]' = None - userConsentNeeded: 'typing.Optional[bool]' = None - metadataForRequestor: 'typing.Optional[bytes]' = None + action: 'OtaSoftwareUpdateProvider.Enums.OTAApplyUpdateAction' = 0 + delayedActionTime: 'uint' = 0 @dataclass - class ApplyUpdateResponse(ClusterCommand): + class NotifyUpdateApplied(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x0029 command_id: typing.ClassVar[int] = 0x0004 - is_client: typing.ClassVar[bool] = False + is_client: typing.ClassVar[bool] = True @ChipUtility.classproperty def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( Fields = [ - ClusterObjectFieldDescriptor(Label="action", Tag=0, Type=OtaSoftwareUpdateProvider.Enums.OTAApplyUpdateAction), - ClusterObjectFieldDescriptor(Label="delayedActionTime", Tag=1, Type=uint), + ClusterObjectFieldDescriptor(Label="updateToken", Tag=0, Type=bytes), + ClusterObjectFieldDescriptor(Label="softwareVersion", Tag=1, Type=uint), ]) - action: 'OtaSoftwareUpdateProvider.Enums.OTAApplyUpdateAction' = 0 - delayedActionTime: 'uint' = 0 + updateToken: 'bytes' = b"" + softwareVersion: 'uint' = 0 class Attributes: diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.h b/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.h index 856d8402c6acbf..cf8cf14d32928b 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.h @@ -591,18 +591,6 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)init; @end -@interface CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestParams : NSObject -@property (strong, nonatomic) NSData * _Nonnull updateToken; -@property (strong, nonatomic, getter=getNewVersion) NSNumber * _Nonnull newVersion; -- (instancetype)init; -@end - -@interface CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedParams : NSObject -@property (strong, nonatomic) NSData * _Nonnull updateToken; -@property (strong, nonatomic) NSNumber * _Nonnull softwareVersion; -- (instancetype)init; -@end - @interface CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseParams : NSObject @property (strong, nonatomic) NSNumber * _Nonnull status; @property (strong, nonatomic) NSNumber * _Nullable delayedActionTime; @@ -615,12 +603,24 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)init; @end +@interface CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestParams : NSObject +@property (strong, nonatomic) NSData * _Nonnull updateToken; +@property (strong, nonatomic, getter=getNewVersion) NSNumber * _Nonnull newVersion; +- (instancetype)init; +@end + @interface CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseParams : NSObject @property (strong, nonatomic) NSNumber * _Nonnull action; @property (strong, nonatomic) NSNumber * _Nonnull delayedActionTime; - (instancetype)init; @end +@interface CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedParams : NSObject +@property (strong, nonatomic) NSData * _Nonnull updateToken; +@property (strong, nonatomic) NSNumber * _Nonnull softwareVersion; +- (instancetype)init; +@end + @interface CHIPOtaSoftwareUpdateRequestorClusterAnnounceOtaProviderParams : NSObject @property (strong, nonatomic) NSNumber * _Nonnull providerLocation; @property (strong, nonatomic) NSNumber * _Nonnull vendorId; diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.mm index caf82e865dd04d..aca7fdd8024222 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPCommandPayloadsObjc.mm @@ -1238,65 +1238,65 @@ - (instancetype)init } @end -@implementation CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestParams +@implementation CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseParams - (instancetype)init { if (self = [super init]) { - _updateToken = [NSData data]; + _status = @(0); - _newVersion = @(0); + _delayedActionTime = nil; + + _imageURI = nil; + + _softwareVersion = nil; + + _softwareVersionString = nil; + + _updateToken = nil; + + _userConsentNeeded = nil; + + _metadataForRequestor = nil; } return self; } @end -@implementation CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedParams +@implementation CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestParams - (instancetype)init { if (self = [super init]) { _updateToken = [NSData data]; - _softwareVersion = @(0); + _newVersion = @(0); } return self; } @end -@implementation CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseParams +@implementation CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseParams - (instancetype)init { if (self = [super init]) { - _status = @(0); - - _delayedActionTime = nil; - - _imageURI = nil; - - _softwareVersion = nil; - - _softwareVersionString = nil; - - _updateToken = nil; - - _userConsentNeeded = nil; + _action = @(0); - _metadataForRequestor = nil; + _delayedActionTime = @(0); } return self; } @end -@implementation CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseParams +@implementation CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedParams - (instancetype)init { if (self = [super init]) { - _action = @(0); + _updateToken = [NSData data]; - _delayedActionTime = @(0); + _softwareVersion = @(0); } return self; } diff --git a/zzz_generated/app-common/app-common/zap-generated/callback.h b/zzz_generated/app-common/app-common/zap-generated/callback.h index a49d1d373232ac..2b178c56963930 100644 --- a/zzz_generated/app-common/app-common/zap-generated/callback.h +++ b/zzz_generated/app-common/app-common/zap-generated/callback.h @@ -13856,18 +13856,6 @@ bool emberAfBasicClusterMfgSpecificPingCallback( bool emberAfOtaSoftwareUpdateProviderClusterQueryImageCallback( chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImage::DecodableType & commandData); -/** - * @brief OTA Software Update Provider Cluster ApplyUpdateRequest Command callback (from client) - */ -bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback( - chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::DecodableType & commandData); -/** - * @brief OTA Software Update Provider Cluster NotifyUpdateApplied Command callback (from client) - */ -bool emberAfOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback( - chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::DecodableType & commandData); /** * @brief OTA Software Update Provider Cluster QueryImageResponse Command callback (from server) */ @@ -13875,12 +13863,24 @@ bool emberAfOtaSoftwareUpdateProviderClusterQueryImageResponseCallback( chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status, uint32_t delayedActionTime, chip::CharSpan imageURI, uint32_t softwareVersion, chip::CharSpan softwareVersionString, chip::ByteSpan updateToken, bool userConsentNeeded, chip::ByteSpan metadataForRequestor); +/** + * @brief OTA Software Update Provider Cluster ApplyUpdateRequest Command callback (from client) + */ +bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback( + chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::DecodableType & commandData); /** * @brief OTA Software Update Provider Cluster ApplyUpdateResponse Command callback (from server) */ bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t action, uint32_t delayedActionTime); +/** + * @brief OTA Software Update Provider Cluster NotifyUpdateApplied Command callback (from client) + */ +bool emberAfOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback( + chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::DecodableType & commandData); /** * @brief OTA Software Update Requestor Cluster AnnounceOtaProvider Command callback (from client) */ diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp index 8af4792ee8e875..d5304c893ece03 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp @@ -5835,13 +5835,21 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) return CHIP_NO_ERROR; } } // namespace QueryImage. -namespace ApplyUpdateRequest { +namespace QueryImageResponse { CHIP_ERROR Type::Encode(TLV::TLVWriter & writer, TLV::Tag tag) const { TLV::TLVType outer; ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outer)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kStatus)), status)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kDelayedActionTime)), delayedActionTime)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kImageURI)), imageURI)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kSoftwareVersion)), softwareVersion)); + ReturnErrorOnFailure( + DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kSoftwareVersionString)), softwareVersionString)); ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kUpdateToken)), updateToken)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kNewVersion)), newVersion)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kUserConsentNeeded)), userConsentNeeded)); + ReturnErrorOnFailure( + DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kMetadataForRequestor)), metadataForRequestor)); ReturnErrorOnFailure(writer.EndContainer(outer)); return CHIP_NO_ERROR; } @@ -5857,11 +5865,29 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) VerifyOrReturnError(TLV::IsContextTag(reader.GetTag()), CHIP_ERROR_INVALID_TLV_TAG); switch (TLV::TagNumFromTag(reader.GetTag())) { + case to_underlying(Fields::kStatus): + ReturnErrorOnFailure(DataModel::Decode(reader, status)); + break; + case to_underlying(Fields::kDelayedActionTime): + ReturnErrorOnFailure(DataModel::Decode(reader, delayedActionTime)); + break; + case to_underlying(Fields::kImageURI): + ReturnErrorOnFailure(DataModel::Decode(reader, imageURI)); + break; + case to_underlying(Fields::kSoftwareVersion): + ReturnErrorOnFailure(DataModel::Decode(reader, softwareVersion)); + break; + case to_underlying(Fields::kSoftwareVersionString): + ReturnErrorOnFailure(DataModel::Decode(reader, softwareVersionString)); + break; case to_underlying(Fields::kUpdateToken): ReturnErrorOnFailure(DataModel::Decode(reader, updateToken)); break; - case to_underlying(Fields::kNewVersion): - ReturnErrorOnFailure(DataModel::Decode(reader, newVersion)); + case to_underlying(Fields::kUserConsentNeeded): + ReturnErrorOnFailure(DataModel::Decode(reader, userConsentNeeded)); + break; + case to_underlying(Fields::kMetadataForRequestor): + ReturnErrorOnFailure(DataModel::Decode(reader, metadataForRequestor)); break; default: break; @@ -5872,14 +5898,14 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) ReturnErrorOnFailure(reader.ExitContainer(outer)); return CHIP_NO_ERROR; } -} // namespace ApplyUpdateRequest. -namespace NotifyUpdateApplied { +} // namespace QueryImageResponse. +namespace ApplyUpdateRequest { CHIP_ERROR Type::Encode(TLV::TLVWriter & writer, TLV::Tag tag) const { TLV::TLVType outer; ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outer)); ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kUpdateToken)), updateToken)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kSoftwareVersion)), softwareVersion)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kNewVersion)), newVersion)); ReturnErrorOnFailure(writer.EndContainer(outer)); return CHIP_NO_ERROR; } @@ -5898,8 +5924,8 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) case to_underlying(Fields::kUpdateToken): ReturnErrorOnFailure(DataModel::Decode(reader, updateToken)); break; - case to_underlying(Fields::kSoftwareVersion): - ReturnErrorOnFailure(DataModel::Decode(reader, softwareVersion)); + case to_underlying(Fields::kNewVersion): + ReturnErrorOnFailure(DataModel::Decode(reader, newVersion)); break; default: break; @@ -5910,22 +5936,14 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) ReturnErrorOnFailure(reader.ExitContainer(outer)); return CHIP_NO_ERROR; } -} // namespace NotifyUpdateApplied. -namespace QueryImageResponse { +} // namespace ApplyUpdateRequest. +namespace ApplyUpdateResponse { CHIP_ERROR Type::Encode(TLV::TLVWriter & writer, TLV::Tag tag) const { TLV::TLVType outer; ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outer)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kStatus)), status)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kAction)), action)); ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kDelayedActionTime)), delayedActionTime)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kImageURI)), imageURI)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kSoftwareVersion)), softwareVersion)); - ReturnErrorOnFailure( - DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kSoftwareVersionString)), softwareVersionString)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kUpdateToken)), updateToken)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kUserConsentNeeded)), userConsentNeeded)); - ReturnErrorOnFailure( - DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kMetadataForRequestor)), metadataForRequestor)); ReturnErrorOnFailure(writer.EndContainer(outer)); return CHIP_NO_ERROR; } @@ -5941,30 +5959,12 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) VerifyOrReturnError(TLV::IsContextTag(reader.GetTag()), CHIP_ERROR_INVALID_TLV_TAG); switch (TLV::TagNumFromTag(reader.GetTag())) { - case to_underlying(Fields::kStatus): - ReturnErrorOnFailure(DataModel::Decode(reader, status)); + case to_underlying(Fields::kAction): + ReturnErrorOnFailure(DataModel::Decode(reader, action)); break; case to_underlying(Fields::kDelayedActionTime): ReturnErrorOnFailure(DataModel::Decode(reader, delayedActionTime)); break; - case to_underlying(Fields::kImageURI): - ReturnErrorOnFailure(DataModel::Decode(reader, imageURI)); - break; - case to_underlying(Fields::kSoftwareVersion): - ReturnErrorOnFailure(DataModel::Decode(reader, softwareVersion)); - break; - case to_underlying(Fields::kSoftwareVersionString): - ReturnErrorOnFailure(DataModel::Decode(reader, softwareVersionString)); - break; - case to_underlying(Fields::kUpdateToken): - ReturnErrorOnFailure(DataModel::Decode(reader, updateToken)); - break; - case to_underlying(Fields::kUserConsentNeeded): - ReturnErrorOnFailure(DataModel::Decode(reader, userConsentNeeded)); - break; - case to_underlying(Fields::kMetadataForRequestor): - ReturnErrorOnFailure(DataModel::Decode(reader, metadataForRequestor)); - break; default: break; } @@ -5974,14 +5974,14 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) ReturnErrorOnFailure(reader.ExitContainer(outer)); return CHIP_NO_ERROR; } -} // namespace QueryImageResponse. -namespace ApplyUpdateResponse { +} // namespace ApplyUpdateResponse. +namespace NotifyUpdateApplied { CHIP_ERROR Type::Encode(TLV::TLVWriter & writer, TLV::Tag tag) const { TLV::TLVType outer; ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outer)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kAction)), action)); - ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kDelayedActionTime)), delayedActionTime)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kUpdateToken)), updateToken)); + ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kSoftwareVersion)), softwareVersion)); ReturnErrorOnFailure(writer.EndContainer(outer)); return CHIP_NO_ERROR; } @@ -5997,11 +5997,11 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) VerifyOrReturnError(TLV::IsContextTag(reader.GetTag()), CHIP_ERROR_INVALID_TLV_TAG); switch (TLV::TagNumFromTag(reader.GetTag())) { - case to_underlying(Fields::kAction): - ReturnErrorOnFailure(DataModel::Decode(reader, action)); + case to_underlying(Fields::kUpdateToken): + ReturnErrorOnFailure(DataModel::Decode(reader, updateToken)); break; - case to_underlying(Fields::kDelayedActionTime): - ReturnErrorOnFailure(DataModel::Decode(reader, delayedActionTime)); + case to_underlying(Fields::kSoftwareVersion): + ReturnErrorOnFailure(DataModel::Decode(reader, softwareVersion)); break; default: break; @@ -6012,7 +6012,7 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) ReturnErrorOnFailure(reader.ExitContainer(outer)); return CHIP_NO_ERROR; } -} // namespace ApplyUpdateResponse. +} // namespace NotifyUpdateApplied. } // namespace Commands namespace Attributes { diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h index 32c84506228d8b..a200a0697c9128 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h @@ -8172,25 +8172,25 @@ struct Type; struct DecodableType; } // namespace QueryImage -namespace ApplyUpdateRequest { +namespace QueryImageResponse { struct Type; struct DecodableType; -} // namespace ApplyUpdateRequest +} // namespace QueryImageResponse -namespace NotifyUpdateApplied { +namespace ApplyUpdateRequest { struct Type; struct DecodableType; -} // namespace NotifyUpdateApplied +} // namespace ApplyUpdateRequest -namespace QueryImageResponse { +namespace ApplyUpdateResponse { struct Type; struct DecodableType; -} // namespace QueryImageResponse +} // namespace ApplyUpdateResponse -namespace ApplyUpdateResponse { +namespace NotifyUpdateApplied { struct Type; struct DecodableType; -} // namespace ApplyUpdateResponse +} // namespace NotifyUpdateApplied } // namespace Commands @@ -8248,26 +8248,38 @@ struct DecodableType CHIP_ERROR Decode(TLV::TLVReader & reader); }; }; // namespace QueryImage -namespace ApplyUpdateRequest { +namespace QueryImageResponse { enum class Fields { - kUpdateToken = 0, - kNewVersion = 1, + kStatus = 0, + kDelayedActionTime = 1, + kImageURI = 2, + kSoftwareVersion = 3, + kSoftwareVersionString = 4, + kUpdateToken = 5, + kUserConsentNeeded = 6, + kMetadataForRequestor = 7, }; struct Type { public: // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand - static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateRequest::Id; } + static constexpr CommandId GetCommandId() { return Commands::QueryImageResponse::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } - chip::ByteSpan updateToken; - uint32_t newVersion; + OTAQueryStatus status; + Optional delayedActionTime; + Optional imageURI; + Optional softwareVersion; + Optional softwareVersionString; + Optional updateToken; + Optional userConsentNeeded; + Optional metadataForRequestor; CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const; - using ResponseType = Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType; + using ResponseType = DataModel::NullObjectType; static constexpr bool MustUseTimedInvoke() { return false; } }; @@ -8275,34 +8287,40 @@ struct Type struct DecodableType { public: - static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateRequest::Id; } + static constexpr CommandId GetCommandId() { return Commands::QueryImageResponse::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } - chip::ByteSpan updateToken; - uint32_t newVersion; + OTAQueryStatus status; + Optional delayedActionTime; + Optional imageURI; + Optional softwareVersion; + Optional softwareVersionString; + Optional updateToken; + Optional userConsentNeeded; + Optional metadataForRequestor; CHIP_ERROR Decode(TLV::TLVReader & reader); }; -}; // namespace ApplyUpdateRequest -namespace NotifyUpdateApplied { +}; // namespace QueryImageResponse +namespace ApplyUpdateRequest { enum class Fields { - kUpdateToken = 0, - kSoftwareVersion = 1, + kUpdateToken = 0, + kNewVersion = 1, }; struct Type { public: // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand - static constexpr CommandId GetCommandId() { return Commands::NotifyUpdateApplied::Id; } + static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateRequest::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } chip::ByteSpan updateToken; - uint32_t softwareVersion; + uint32_t newVersion; CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const; - using ResponseType = DataModel::NullObjectType; + using ResponseType = Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType; static constexpr bool MustUseTimedInvoke() { return false; } }; @@ -8310,42 +8328,30 @@ struct Type struct DecodableType { public: - static constexpr CommandId GetCommandId() { return Commands::NotifyUpdateApplied::Id; } + static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateRequest::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } chip::ByteSpan updateToken; - uint32_t softwareVersion; + uint32_t newVersion; CHIP_ERROR Decode(TLV::TLVReader & reader); }; -}; // namespace NotifyUpdateApplied -namespace QueryImageResponse { +}; // namespace ApplyUpdateRequest +namespace ApplyUpdateResponse { enum class Fields { - kStatus = 0, - kDelayedActionTime = 1, - kImageURI = 2, - kSoftwareVersion = 3, - kSoftwareVersionString = 4, - kUpdateToken = 5, - kUserConsentNeeded = 6, - kMetadataForRequestor = 7, + kAction = 0, + kDelayedActionTime = 1, }; struct Type { public: // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand - static constexpr CommandId GetCommandId() { return Commands::QueryImageResponse::Id; } + static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateResponse::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } - OTAQueryStatus status; - Optional delayedActionTime; - Optional imageURI; - Optional softwareVersion; - Optional softwareVersionString; - Optional updateToken; - Optional userConsentNeeded; - Optional metadataForRequestor; + OTAApplyUpdateAction action; + uint32_t delayedActionTime; CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const; @@ -8357,36 +8363,30 @@ struct Type struct DecodableType { public: - static constexpr CommandId GetCommandId() { return Commands::QueryImageResponse::Id; } + static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateResponse::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } - OTAQueryStatus status; - Optional delayedActionTime; - Optional imageURI; - Optional softwareVersion; - Optional softwareVersionString; - Optional updateToken; - Optional userConsentNeeded; - Optional metadataForRequestor; + OTAApplyUpdateAction action; + uint32_t delayedActionTime; CHIP_ERROR Decode(TLV::TLVReader & reader); }; -}; // namespace QueryImageResponse -namespace ApplyUpdateResponse { +}; // namespace ApplyUpdateResponse +namespace NotifyUpdateApplied { enum class Fields { - kAction = 0, - kDelayedActionTime = 1, + kUpdateToken = 0, + kSoftwareVersion = 1, }; struct Type { public: // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand - static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateResponse::Id; } + static constexpr CommandId GetCommandId() { return Commands::NotifyUpdateApplied::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } - OTAApplyUpdateAction action; - uint32_t delayedActionTime; + chip::ByteSpan updateToken; + uint32_t softwareVersion; CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const; @@ -8398,14 +8398,14 @@ struct Type struct DecodableType { public: - static constexpr CommandId GetCommandId() { return Commands::ApplyUpdateResponse::Id; } + static constexpr CommandId GetCommandId() { return Commands::NotifyUpdateApplied::Id; } static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } - OTAApplyUpdateAction action; - uint32_t delayedActionTime; + chip::ByteSpan updateToken; + uint32_t softwareVersion; CHIP_ERROR Decode(TLV::TLVReader & reader); }; -}; // namespace ApplyUpdateResponse +}; // namespace NotifyUpdateApplied } // namespace Commands namespace Attributes { diff --git a/zzz_generated/app-common/app-common/zap-generated/command-id.h b/zzz_generated/app-common/app-common/zap-generated/command-id.h index 3044b854769259..c096f0292d914b 100644 --- a/zzz_generated/app-common/app-common/zap-generated/command-id.h +++ b/zzz_generated/app-common/app-common/zap-generated/command-id.h @@ -160,10 +160,10 @@ // Commands for cluster: OTA Software Update Provider #define ZCL_QUERY_IMAGE_COMMAND_ID (0x00) -#define ZCL_APPLY_UPDATE_REQUEST_COMMAND_ID (0x01) -#define ZCL_NOTIFY_UPDATE_APPLIED_COMMAND_ID (0x02) -#define ZCL_QUERY_IMAGE_RESPONSE_COMMAND_ID (0x03) -#define ZCL_APPLY_UPDATE_RESPONSE_COMMAND_ID (0x04) +#define ZCL_QUERY_IMAGE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_APPLY_UPDATE_REQUEST_COMMAND_ID (0x02) +#define ZCL_APPLY_UPDATE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_NOTIFY_UPDATE_APPLIED_COMMAND_ID (0x04) // Commands for cluster: OTA Software Update Requestor #define ZCL_ANNOUNCE_OTA_PROVIDER_COMMAND_ID (0x00) diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h b/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h index 431fd1d5a31100..8d1bf79c049ea4 100644 --- a/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h +++ b/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h @@ -514,21 +514,21 @@ namespace QueryImage { static constexpr CommandId Id = 0x00000000; } // namespace QueryImage -namespace ApplyUpdateRequest { +namespace QueryImageResponse { static constexpr CommandId Id = 0x00000001; -} // namespace ApplyUpdateRequest +} // namespace QueryImageResponse -namespace NotifyUpdateApplied { +namespace ApplyUpdateRequest { static constexpr CommandId Id = 0x00000002; -} // namespace NotifyUpdateApplied +} // namespace ApplyUpdateRequest -namespace QueryImageResponse { +namespace ApplyUpdateResponse { static constexpr CommandId Id = 0x00000003; -} // namespace QueryImageResponse +} // namespace ApplyUpdateResponse -namespace ApplyUpdateResponse { +namespace NotifyUpdateApplied { static constexpr CommandId Id = 0x00000004; -} // namespace ApplyUpdateResponse +} // namespace NotifyUpdateApplied } // namespace Commands } // namespace OtaSoftwareUpdateProvider diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h index c6e534819cce58..87296cfed52b6e 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h @@ -24472,8 +24472,8 @@ class ReportNetworkCommissioningClusterRevision : public ModelCommand | Cluster OtaSoftwareUpdateProvider | 0x0029 | |------------------------------------------------------------------------------| | Commands: | | -| * ApplyUpdateRequest | 0x01 | -| * NotifyUpdateApplied | 0x02 | +| * ApplyUpdateRequest | 0x02 | +| * NotifyUpdateApplied | 0x04 | | * QueryImage | 0x00 | |------------------------------------------------------------------------------| | Attributes: | | @@ -24496,7 +24496,7 @@ class OtaSoftwareUpdateProviderApplyUpdateRequest : public ModelCommand CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override { - ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000001) on endpoint %" PRIu8, endpointId); + ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000002) on endpoint %" PRIu8, endpointId); return chip::Controller::InvokeCommand(device, this, OnOtaSoftwareUpdateProviderApplyUpdateResponseSuccess, OnDefaultFailure, endpointId, mRequest, mTimedInteractionTimeoutMs); @@ -24521,7 +24521,7 @@ class OtaSoftwareUpdateProviderNotifyUpdateApplied : public ModelCommand CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override { - ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000002) on endpoint %" PRIu8, endpointId); + ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000004) on endpoint %" PRIu8, endpointId); return chip::Controller::InvokeCommand(device, this, OnDefaultSuccess, OnDefaultFailure, endpointId, mRequest, mTimedInteractionTimeoutMs);