From 1871b6ffe3ab0f7f4933e28e346546e22ac405f3 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 24 May 2023 14:44:33 +0200 Subject: [PATCH 01/38] [python tests] decode shell output as UTF-8 (#26783) If tests are run on a platform which is returning special characters (e.g. date with months which contain an umlaut) runnig the test fails: ``` File "/home/sag/projects/project-chip/connectedhomeip/./scripts/tests/run_python_test.py", line 95, in main print(subprocess.check_output(["ls -l"], shell=True).decode('us-ascii')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1553: ordinal not in range(128) ``` Decode the output using UTF-8 by default. --- scripts/tests/run_java_test.py | 2 +- scripts/tests/run_python_test.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/tests/run_java_test.py b/scripts/tests/run_java_test.py index bb0021526f2276..8f30de2a1c643b 100755 --- a/scripts/tests/run_java_test.py +++ b/scripts/tests/run_java_test.py @@ -55,7 +55,7 @@ def main(app: str, app_args: str, tool_path: str, tool_cluster: str, tool_args: raise Exception("Failed to remove /tmp/chip* for factory reset.") print("Contents of test directory: %s" % os.getcwd()) - print(subprocess.check_output(["ls -l"], shell=True).decode('us-ascii')) + print(subprocess.check_output(["ls -l"], shell=True).decode('utf-8')) # Remove native app KVS if that was used kvs_match = re.search(r"--KVS (?P[^ ]+)", app_args) diff --git a/scripts/tests/run_python_test.py b/scripts/tests/run_python_test.py index 87f6044c2a35f0..c607a5d07cf40f 100755 --- a/scripts/tests/run_python_test.py +++ b/scripts/tests/run_python_test.py @@ -92,7 +92,7 @@ def main(app: str, factoryreset: bool, app_args: str, script: str, script_args: raise Exception("Failed to remove /tmp/chip* for factory reset.") print("Contents of test directory: %s" % os.getcwd()) - print(subprocess.check_output(["ls -l"], shell=True).decode('us-ascii')) + print(subprocess.check_output(["ls -l"], shell=True).decode('utf-8')) # Remove native app KVS if that was used kvs_match = re.search(r"--KVS (?P[^ ]+)", app_args) From 5c39a1b8023f67db6441d6c8c71828f52cbeaad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Wed, 24 May 2023 14:46:19 +0200 Subject: [PATCH 02/38] Update README.md (#26759) --- examples/all-clusters-app/esp32/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/all-clusters-app/esp32/README.md b/examples/all-clusters-app/esp32/README.md index 6cb3f9093da13b..d7817027369adf 100644 --- a/examples/all-clusters-app/esp32/README.md +++ b/examples/all-clusters-app/esp32/README.md @@ -1,4 +1,4 @@ -# CHIP ESP32 All Clusters Example +# Matter ESP32 All Clusters Example A prototype application that demonstrates device commissioning and cluster control. From ee147d2ef2a0df33a1e35112cfcfd039930b3dd0 Mon Sep 17 00:00:00 2001 From: Sharad Binjola <31142146+sharadb-amazon@users.noreply.github.com> Date: Wed, 24 May 2023 05:49:05 -0700 Subject: [PATCH 03/38] tv-casting-app: Removing some zzz_generated / darwin dependencies (#26762) * tv-casting-app: Removing some zzz_generated dependencies * tv-casting-app: Removing dependency on src/darwin/Framework/CHIP * Removed zzz_generated/darwin dir and reference from zap_regen_all.py --- .../project.pbxproj | 10 - .../include/ApplicationBasic.h | 2 +- .../include/ApplicationLauncher.h | 2 +- .../tv-casting-common/include/CastingServer.h | 3 +- .../tv-casting-common/include/Channel.h | 2 +- .../include/ContentLauncher.h | 2 +- .../tv-casting-common/include/KeypadInput.h | 2 +- .../tv-casting-common/include/LevelControl.h | 2 +- .../tv-casting-common/include/MediaPlayback.h | 2 +- .../tv-casting-common/include/OnOff.h | 2 +- .../include/TargetNavigator.h | 2 +- .../tv-casting-common/src/CastingServer.cpp | 3 +- scripts/tools/zap_regen_all.py | 10 - .../zap-generated/CHIPClientCallbacks.h | 816 ----------- .../zap-generated/CHIPClusters.h | 785 ----------- .../zap-generated/IMClusterCommandHandler.cpp | 52 - .../zap-generated/access.h | 50 - .../zap-generated/endpoint_config.h | 1187 ----------------- .../zap-generated/gen_config.h | 430 ------ 19 files changed, 11 insertions(+), 3353 deletions(-) delete mode 100644 zzz_generated/darwin/controller-clusters/zap-generated/CHIPClientCallbacks.h delete mode 100644 zzz_generated/darwin/controller-clusters/zap-generated/CHIPClusters.h delete mode 100644 zzz_generated/darwin/controller-clusters/zap-generated/IMClusterCommandHandler.cpp delete mode 100644 zzz_generated/darwin/controller-clusters/zap-generated/access.h delete mode 100644 zzz_generated/darwin/controller-clusters/zap-generated/endpoint_config.h delete mode 100644 zzz_generated/darwin/controller-clusters/zap-generated/gen_config.h diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj index 0dc331e29069e8..1591df3729aa04 100644 --- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj +++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj @@ -415,7 +415,6 @@ "$(CHIP_ROOT)/src/lib", "$(CHIP_ROOT)/src/app", "$(CHIP_ROOT)/config/ios", - "$(CHIP_ROOT)/src/darwin/Framework/CHIP/", "$(CHIP_ROOT)/src/app/util", "$(CHIP_ROOT)/third_party/nlassert/repo/include", "$(CHIP_ROOT)/third_party/nlio/repo/include", @@ -423,11 +422,7 @@ /* Compile time codegen would need this: "$(TEMP_DIR)/out/gen/src/controller/data_model/zapgen/", */ - "$(CHIP_ROOT)/zzz_generated/", "$(CHIP_ROOT)/zzz_generated/app-common", - "$(CHIP_ROOT)/zzz_generated/controller-clusters", - /* darwin-specific bypassing compile time codegen for header inclusion */ - "$(CHIP_ROOT)/zzz_generated/darwin/controller-clusters", ); INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -503,7 +498,6 @@ "$(CHIP_ROOT)/src/lib", "$(CHIP_ROOT)/src/app", "$(CHIP_ROOT)/config/ios", - "$(CHIP_ROOT)/src/darwin/Framework/CHIP/", "$(CHIP_ROOT)/src/app/util", "$(CHIP_ROOT)/third_party/nlassert/repo/include", "$(CHIP_ROOT)/third_party/nlio/repo/include", @@ -511,11 +505,7 @@ /* Compile time codegen would need this: "$(TEMP_DIR)/out/gen/src/controller/data_model/zapgen/", */ - "$(CHIP_ROOT)/zzz_generated/", "$(CHIP_ROOT)/zzz_generated/app-common", - "$(CHIP_ROOT)/zzz_generated/controller-clusters", - /* darwin-specific bypassing compile time codegen for header inclusion */ - "$(CHIP_ROOT)/zzz_generated/darwin/controller-clusters", ); INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; diff --git a/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h b/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h index ec009de429a8e6..4bfa028a129e4b 100644 --- a/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h +++ b/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h @@ -19,7 +19,7 @@ #include "MediaReadBase.h" #include "MediaSubscriptionBase.h" -#include +#include // SUBSCRIBER CLASSES class VendorNameSubscriber : public MediaSubscriptionBase diff --git a/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h b/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h index a6c95c0c699839..9e8c08b284cd42 100644 --- a/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h +++ b/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h @@ -19,8 +19,8 @@ #include "MediaCommandBase.h" #include "MediaSubscriptionBase.h" +#include #include -#include // COMMAND CLASSES class LaunchAppCommand diff --git a/examples/tv-casting-app/tv-casting-common/include/CastingServer.h b/examples/tv-casting-app/tv-casting-common/include/CastingServer.h index 1aa483b51124d4..b24fe0fa0ec1c8 100644 --- a/examples/tv-casting-app/tv-casting-common/include/CastingServer.h +++ b/examples/tv-casting-app/tv-casting-common/include/CastingServer.h @@ -34,10 +34,9 @@ #include #include +#include #include #include -#include -#include constexpr chip::System::Clock::Seconds16 kCommissioningWindowTimeout = chip::System::Clock::Seconds16(3 * 60); diff --git a/examples/tv-casting-app/tv-casting-common/include/Channel.h b/examples/tv-casting-app/tv-casting-common/include/Channel.h index 1a0a18ec196ad8..5c98695d8d3e7d 100644 --- a/examples/tv-casting-app/tv-casting-common/include/Channel.h +++ b/examples/tv-casting-app/tv-casting-common/include/Channel.h @@ -19,8 +19,8 @@ #include "MediaCommandBase.h" #include "MediaSubscriptionBase.h" +#include #include -#include // COMMAND CLASSES class ChangeChannelCommand : public MediaCommandBase #include -#include // COMMAND CLASSES class LaunchURLCommand : public MediaCommandBase #include -#include class SendKeyCommand : public MediaCommandBase diff --git a/examples/tv-casting-app/tv-casting-common/include/LevelControl.h b/examples/tv-casting-app/tv-casting-common/include/LevelControl.h index 01c07f2ca026ff..23c3eb5fbe1238 100644 --- a/examples/tv-casting-app/tv-casting-common/include/LevelControl.h +++ b/examples/tv-casting-app/tv-casting-common/include/LevelControl.h @@ -19,8 +19,8 @@ #include "MediaCommandBase.h" #include "MediaSubscriptionBase.h" +#include #include -#include // COMMAND CLASSES class StepCommand diff --git a/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h b/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h index 149ed2e6affc70..60eb33cb4179d9 100644 --- a/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h +++ b/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h @@ -19,8 +19,8 @@ #include "MediaCommandBase.h" #include "MediaSubscriptionBase.h" +#include #include -#include // COMMAND CLASSES class PlayCommand : public MediaCommandBase #include -#include // COMMAND CLASSES class OnCommand : public MediaCommandBase diff --git a/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h b/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h index b42d1685b183af..419375cdc51fec 100644 --- a/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h +++ b/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h @@ -19,8 +19,8 @@ #include "MediaCommandBase.h" #include "MediaSubscriptionBase.h" +#include #include -#include // COMMAND CLASSES class NavigateTargetCommand diff --git a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp index 0a23c889d624fb..313a6dc2e6a6d0 100644 --- a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp +++ b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp @@ -255,8 +255,7 @@ void CastingServer::ReadServerClusters(EndpointId endpointId) } // GetOperationalDeviceProxy only passes us a deviceProxy if we can get a SessionHandle. - chip::Controller::DescriptorCluster cluster(*deviceProxy->GetExchangeManager(), deviceProxy->GetSecureSession().Value(), - endpointId); + chip::Controller::ClusterBase cluster(*deviceProxy->GetExchangeManager(), deviceProxy->GetSecureSession().Value(), endpointId); TargetEndpointInfo * endpointInfo = mActiveTargetVideoPlayerInfo.GetOrAddEndpoint(endpointId); diff --git a/scripts/tools/zap_regen_all.py b/scripts/tools/zap_regen_all.py index 80229e108d2a90..67a214599d4bf1 100755 --- a/scripts/tools/zap_regen_all.py +++ b/scripts/tools/zap_regen_all.py @@ -352,16 +352,6 @@ def getGlobalTemplatesTargets(): targets.append(ZAPGenerateTarget.MatterIdlTarget('src/controller/data_model/controller-clusters.zap', client_side=True)) - # This generates app headers for darwin only, for easier/clearer include - # in .pbxproj files. - # - # TODO: These files can be code generated at compile time, we should figure - # out a path for this codegen to not be required. - targets.append(ZAPGenerateTarget( - 'src/controller/data_model/controller-clusters.zap', - template="src/app/zap-templates/app-templates.json", - output_dir='zzz_generated/darwin/controller-clusters/zap-generated')) - return targets diff --git a/zzz_generated/darwin/controller-clusters/zap-generated/CHIPClientCallbacks.h b/zzz_generated/darwin/controller-clusters/zap-generated/CHIPClientCallbacks.h deleted file mode 100644 index 8166cd647a3d19..00000000000000 --- a/zzz_generated/darwin/controller-clusters/zap-generated/CHIPClientCallbacks.h +++ /dev/null @@ -1,816 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -// List specific responses -typedef void (*IdentifyGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IdentifyAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*IdentifyEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*IdentifyAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GroupsGeneratedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GroupsAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GroupsEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GroupsAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ScenesGeneratedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ScenesAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ScenesEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ScenesAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffGeneratedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffSwitchConfigurationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffSwitchConfigurationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffSwitchConfigurationEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OnOffSwitchConfigurationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LevelControlGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LevelControlAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LevelControlEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*LevelControlAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BinaryInputBasicGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BinaryInputBasicAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BinaryInputBasicEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BinaryInputBasicAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorDeviceTypeListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorServerListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorClientListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorPartsListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DescriptorAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BindingBindingListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BindingGeneratedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BindingAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BindingEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BindingAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*AccessControlAclListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType> & data); -typedef void (*AccessControlExtensionListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::DecodableType> & data); -typedef void (*AccessControlGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AccessControlAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AccessControlEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*AccessControlAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ActionsActionListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ActionsEndpointListsListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ActionsGeneratedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ActionsAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ActionsEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ActionsAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BasicInformationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BasicInformationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BasicInformationEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BasicInformationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateProviderEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateProviderAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateRequestorDefaultOTAProvidersListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType> & data); -typedef void (*OtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateRequestorEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OtaSoftwareUpdateRequestorAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LocalizationConfigurationSupportedLocalesListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LocalizationConfigurationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LocalizationConfigurationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LocalizationConfigurationEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LocalizationConfigurationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TimeFormatLocalizationSupportedCalendarTypesListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*TimeFormatLocalizationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TimeFormatLocalizationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TimeFormatLocalizationEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TimeFormatLocalizationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UnitLocalizationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UnitLocalizationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UnitLocalizationEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UnitLocalizationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceConfigurationSourcesListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceConfigurationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceConfigurationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceConfigurationEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceConfigurationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceActiveWiredFaultsListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceActiveBatFaultsListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceActiveBatChargeFaultsListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*PowerSourceAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralCommissioningGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralCommissioningAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralCommissioningEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralCommissioningAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*NetworkCommissioningNetworksListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*NetworkCommissioningGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*NetworkCommissioningAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*NetworkCommissioningEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*NetworkCommissioningAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DiagnosticLogsGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DiagnosticLogsAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DiagnosticLogsEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DiagnosticLogsAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralDiagnosticsNetworkInterfacesListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*GeneralDiagnosticsActiveHardwareFaultsListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralDiagnosticsActiveRadioFaultsListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralDiagnosticsActiveNetworkFaultsListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralDiagnosticsGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralDiagnosticsAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralDiagnosticsEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GeneralDiagnosticsAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*SoftwareDiagnosticsThreadMetricsListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType> & data); -typedef void (*SoftwareDiagnosticsGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*SoftwareDiagnosticsAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*SoftwareDiagnosticsEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*SoftwareDiagnosticsAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThreadNetworkDiagnosticsNeighborTableListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType> & data); -typedef void (*ThreadNetworkDiagnosticsRouteTableListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*ThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThreadNetworkDiagnosticsEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThreadNetworkDiagnosticsAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WiFiNetworkDiagnosticsEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WiFiNetworkDiagnosticsAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*EthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*EthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*EthernetNetworkDiagnosticsEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*EthernetNetworkDiagnosticsAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BridgedDeviceBasicInformationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BridgedDeviceBasicInformationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BridgedDeviceBasicInformationEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BridgedDeviceBasicInformationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*SwitchGeneratedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*SwitchAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*SwitchEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*SwitchAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*AdministratorCommissioningGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AdministratorCommissioningAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AdministratorCommissioningEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AdministratorCommissioningAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OperationalCredentialsNOCsListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*OperationalCredentialsFabricsListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::DecodableType> & data); -typedef void (*OperationalCredentialsTrustedRootCertificatesListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OperationalCredentialsGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OperationalCredentialsAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OperationalCredentialsEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OperationalCredentialsAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GroupKeyManagementGroupKeyMapListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*GroupKeyManagementGroupTableListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*GroupKeyManagementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GroupKeyManagementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*GroupKeyManagementEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*GroupKeyManagementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FixedLabelLabelListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*FixedLabelGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FixedLabelAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FixedLabelEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*FixedLabelAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UserLabelLabelListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UserLabelGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UserLabelAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UserLabelEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UserLabelAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BooleanStateGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BooleanStateAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BooleanStateEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BooleanStateAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*IcdManagementRegisteredClientsListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::IcdManagement::Structs::MonitoringRegistrationStruct::DecodableType> & data); -typedef void (*IcdManagementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IcdManagementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IcdManagementEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*IcdManagementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ModeSelectSupportedModesListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ModeSelectGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ModeSelectAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ModeSelectEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ModeSelectAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*RefrigeratorAlarmGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*RefrigeratorAlarmAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*RefrigeratorAlarmEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*RefrigeratorAlarmAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AirQualityGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AirQualityAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AirQualityEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*AirQualityAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*SmokeCoAlarmGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*SmokeCoAlarmAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*SmokeCoAlarmEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*SmokeCoAlarmAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*HepaFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*HepaFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*HepaFilterMonitoringEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*HepaFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ActivatedCarbonFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ActivatedCarbonFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ActivatedCarbonFilterMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ActivatedCarbonFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*CeramicFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*CeramicFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*CeramicFilterMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*CeramicFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ElectrostaticFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ElectrostaticFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ElectrostaticFilterMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ElectrostaticFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UvFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UvFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UvFilterMonitoringEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UvFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IonizingFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IonizingFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IonizingFilterMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IonizingFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ZeoliteFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ZeoliteFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ZeoliteFilterMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ZeoliteFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OzoneFilterMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OzoneFilterMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OzoneFilterMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OzoneFilterMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WaterTankMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WaterTankMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WaterTankMonitoringEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*WaterTankMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FuelTankMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FuelTankMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FuelTankMonitoringEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*FuelTankMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*InkCartridgeMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*InkCartridgeMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*InkCartridgeMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*InkCartridgeMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TonerCartridgeMonitoringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TonerCartridgeMonitoringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TonerCartridgeMonitoringEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TonerCartridgeMonitoringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DoorLockGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*DoorLockAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DoorLockEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*DoorLockAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*WindowCoveringGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WindowCoveringAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WindowCoveringEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*WindowCoveringAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BarrierControlGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BarrierControlAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BarrierControlEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BarrierControlAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PumpConfigurationAndControlGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PumpConfigurationAndControlAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PumpConfigurationAndControlEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PumpConfigurationAndControlAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*FanControlGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FanControlAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FanControlEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*FanControlAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatUserInterfaceConfigurationEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ThermostatUserInterfaceConfigurationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ColorControlGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ColorControlAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ColorControlEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ColorControlAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BallastConfigurationGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BallastConfigurationAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*BallastConfigurationEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*BallastConfigurationAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IlluminanceMeasurementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IlluminanceMeasurementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IlluminanceMeasurementEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*IlluminanceMeasurementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TemperatureMeasurementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TemperatureMeasurementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TemperatureMeasurementEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TemperatureMeasurementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PressureMeasurementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PressureMeasurementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*PressureMeasurementEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*PressureMeasurementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FlowMeasurementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FlowMeasurementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*FlowMeasurementEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*FlowMeasurementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*RelativeHumidityMeasurementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*RelativeHumidityMeasurementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*RelativeHumidityMeasurementEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*RelativeHumidityMeasurementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OccupancySensingGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OccupancySensingAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*OccupancySensingEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*OccupancySensingAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WakeOnLanGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WakeOnLanAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*WakeOnLanEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*WakeOnLanAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ChannelChannelListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ChannelGeneratedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ChannelAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ChannelEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ChannelAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*TargetNavigatorTargetListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*TargetNavigatorGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TargetNavigatorAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*TargetNavigatorEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*TargetNavigatorAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*MediaPlaybackGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*MediaPlaybackAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*MediaPlaybackEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*MediaPlaybackAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*MediaInputInputListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*MediaInputGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*MediaInputAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*MediaInputEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*MediaInputAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*LowPowerGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*LowPowerAcceptedCommandListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*LowPowerEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*LowPowerAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*KeypadInputGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*KeypadInputAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*KeypadInputEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*KeypadInputAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ContentLauncherAcceptHeaderListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ContentLauncherGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ContentLauncherAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ContentLauncherEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ContentLauncherAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AudioOutputOutputListListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*AudioOutputGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AudioOutputAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AudioOutputEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*AudioOutputAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationLauncherCatalogListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationLauncherGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationLauncherAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationLauncherEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationLauncherAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationBasicAllowedVendorListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationBasicGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationBasicAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationBasicEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ApplicationBasicAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AccountLoginGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AccountLoginAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*AccountLoginEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*AccountLoginAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*ElectricalMeasurementGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ElectricalMeasurementAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ElectricalMeasurementEventListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*ElectricalMeasurementAttributeListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingListInt8uListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingListOctetStringListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingListStructOctetStringListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & - data); -typedef void (*UnitTestingListNullablesAndOptionalsStructListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType> & data); -typedef void (*UnitTestingListLongOctetStringListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingListFabricScopedListAttributeCallback)( - void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingGeneratedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingAcceptedCommandListListAttributeCallback)( - void * context, const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingEventListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); -typedef void (*UnitTestingAttributeListListAttributeCallback)(void * context, - const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/darwin/controller-clusters/zap-generated/CHIPClusters.h b/zzz_generated/darwin/controller-clusters/zap-generated/CHIPClusters.h deleted file mode 100644 index 9dc22ecc288536..00000000000000 --- a/zzz_generated/darwin/controller-clusters/zap-generated/CHIPClusters.h +++ /dev/null @@ -1,785 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP -#pragma once - -#include -#include - -#include -#include -#include - -namespace chip { -namespace Controller { - -class DLL_EXPORT IdentifyCluster : public ClusterBase -{ -public: - IdentifyCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~IdentifyCluster() {} -}; - -class DLL_EXPORT GroupsCluster : public ClusterBase -{ -public: - GroupsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~GroupsCluster() {} -}; - -class DLL_EXPORT ScenesCluster : public ClusterBase -{ -public: - ScenesCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ScenesCluster() {} -}; - -class DLL_EXPORT OnOffCluster : public ClusterBase -{ -public: - OnOffCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~OnOffCluster() {} -}; - -class DLL_EXPORT OnOffSwitchConfigurationCluster : public ClusterBase -{ -public: - OnOffSwitchConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~OnOffSwitchConfigurationCluster() {} -}; - -class DLL_EXPORT LevelControlCluster : public ClusterBase -{ -public: - LevelControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~LevelControlCluster() {} -}; - -class DLL_EXPORT BinaryInputBasicCluster : public ClusterBase -{ -public: - BinaryInputBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~BinaryInputBasicCluster() {} -}; - -class DLL_EXPORT DescriptorCluster : public ClusterBase -{ -public: - DescriptorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~DescriptorCluster() {} -}; - -class DLL_EXPORT BindingCluster : public ClusterBase -{ -public: - BindingCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~BindingCluster() {} -}; - -class DLL_EXPORT AccessControlCluster : public ClusterBase -{ -public: - AccessControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~AccessControlCluster() {} -}; - -class DLL_EXPORT ActionsCluster : public ClusterBase -{ -public: - ActionsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ActionsCluster() {} -}; - -class DLL_EXPORT BasicInformationCluster : public ClusterBase -{ -public: - BasicInformationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~BasicInformationCluster() {} -}; - -class DLL_EXPORT OtaSoftwareUpdateProviderCluster : public ClusterBase -{ -public: - OtaSoftwareUpdateProviderCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~OtaSoftwareUpdateProviderCluster() {} -}; - -class DLL_EXPORT OtaSoftwareUpdateRequestorCluster : public ClusterBase -{ -public: - OtaSoftwareUpdateRequestorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~OtaSoftwareUpdateRequestorCluster() {} -}; - -class DLL_EXPORT LocalizationConfigurationCluster : public ClusterBase -{ -public: - LocalizationConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~LocalizationConfigurationCluster() {} -}; - -class DLL_EXPORT TimeFormatLocalizationCluster : public ClusterBase -{ -public: - TimeFormatLocalizationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~TimeFormatLocalizationCluster() {} -}; - -class DLL_EXPORT UnitLocalizationCluster : public ClusterBase -{ -public: - UnitLocalizationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~UnitLocalizationCluster() {} -}; - -class DLL_EXPORT PowerSourceConfigurationCluster : public ClusterBase -{ -public: - PowerSourceConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~PowerSourceConfigurationCluster() {} -}; - -class DLL_EXPORT PowerSourceCluster : public ClusterBase -{ -public: - PowerSourceCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~PowerSourceCluster() {} -}; - -class DLL_EXPORT GeneralCommissioningCluster : public ClusterBase -{ -public: - GeneralCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~GeneralCommissioningCluster() {} -}; - -class DLL_EXPORT NetworkCommissioningCluster : public ClusterBase -{ -public: - NetworkCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~NetworkCommissioningCluster() {} -}; - -class DLL_EXPORT DiagnosticLogsCluster : public ClusterBase -{ -public: - DiagnosticLogsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~DiagnosticLogsCluster() {} -}; - -class DLL_EXPORT GeneralDiagnosticsCluster : public ClusterBase -{ -public: - GeneralDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~GeneralDiagnosticsCluster() {} -}; - -class DLL_EXPORT SoftwareDiagnosticsCluster : public ClusterBase -{ -public: - SoftwareDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~SoftwareDiagnosticsCluster() {} -}; - -class DLL_EXPORT ThreadNetworkDiagnosticsCluster : public ClusterBase -{ -public: - ThreadNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ThreadNetworkDiagnosticsCluster() {} -}; - -class DLL_EXPORT WiFiNetworkDiagnosticsCluster : public ClusterBase -{ -public: - WiFiNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~WiFiNetworkDiagnosticsCluster() {} -}; - -class DLL_EXPORT EthernetNetworkDiagnosticsCluster : public ClusterBase -{ -public: - EthernetNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~EthernetNetworkDiagnosticsCluster() {} -}; - -class DLL_EXPORT BridgedDeviceBasicInformationCluster : public ClusterBase -{ -public: - BridgedDeviceBasicInformationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~BridgedDeviceBasicInformationCluster() {} -}; - -class DLL_EXPORT SwitchCluster : public ClusterBase -{ -public: - SwitchCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~SwitchCluster() {} -}; - -class DLL_EXPORT AdministratorCommissioningCluster : public ClusterBase -{ -public: - AdministratorCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~AdministratorCommissioningCluster() {} -}; - -class DLL_EXPORT OperationalCredentialsCluster : public ClusterBase -{ -public: - OperationalCredentialsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~OperationalCredentialsCluster() {} -}; - -class DLL_EXPORT GroupKeyManagementCluster : public ClusterBase -{ -public: - GroupKeyManagementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~GroupKeyManagementCluster() {} -}; - -class DLL_EXPORT FixedLabelCluster : public ClusterBase -{ -public: - FixedLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~FixedLabelCluster() {} -}; - -class DLL_EXPORT UserLabelCluster : public ClusterBase -{ -public: - UserLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~UserLabelCluster() {} -}; - -class DLL_EXPORT BooleanStateCluster : public ClusterBase -{ -public: - BooleanStateCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~BooleanStateCluster() {} -}; - -class DLL_EXPORT IcdManagementCluster : public ClusterBase -{ -public: - IcdManagementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~IcdManagementCluster() {} -}; - -class DLL_EXPORT ModeSelectCluster : public ClusterBase -{ -public: - ModeSelectCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ModeSelectCluster() {} -}; - -class DLL_EXPORT RefrigeratorAlarmCluster : public ClusterBase -{ -public: - RefrigeratorAlarmCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~RefrigeratorAlarmCluster() {} -}; - -class DLL_EXPORT AirQualityCluster : public ClusterBase -{ -public: - AirQualityCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~AirQualityCluster() {} -}; - -class DLL_EXPORT SmokeCoAlarmCluster : public ClusterBase -{ -public: - SmokeCoAlarmCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~SmokeCoAlarmCluster() {} -}; - -class DLL_EXPORT HepaFilterMonitoringCluster : public ClusterBase -{ -public: - HepaFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~HepaFilterMonitoringCluster() {} -}; - -class DLL_EXPORT ActivatedCarbonFilterMonitoringCluster : public ClusterBase -{ -public: - ActivatedCarbonFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ActivatedCarbonFilterMonitoringCluster() {} -}; - -class DLL_EXPORT CeramicFilterMonitoringCluster : public ClusterBase -{ -public: - CeramicFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~CeramicFilterMonitoringCluster() {} -}; - -class DLL_EXPORT ElectrostaticFilterMonitoringCluster : public ClusterBase -{ -public: - ElectrostaticFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ElectrostaticFilterMonitoringCluster() {} -}; - -class DLL_EXPORT UvFilterMonitoringCluster : public ClusterBase -{ -public: - UvFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~UvFilterMonitoringCluster() {} -}; - -class DLL_EXPORT IonizingFilterMonitoringCluster : public ClusterBase -{ -public: - IonizingFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~IonizingFilterMonitoringCluster() {} -}; - -class DLL_EXPORT ZeoliteFilterMonitoringCluster : public ClusterBase -{ -public: - ZeoliteFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ZeoliteFilterMonitoringCluster() {} -}; - -class DLL_EXPORT OzoneFilterMonitoringCluster : public ClusterBase -{ -public: - OzoneFilterMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~OzoneFilterMonitoringCluster() {} -}; - -class DLL_EXPORT WaterTankMonitoringCluster : public ClusterBase -{ -public: - WaterTankMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~WaterTankMonitoringCluster() {} -}; - -class DLL_EXPORT FuelTankMonitoringCluster : public ClusterBase -{ -public: - FuelTankMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~FuelTankMonitoringCluster() {} -}; - -class DLL_EXPORT InkCartridgeMonitoringCluster : public ClusterBase -{ -public: - InkCartridgeMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~InkCartridgeMonitoringCluster() {} -}; - -class DLL_EXPORT TonerCartridgeMonitoringCluster : public ClusterBase -{ -public: - TonerCartridgeMonitoringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~TonerCartridgeMonitoringCluster() {} -}; - -class DLL_EXPORT DoorLockCluster : public ClusterBase -{ -public: - DoorLockCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~DoorLockCluster() {} -}; - -class DLL_EXPORT WindowCoveringCluster : public ClusterBase -{ -public: - WindowCoveringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~WindowCoveringCluster() {} -}; - -class DLL_EXPORT BarrierControlCluster : public ClusterBase -{ -public: - BarrierControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~BarrierControlCluster() {} -}; - -class DLL_EXPORT PumpConfigurationAndControlCluster : public ClusterBase -{ -public: - PumpConfigurationAndControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~PumpConfigurationAndControlCluster() {} -}; - -class DLL_EXPORT ThermostatCluster : public ClusterBase -{ -public: - ThermostatCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ThermostatCluster() {} -}; - -class DLL_EXPORT FanControlCluster : public ClusterBase -{ -public: - FanControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~FanControlCluster() {} -}; - -class DLL_EXPORT ThermostatUserInterfaceConfigurationCluster : public ClusterBase -{ -public: - ThermostatUserInterfaceConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ThermostatUserInterfaceConfigurationCluster() {} -}; - -class DLL_EXPORT ColorControlCluster : public ClusterBase -{ -public: - ColorControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ColorControlCluster() {} -}; - -class DLL_EXPORT BallastConfigurationCluster : public ClusterBase -{ -public: - BallastConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~BallastConfigurationCluster() {} -}; - -class DLL_EXPORT IlluminanceMeasurementCluster : public ClusterBase -{ -public: - IlluminanceMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~IlluminanceMeasurementCluster() {} -}; - -class DLL_EXPORT TemperatureMeasurementCluster : public ClusterBase -{ -public: - TemperatureMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~TemperatureMeasurementCluster() {} -}; - -class DLL_EXPORT PressureMeasurementCluster : public ClusterBase -{ -public: - PressureMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~PressureMeasurementCluster() {} -}; - -class DLL_EXPORT FlowMeasurementCluster : public ClusterBase -{ -public: - FlowMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~FlowMeasurementCluster() {} -}; - -class DLL_EXPORT RelativeHumidityMeasurementCluster : public ClusterBase -{ -public: - RelativeHumidityMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~RelativeHumidityMeasurementCluster() {} -}; - -class DLL_EXPORT OccupancySensingCluster : public ClusterBase -{ -public: - OccupancySensingCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~OccupancySensingCluster() {} -}; - -class DLL_EXPORT WakeOnLanCluster : public ClusterBase -{ -public: - WakeOnLanCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~WakeOnLanCluster() {} -}; - -class DLL_EXPORT ChannelCluster : public ClusterBase -{ -public: - ChannelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ChannelCluster() {} -}; - -class DLL_EXPORT TargetNavigatorCluster : public ClusterBase -{ -public: - TargetNavigatorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~TargetNavigatorCluster() {} -}; - -class DLL_EXPORT MediaPlaybackCluster : public ClusterBase -{ -public: - MediaPlaybackCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~MediaPlaybackCluster() {} -}; - -class DLL_EXPORT MediaInputCluster : public ClusterBase -{ -public: - MediaInputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~MediaInputCluster() {} -}; - -class DLL_EXPORT LowPowerCluster : public ClusterBase -{ -public: - LowPowerCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~LowPowerCluster() {} -}; - -class DLL_EXPORT KeypadInputCluster : public ClusterBase -{ -public: - KeypadInputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~KeypadInputCluster() {} -}; - -class DLL_EXPORT ContentLauncherCluster : public ClusterBase -{ -public: - ContentLauncherCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ContentLauncherCluster() {} -}; - -class DLL_EXPORT AudioOutputCluster : public ClusterBase -{ -public: - AudioOutputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~AudioOutputCluster() {} -}; - -class DLL_EXPORT ApplicationLauncherCluster : public ClusterBase -{ -public: - ApplicationLauncherCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ApplicationLauncherCluster() {} -}; - -class DLL_EXPORT ApplicationBasicCluster : public ClusterBase -{ -public: - ApplicationBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ApplicationBasicCluster() {} -}; - -class DLL_EXPORT AccountLoginCluster : public ClusterBase -{ -public: - AccountLoginCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~AccountLoginCluster() {} -}; - -class DLL_EXPORT ElectricalMeasurementCluster : public ClusterBase -{ -public: - ElectricalMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~ElectricalMeasurementCluster() {} -}; - -class DLL_EXPORT UnitTestingCluster : public ClusterBase -{ -public: - UnitTestingCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : - ClusterBase(exchangeManager, session, endpoint) - {} - ~UnitTestingCluster() {} -}; - -} // namespace Controller -} // namespace chip diff --git a/zzz_generated/darwin/controller-clusters/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/darwin/controller-clusters/zap-generated/IMClusterCommandHandler.cpp deleted file mode 100644 index 2a1289be1113cc..00000000000000 --- a/zzz_generated/darwin/controller-clusters/zap-generated/IMClusterCommandHandler.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace chip { -namespace app { - -// Cluster specific command parsing - -namespace Clusters {} // namespace Clusters - -void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj) -{ - switch (aCommandPath.mClusterId) - { - default: - ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId)); - apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCluster); - break; - } -} - -} // namespace app -} // namespace chip diff --git a/zzz_generated/darwin/controller-clusters/zap-generated/access.h b/zzz_generated/darwin/controller-clusters/zap-generated/access.h deleted file mode 100644 index 160a470081ffad..00000000000000 --- a/zzz_generated/darwin/controller-clusters/zap-generated/access.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP - -// Prevent multiple inclusion -#pragma once - -#include - -// Prevent changing generated format -// clang-format off - -//////////////////////////////////////////////////////////////////////////////// - - - - -//////////////////////////////////////////////////////////////////////////////// - - - - -//////////////////////////////////////////////////////////////////////////////// - - - - -//////////////////////////////////////////////////////////////////////////////// - - - - -//////////////////////////////////////////////////////////////////////////////// - -// clang-format on diff --git a/zzz_generated/darwin/controller-clusters/zap-generated/endpoint_config.h b/zzz_generated/darwin/controller-clusters/zap-generated/endpoint_config.h deleted file mode 100644 index c71929f8951104..00000000000000 --- a/zzz_generated/darwin/controller-clusters/zap-generated/endpoint_config.h +++ /dev/null @@ -1,1187 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP - -// Prevent multiple inclusion -#pragma once - -#include -#include - -// Default values for the attributes longer than a pointer, -// in a form of a binary blob -// Separate block is generated for big-endian and little-endian cases. -#if BIGENDIAN_CPU -#define GENERATED_DEFAULTS \ - {} - -#else // !BIGENDIAN_CPU -#define GENERATED_DEFAULTS \ - {} - -#endif // BIGENDIAN_CPU - -#define GENERATED_DEFAULTS_COUNT (0) - -// This is an array of EmberAfAttributeMinMaxValue structures. -#define GENERATED_MIN_MAX_DEFAULT_COUNT 0 -#define GENERATED_MIN_MAX_DEFAULTS \ - {} - -// This is an array of EmberAfAttributeMetadata structures. -#define GENERATED_ATTRIBUTE_COUNT 0 -#define GENERATED_ATTRIBUTES \ - {} - -// clang-format off -#define GENERATED_EVENT_COUNT 0 -#define GENERATED_EVENTS { \ -} - -// clang-format on - -// Cluster function static arrays -#define GENERATED_FUNCTION_ARRAYS - -// This is an array of EmberAfCluster structures. -#define GENERATED_CLUSTER_COUNT 81 -// clang-format off -#define GENERATED_CLUSTERS { \ - { \ - /* Endpoint: 1, Cluster: Identify (client) */ \ - .clusterId = 0x00000003, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Groups (client) */ \ - .clusterId = 0x00000004, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Scenes (client) */ \ - .clusterId = 0x00000005, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: On/Off (client) */ \ - .clusterId = 0x00000006, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: On/off Switch Configuration (client) */ \ - .clusterId = 0x00000007, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Level Control (client) */ \ - .clusterId = 0x00000008, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Binary Input (Basic) (client) */ \ - .clusterId = 0x0000000F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Descriptor (client) */ \ - .clusterId = 0x0000001D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Binding (client) */ \ - .clusterId = 0x0000001E, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Access Control (client) */ \ - .clusterId = 0x0000001F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Actions (client) */ \ - .clusterId = 0x00000025, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Basic Information (client) */ \ - .clusterId = 0x00000028, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: OTA Software Update Provider (client) */ \ - .clusterId = 0x00000029, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: OTA Software Update Requestor (client) */ \ - .clusterId = 0x0000002A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Localization Configuration (client) */ \ - .clusterId = 0x0000002B, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Time Format Localization (client) */ \ - .clusterId = 0x0000002C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Unit Localization (client) */ \ - .clusterId = 0x0000002D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Power Source Configuration (client) */ \ - .clusterId = 0x0000002E, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Power Source (client) */ \ - .clusterId = 0x0000002F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: General Commissioning (client) */ \ - .clusterId = 0x00000030, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Network Commissioning (client) */ \ - .clusterId = 0x00000031, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Diagnostic Logs (client) */ \ - .clusterId = 0x00000032, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: General Diagnostics (client) */ \ - .clusterId = 0x00000033, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Software Diagnostics (client) */ \ - .clusterId = 0x00000034, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Thread Network Diagnostics (client) */ \ - .clusterId = 0x00000035, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: WiFi Network Diagnostics (client) */ \ - .clusterId = 0x00000036, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Ethernet Network Diagnostics (client) */ \ - .clusterId = 0x00000037, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Bridged Device Basic Information (client) */ \ - .clusterId = 0x00000039, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Switch (client) */ \ - .clusterId = 0x0000003B, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Administrator Commissioning (client) */ \ - .clusterId = 0x0000003C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Operational Credentials (client) */ \ - .clusterId = 0x0000003E, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Group Key Management (client) */ \ - .clusterId = 0x0000003F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Fixed Label (client) */ \ - .clusterId = 0x00000040, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: User Label (client) */ \ - .clusterId = 0x00000041, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Boolean State (client) */ \ - .clusterId = 0x00000045, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: ICD Management (client) */ \ - .clusterId = 0x00000046, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Mode Select (client) */ \ - .clusterId = 0x00000050, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Refrigerator Alarm (client) */ \ - .clusterId = 0x00000057, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Air Quality (client) */ \ - .clusterId = 0x0000005B, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Smoke CO Alarm (client) */ \ - .clusterId = 0x0000005C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: HEPA Filter Monitoring (client) */ \ - .clusterId = 0x00000071, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Activated Carbon Filter Monitoring (client) */ \ - .clusterId = 0x00000072, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Ceramic Filter Monitoring (client) */ \ - .clusterId = 0x00000073, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Electrostatic Filter Monitoring (client) */ \ - .clusterId = 0x00000074, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: UV Filter Monitoring (client) */ \ - .clusterId = 0x00000075, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Ionizing Filter Monitoring (client) */ \ - .clusterId = 0x00000076, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Zeolite Filter Monitoring (client) */ \ - .clusterId = 0x00000077, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Ozone Filter Monitoring (client) */ \ - .clusterId = 0x00000078, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Water Tank Monitoring (client) */ \ - .clusterId = 0x00000079, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Fuel Tank Monitoring (client) */ \ - .clusterId = 0x0000007A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Ink Cartridge Monitoring (client) */ \ - .clusterId = 0x0000007B, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Toner Cartridge Monitoring (client) */ \ - .clusterId = 0x0000007C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Door Lock (client) */ \ - .clusterId = 0x00000101, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Window Covering (client) */ \ - .clusterId = 0x00000102, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Barrier Control (client) */ \ - .clusterId = 0x00000103, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Pump Configuration and Control (client) */ \ - .clusterId = 0x00000200, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Thermostat (client) */ \ - .clusterId = 0x00000201, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Fan Control (client) */ \ - .clusterId = 0x00000202, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Thermostat User Interface Configuration (client) */ \ - .clusterId = 0x00000204, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Color Control (client) */ \ - .clusterId = 0x00000300, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Ballast Configuration (client) */ \ - .clusterId = 0x00000301, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Illuminance Measurement (client) */ \ - .clusterId = 0x00000400, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Temperature Measurement (client) */ \ - .clusterId = 0x00000402, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Pressure Measurement (client) */ \ - .clusterId = 0x00000403, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Flow Measurement (client) */ \ - .clusterId = 0x00000404, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Relative Humidity Measurement (client) */ \ - .clusterId = 0x00000405, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Occupancy Sensing (client) */ \ - .clusterId = 0x00000406, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Wake on LAN (client) */ \ - .clusterId = 0x00000503, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Channel (client) */ \ - .clusterId = 0x00000504, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Target Navigator (client) */ \ - .clusterId = 0x00000505, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Media Playback (client) */ \ - .clusterId = 0x00000506, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Media Input (client) */ \ - .clusterId = 0x00000507, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Low Power (client) */ \ - .clusterId = 0x00000508, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Keypad Input (client) */ \ - .clusterId = 0x00000509, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Content Launcher (client) */ \ - .clusterId = 0x0000050A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Audio Output (client) */ \ - .clusterId = 0x0000050B, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Application Launcher (client) */ \ - .clusterId = 0x0000050C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Application Basic (client) */ \ - .clusterId = 0x0000050D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Account Login (client) */ \ - .clusterId = 0x0000050E, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Electrical Measurement (client) */ \ - .clusterId = 0x00000B04, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ - { \ - /* Endpoint: 1, Cluster: Unit Testing (client) */ \ - .clusterId = 0xFFF1FC05, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ - .attributeCount = 0, \ - .clusterSize = 0, \ - .mask = ZAP_CLUSTER_MASK(CLIENT), \ - .functions = NULL, \ - .acceptedCommandList = nullptr, \ - .generatedCommandList = nullptr, \ - .eventList = nullptr, \ - .eventCount = 0, \ - },\ -} - -// clang-format on - -#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 0 - -// This is an array of EmberAfEndpointType structures. -#define GENERATED_ENDPOINT_TYPES \ - { \ - { ZAP_CLUSTER_INDEX(0), 81, 0 }, \ - } - -// Largest attribute size is needed for various buffers -#define ATTRIBUTE_LARGEST (1) - -static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, "ATTRIBUTE_LARGEST larger than expected"); - -// Total size of singleton attributes -#define ATTRIBUTE_SINGLETONS_SIZE (0) - -// Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE (0) - -// Number of fixed endpoints -#define FIXED_ENDPOINT_COUNT (1) - -// Array of endpoints that are supported, the data inside -// the array is the endpoint number. -#define FIXED_ENDPOINT_ARRAY \ - { \ - 0x0001 \ - } - -// Array of profile ids -#define FIXED_PROFILE_IDS \ - { \ - 0x0103 \ - } - -// Array of device types -#define FIXED_DEVICE_TYPES \ - { \ - { \ - 0x0016, 1 \ - } \ - } - -// Array of device type offsets -#define FIXED_DEVICE_TYPE_OFFSETS \ - { \ - 0 \ - } - -// Array of device type lengths -#define FIXED_DEVICE_TYPE_LENGTHS \ - { \ - 1 \ - } - -// Array of endpoint types supported on each endpoint -#define FIXED_ENDPOINT_TYPES \ - { \ - 0 \ - } - -// Array of networks supported on each endpoint -#define FIXED_NETWORKS \ - { \ - 0 \ - } diff --git a/zzz_generated/darwin/controller-clusters/zap-generated/gen_config.h b/zzz_generated/darwin/controller-clusters/zap-generated/gen_config.h deleted file mode 100644 index 7a1fca8e0d30f3..00000000000000 --- a/zzz_generated/darwin/controller-clusters/zap-generated/gen_config.h +++ /dev/null @@ -1,430 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP - -// Prevent multiple inclusion -#pragma once - -/**** Cluster endpoint counts ****/ -#define EMBER_AF_IDENTIFY_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_GROUPS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_SCENES_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ON_OFF_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ON_OFF_SWITCH_CONFIGURATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_LEVEL_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BINARY_INPUT_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_DESCRIPTOR_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BINDING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ACCESS_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ACTIONS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BASIC_INFORMATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_LOCALIZATION_CONFIGURATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_TIME_FORMAT_LOCALIZATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_UNIT_LOCALIZATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_POWER_SOURCE_CONFIGURATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_POWER_SOURCE_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_GENERAL_COMMISSIONING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_NETWORK_COMMISSIONING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_DIAGNOSTIC_LOGS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_GENERAL_DIAGNOSTICS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_SOFTWARE_DIAGNOSTICS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_SWITCH_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ADMINISTRATOR_COMMISSIONING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_GROUP_KEY_MANAGEMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_FIXED_LABEL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_USER_LABEL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BOOLEAN_STATE_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ICD_MANAGEMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_MODE_SELECT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_REFRIGERATOR_ALARM_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_AIR_QUALITY_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_SMOKE_CO_ALARM_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_HEPA_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_CERAMIC_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ELECTROSTATIC_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_UV_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_IONIZING_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ZEOLITE_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_OZONE_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_WATER_TANK_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_FUEL_TANK_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_INK_CARTRIDGE_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_TONER_CARTRIDGE_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_DOOR_LOCK_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_WINDOW_COVERING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BARRIER_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_THERMOSTAT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_FAN_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_COLOR_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BALLAST_CONFIGURATION_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ILLUMINANCE_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_TEMPERATURE_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_PRESSURE_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_FLOW_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_OCCUPANCY_SENSING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_WAKE_ON_LAN_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_CHANNEL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_TARGET_NAVIGATOR_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_MEDIA_PLAYBACK_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_MEDIA_INPUT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_LOW_POWER_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_KEYPAD_INPUT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_CONTENT_LAUNCHER_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_AUDIO_OUTPUT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_APPLICATION_LAUNCHER_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_APPLICATION_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ACCOUNT_LOGIN_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_UNIT_TESTING_CLUSTER_CLIENT_ENDPOINT_COUNT (1) - -/**** Cluster Plugins ****/ - -// Use this macro to check if the client side of the Identify cluster is included -#define ZCL_USING_IDENTIFY_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_IDENTIFY_CLIENT - -// Use this macro to check if the client side of the Groups cluster is included -#define ZCL_USING_GROUPS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_GROUPS_CLIENT - -// Use this macro to check if the client side of the Scenes cluster is included -#define ZCL_USING_SCENES_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_SCENES_CLIENT - -// Use this macro to check if the client side of the On/Off cluster is included -#define ZCL_USING_ON_OFF_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ON_OFF_CLIENT - -// Use this macro to check if the client side of the On/off Switch Configuration cluster is included -#define ZCL_USING_ON_OFF_SWITCH_CONFIGURATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ON_OFF_SWITCH_CONFIGURATION_CLIENT - -// Use this macro to check if the client side of the Level Control cluster is included -#define ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_LEVEL_CONTROL_CLIENT - -// Use this macro to check if the client side of the Binary Input (Basic) cluster is included -#define ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_BINARY_INPUT_BASIC_CLIENT - -// Use this macro to check if the client side of the Descriptor cluster is included -#define ZCL_USING_DESCRIPTOR_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_DESCRIPTOR_CLIENT - -// Use this macro to check if the client side of the Binding cluster is included -#define ZCL_USING_BINDING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_BINDING_CLIENT - -// Use this macro to check if the client side of the Access Control cluster is included -#define ZCL_USING_ACCESS_CONTROL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ACCESS_CONTROL_CLIENT - -// Use this macro to check if the client side of the Actions cluster is included -#define ZCL_USING_ACTIONS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ACTIONS_CLIENT - -// Use this macro to check if the client side of the Basic Information cluster is included -#define ZCL_USING_BASIC_INFORMATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_BASIC_INFORMATION_CLIENT - -// Use this macro to check if the client side of the OTA Software Update Provider cluster is included -#define ZCL_USING_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_PROVIDER_CLIENT - -// Use this macro to check if the client side of the OTA Software Update Requestor cluster is included -#define ZCL_USING_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR_CLIENT - -// Use this macro to check if the client side of the Localization Configuration cluster is included -#define ZCL_USING_LOCALIZATION_CONFIGURATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_LOCALIZATION_CONFIGURATION_CLIENT - -// Use this macro to check if the client side of the Time Format Localization cluster is included -#define ZCL_USING_TIME_FORMAT_LOCALIZATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_TIME_FORMAT_LOCALIZATION_CLIENT - -// Use this macro to check if the client side of the Unit Localization cluster is included -#define ZCL_USING_UNIT_LOCALIZATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_UNIT_LOCALIZATION_CLIENT - -// Use this macro to check if the client side of the Power Source Configuration cluster is included -#define ZCL_USING_POWER_SOURCE_CONFIGURATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_POWER_SOURCE_CONFIGURATION_CLIENT - -// Use this macro to check if the client side of the Power Source cluster is included -#define ZCL_USING_POWER_SOURCE_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_POWER_SOURCE_CLIENT - -// Use this macro to check if the client side of the General Commissioning cluster is included -#define ZCL_USING_GENERAL_COMMISSIONING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_GENERAL_COMMISSIONING_CLIENT - -// Use this macro to check if the client side of the Network Commissioning cluster is included -#define ZCL_USING_NETWORK_COMMISSIONING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_NETWORK_COMMISSIONING_CLIENT - -// Use this macro to check if the client side of the Diagnostic Logs cluster is included -#define ZCL_USING_DIAGNOSTIC_LOGS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_DIAGNOSTIC_LOGS_CLIENT - -// Use this macro to check if the client side of the General Diagnostics cluster is included -#define ZCL_USING_GENERAL_DIAGNOSTICS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_GENERAL_DIAGNOSTICS_CLIENT - -// Use this macro to check if the client side of the Software Diagnostics cluster is included -#define ZCL_USING_SOFTWARE_DIAGNOSTICS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_SOFTWARE_DIAGNOSTICS_CLIENT - -// Use this macro to check if the client side of the Thread Network Diagnostics cluster is included -#define ZCL_USING_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_THREAD_NETWORK_DIAGNOSTICS_CLIENT - -// Use this macro to check if the client side of the WiFi Network Diagnostics cluster is included -#define ZCL_USING_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS_CLIENT - -// Use this macro to check if the client side of the Ethernet Network Diagnostics cluster is included -#define ZCL_USING_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ETHERNET_NETWORK_DIAGNOSTICS_CLIENT - -// Use this macro to check if the client side of the Bridged Device Basic Information cluster is included -#define ZCL_USING_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_BRIDGED_DEVICE_BASIC_INFORMATION_CLIENT - -// Use this macro to check if the client side of the Switch cluster is included -#define ZCL_USING_SWITCH_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_SWITCH_CLIENT - -// Use this macro to check if the client side of the Administrator Commissioning cluster is included -#define ZCL_USING_ADMINISTRATOR_COMMISSIONING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ADMINISTRATOR_COMMISSIONING_CLIENT - -// Use this macro to check if the client side of the Operational Credentials cluster is included -#define ZCL_USING_OPERATIONAL_CREDENTIALS_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS_CLIENT - -// Use this macro to check if the client side of the Group Key Management cluster is included -#define ZCL_USING_GROUP_KEY_MANAGEMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_GROUP_KEY_MANAGEMENT_CLIENT - -// Use this macro to check if the client side of the Fixed Label cluster is included -#define ZCL_USING_FIXED_LABEL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_FIXED_LABEL_CLIENT - -// Use this macro to check if the client side of the User Label cluster is included -#define ZCL_USING_USER_LABEL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_USER_LABEL_CLIENT - -// Use this macro to check if the client side of the Boolean State cluster is included -#define ZCL_USING_BOOLEAN_STATE_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_BOOLEAN_STATE_CLIENT - -// Use this macro to check if the client side of the ICD Management cluster is included -#define ZCL_USING_ICD_MANAGEMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ICD_MANAGEMENT_CLIENT - -// Use this macro to check if the client side of the Mode Select cluster is included -#define ZCL_USING_MODE_SELECT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_MODE_SELECT_CLIENT - -// Use this macro to check if the client side of the Refrigerator Alarm cluster is included -#define ZCL_USING_REFRIGERATOR_ALARM_CLIENT -#define EMBER_AF_PLUGIN_REFRIGERATOR_ALARM_CLIENT - -// Use this macro to check if the client side of the Air Quality cluster is included -#define ZCL_USING_AIR_QUALITY_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_AIR_QUALITY_CLIENT - -// Use this macro to check if the client side of the Smoke CO Alarm cluster is included -#define ZCL_USING_SMOKE_CO_ALARM_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_SMOKE_CO_ALARM_CLIENT - -// Use this macro to check if the client side of the HEPA Filter Monitoring cluster is included -#define ZCL_USING_HEPA_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_HEPA_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the Activated Carbon Filter Monitoring cluster is included -#define ZCL_USING_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ACTIVATED_CARBON_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the Ceramic Filter Monitoring cluster is included -#define ZCL_USING_CERAMIC_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_CERAMIC_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the Electrostatic Filter Monitoring cluster is included -#define ZCL_USING_ELECTROSTATIC_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ELECTROSTATIC_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the UV Filter Monitoring cluster is included -#define ZCL_USING_UV_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_UV_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the Ionizing Filter Monitoring cluster is included -#define ZCL_USING_IONIZING_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_IONIZING_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the Zeolite Filter Monitoring cluster is included -#define ZCL_USING_ZEOLITE_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ZEOLITE_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the Ozone Filter Monitoring cluster is included -#define ZCL_USING_OZONE_FILTER_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_OZONE_FILTER_MONITORING_CLIENT - -// Use this macro to check if the client side of the Water Tank Monitoring cluster is included -#define ZCL_USING_WATER_TANK_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_WATER_TANK_MONITORING_CLIENT - -// Use this macro to check if the client side of the Fuel Tank Monitoring cluster is included -#define ZCL_USING_FUEL_TANK_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_FUEL_TANK_MONITORING_CLIENT - -// Use this macro to check if the client side of the Ink Cartridge Monitoring cluster is included -#define ZCL_USING_INK_CARTRIDGE_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_INK_CARTRIDGE_MONITORING_CLIENT - -// Use this macro to check if the client side of the Toner Cartridge Monitoring cluster is included -#define ZCL_USING_TONER_CARTRIDGE_MONITORING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_TONER_CARTRIDGE_MONITORING_CLIENT - -// Use this macro to check if the client side of the Door Lock cluster is included -#define ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_DOOR_LOCK_CLIENT - -// Use this macro to check if the client side of the Window Covering cluster is included -#define ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_WINDOW_COVERING_CLIENT - -// Use this macro to check if the client side of the Barrier Control cluster is included -#define ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_BARRIER_CONTROL_CLIENT - -// Use this macro to check if the client side of the Pump Configuration and Control cluster is included -#define ZCL_USING_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_PUMP_CONFIGURATION_AND_CONTROL_CLIENT - -// Use this macro to check if the client side of the Thermostat cluster is included -#define ZCL_USING_THERMOSTAT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_THERMOSTAT_CLIENT - -// Use this macro to check if the client side of the Fan Control cluster is included -#define ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_FAN_CONTROL_CLIENT - -// Use this macro to check if the client side of the Thermostat User Interface Configuration cluster is included -#define ZCL_USING_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLIENT - -// Use this macro to check if the client side of the Color Control cluster is included -#define ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_COLOR_CONTROL_CLIENT - -// Use this macro to check if the client side of the Ballast Configuration cluster is included -#define ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_BALLAST_CONFIGURATION_CLIENT - -// Use this macro to check if the client side of the Illuminance Measurement cluster is included -#define ZCL_USING_ILLUMINANCE_MEASUREMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ILLUMINANCE_MEASUREMENT_CLIENT - -// Use this macro to check if the client side of the Temperature Measurement cluster is included -#define ZCL_USING_TEMPERATURE_MEASUREMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_CLIENT - -// Use this macro to check if the client side of the Pressure Measurement cluster is included -#define ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_PRESSURE_MEASUREMENT_CLIENT - -// Use this macro to check if the client side of the Flow Measurement cluster is included -#define ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_FLOW_MEASUREMENT_CLIENT - -// Use this macro to check if the client side of the Relative Humidity Measurement cluster is included -#define ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_RELATIVE_HUMIDITY_MEASUREMENT_CLIENT - -// Use this macro to check if the client side of the Occupancy Sensing cluster is included -#define ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_OCCUPANCY_SENSING_CLIENT - -// Use this macro to check if the client side of the Wake on LAN cluster is included -#define ZCL_USING_WAKE_ON_LAN_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_WAKE_ON_LAN_CLIENT - -// Use this macro to check if the client side of the Channel cluster is included -#define ZCL_USING_CHANNEL_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_CHANNEL_CLIENT - -// Use this macro to check if the client side of the Target Navigator cluster is included -#define ZCL_USING_TARGET_NAVIGATOR_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_TARGET_NAVIGATOR_CLIENT - -// Use this macro to check if the client side of the Media Playback cluster is included -#define ZCL_USING_MEDIA_PLAYBACK_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_MEDIA_PLAYBACK_CLIENT - -// Use this macro to check if the client side of the Media Input cluster is included -#define ZCL_USING_MEDIA_INPUT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_MEDIA_INPUT_CLIENT - -// Use this macro to check if the client side of the Low Power cluster is included -#define ZCL_USING_LOW_POWER_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_LOW_POWER_CLIENT - -// Use this macro to check if the client side of the Keypad Input cluster is included -#define ZCL_USING_KEYPAD_INPUT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_KEYPAD_INPUT_CLIENT - -// Use this macro to check if the client side of the Content Launcher cluster is included -#define ZCL_USING_CONTENT_LAUNCHER_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_CONTENT_LAUNCHER_CLIENT - -// Use this macro to check if the client side of the Audio Output cluster is included -#define ZCL_USING_AUDIO_OUTPUT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_AUDIO_OUTPUT_CLIENT - -// Use this macro to check if the client side of the Application Launcher cluster is included -#define ZCL_USING_APPLICATION_LAUNCHER_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_APPLICATION_LAUNCHER_CLIENT - -// Use this macro to check if the client side of the Application Basic cluster is included -#define ZCL_USING_APPLICATION_BASIC_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_APPLICATION_BASIC_CLIENT - -// Use this macro to check if the client side of the Account Login cluster is included -#define ZCL_USING_ACCOUNT_LOGIN_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ACCOUNT_LOGIN_CLIENT - -// Use this macro to check if the client side of the Electrical Measurement cluster is included -#define ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_ELECTRICAL_MEASUREMENT_CLIENT - -// Use this macro to check if the client side of the Unit Testing cluster is included -#define ZCL_USING_UNIT_TESTING_CLUSTER_CLIENT -#define EMBER_AF_PLUGIN_UNIT_TESTING_CLIENT From 41b1d61d0c0e12df3335cb88df5fcbbd427c4f3a Mon Sep 17 00:00:00 2001 From: Alex Tsitsiura Date: Wed, 24 May 2023 16:01:04 +0300 Subject: [PATCH 04/38] [Telink] Fix shell build and add shell target build to CI (#26787) * [telink] Fix shell build * [Telink] Add Shell target build to CI --------- Co-authored-by: Andrii Bilynskyi --- .github/workflows/examples-telink.yaml | 12 +++++++++++ examples/lighting-app/telink/shell.overlay | 21 +++++++++++++++++++ scripts/build/build/targets.py | 1 + scripts/build/builders/telink.py | 5 +++++ .../build/testdata/all_targets_linux_x64.txt | 2 +- src/lib/shell/MainLoopZephyr.cpp | 4 ++-- 6 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 examples/lighting-app/telink/shell.overlay diff --git a/.github/workflows/examples-telink.yaml b/.github/workflows/examples-telink.yaml index 70784dd1e2d78f..bd7b5aba759a54 100644 --- a/.github/workflows/examples-telink.yaml +++ b/.github/workflows/examples-telink.yaml @@ -144,6 +144,18 @@ jobs: - name: clean out build output run: rm -rf ./out + - name: Build example Telink Lighting App with Shell + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-light-shell' build" + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + telink tlsr9518adk80d lighting-app-shell \ + out/telink-tlsr9518adk80d-light-shell/zephyr/zephyr.elf \ + /tmp/bloat_reports/ + + - name: clean out build output + run: rm -rf ./out + - name: Build example Telink Lighting App with Factory Data run: | ./scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform linux diff --git a/examples/lighting-app/telink/shell.overlay b/examples/lighting-app/telink/shell.overlay new file mode 100644 index 00000000000000..6c4922bc475aeb --- /dev/null +++ b/examples/lighting-app/telink/shell.overlay @@ -0,0 +1,21 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This file should be used as a configuration overlay to enable Shell. + +# Enable Shell support. +CONFIG_SHELL=y +CONFIG_CHIP_LIB_SHELL=y diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py index 7c62db1941eff6..56d672539288d1 100755 --- a/scripts/build/build/targets.py +++ b/scripts/build/build/targets.py @@ -585,6 +585,7 @@ def BuildTelinkTarget(): TargetPart('window-covering', app=TelinkApp.WINDOW_COVERING), ]) + target.AppendModifier('shell', enable_shell=True) target.AppendModifier('rpc', enable_rpcs=True) target.AppendModifier('factory-data', enable_factory_data=True) diff --git a/scripts/build/builders/telink.py b/scripts/build/builders/telink.py index aec767a764100d..66ce71623487c1 100644 --- a/scripts/build/builders/telink.py +++ b/scripts/build/builders/telink.py @@ -113,11 +113,13 @@ def __init__(self, runner, app: TelinkApp = TelinkApp, board: TelinkBoard = TelinkBoard.TLSR9518ADK80D, + enable_shell: bool = False, enable_rpcs: bool = False, enable_factory_data: bool = False): super(TelinkBuilder, self).__init__(root, runner) self.app = app self.board = board + self.enable_shell = enable_shell self.enable_rpcs = enable_rpcs self.enable_factory_data = enable_factory_data @@ -140,6 +142,9 @@ def generate(self): return flags = [] + if self.enable_shell: + flags.append("-DOVERLAY_CONFIG=shell.overlay") + if self.enable_rpcs: flags.append("-DOVERLAY_CONFIG=rpc.overlay") diff --git a/scripts/build/testdata/all_targets_linux_x64.txt b/scripts/build/testdata/all_targets_linux_x64.txt index b94855242ce292..bfe1d1a2118a3a 100644 --- a/scripts/build/testdata/all_targets_linux_x64.txt +++ b/scripts/build/testdata/all_targets_linux_x64.txt @@ -20,5 +20,5 @@ nrf-{nrf5340dk,nrf52840dk,nrf52840dongle}-{all-clusters,all-clusters-minimal,loc nrf-native-posix-64-tests qpg-qpg6105-{lock,light,shell,persistent-storage} tizen-arm-{all-clusters,all-clusters-minimal,chip-tool,light,tests}[-no-ble][-no-thread][-no-wifi][-asan][-ubsan] -telink-tlsr9518adk80d-{all-clusters,all-clusters-minimal,bridge,contact-sensor,light,light-switch,lock,ota-requestor,pump,pump-controller,temperature-measurement,thermostat,window-covering}[-rpc][-factory-data] +telink-tlsr9518adk80d-{all-clusters,all-clusters-minimal,bridge,contact-sensor,light,light-switch,lock,ota-requestor,pump,pump-controller,temperature-measurement,thermostat,window-covering}[-shell][-rpc][-factory-data] openiotsdk-{shell,lock} diff --git a/src/lib/shell/MainLoopZephyr.cpp b/src/lib/shell/MainLoopZephyr.cpp index b82b04c14aaa33..53080066704e3e 100644 --- a/src/lib/shell/MainLoopZephyr.cpp +++ b/src/lib/shell/MainLoopZephyr.cpp @@ -28,11 +28,11 @@ static int cmd_matter(const struct shell * shell, size_t argc, char ** argv) chip::Shell::streamer_set_shell(shell); return (Engine::Root().ExecCommand(argc - 1, argv + 1) == CHIP_NO_ERROR) ? 0 : -ENOEXEC; } -#ifdef BOARD_TLSR9518ADK80D +#ifdef CONFIG_BOARD_TLSR9518ADK80D static int RegisterCommands(void) #else static int RegisterCommands(const struct device * dev) -#endif /* BOARD_TLSR9518ADK80D */ +#endif /* CONFIG_BOARD_TLSR9518ADK80D */ { Engine::Root().RegisterDefaultCommands(); return 0; From 9befbd19ce12d060a7249ee18223279795bc3502 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 May 2023 09:16:53 -0400 Subject: [PATCH 05/38] Bump third_party/mbedtls/repo from `a8b3d0c` to `247e6f0` (#26712) Bumps [third_party/mbedtls/repo](https://github.com/ARMmbed/mbedtls) from `a8b3d0c` to `247e6f0`. - [Release notes](https://github.com/ARMmbed/mbedtls/releases) - [Commits](https://github.com/ARMmbed/mbedtls/compare/a8b3d0c7a27592ba103981a6115367a2822761bf...247e6f088dbe19e5482e038009f45210586036c9) --- updated-dependencies: - dependency-name: third_party/mbedtls/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/mbedtls/repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/mbedtls/repo b/third_party/mbedtls/repo index a8b3d0c7a27592..247e6f088dbe19 160000 --- a/third_party/mbedtls/repo +++ b/third_party/mbedtls/repo @@ -1 +1 @@ -Subproject commit a8b3d0c7a27592ba103981a6115367a2822761bf +Subproject commit 247e6f088dbe19e5482e038009f45210586036c9 From 4c4edab7ec99bb7f3ff019694e0b1d03d711e419 Mon Sep 17 00:00:00 2001 From: nekleo <96453741+nekleo@users.noreply.github.com> Date: Wed, 24 May 2023 06:17:10 -0700 Subject: [PATCH 06/38] Add Pump device type to chef with only mandatory clusters enabled (#26706) * Add Pump device type with mandatory clusters Add Pump device type (0x0303) with only the mandatory clusters enabled: On/Off, Pump Configuration and Control, Identify. * Re-generated rootnode_pump_a811bb33a0.matter * Add missing cluster attributes and regenerate .matter file * Change pump zap file to conform to spec - Remove the following clusters from EP0 that aren't specified by the root node device type: Groups, SW Diagnostics, Fixed Label, OTA provider, OTA requestor, Diagnostic Logs, and Switch. - Remove atrributes that are not mandatory - Add attributes that are mandatory - Update cluster revisions and data model revisions * Regnerate matter file using latest zap-cli --- .../devices/rootnode_pump_a811bb33a0.matter | 1205 +++ .../chef/devices/rootnode_pump_a811bb33a0.zap | 7543 +++++++++++++++++ 2 files changed, 8748 insertions(+) create mode 100644 examples/chef/devices/rootnode_pump_a811bb33a0.matter create mode 100644 examples/chef/devices/rootnode_pump_a811bb33a0.zap diff --git a/examples/chef/devices/rootnode_pump_a811bb33a0.matter b/examples/chef/devices/rootnode_pump_a811bb33a0.matter new file mode 100644 index 00000000000000..8859b11d79c201 --- /dev/null +++ b/examples/chef/devices/rootnode_pump_a811bb33a0.matter @@ -0,0 +1,1205 @@ +// This IDL was generated automatically by ZAP. +// It is for view/code review purposes only. + +struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; +} + +struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; +} + +/** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ +server cluster Identify = 3 { + enum IdentifyEffectIdentifier : ENUM8 { + kBlink = 0; + kBreathe = 1; + kOkay = 2; + kChannelChange = 11; + kFinishEffect = 254; + kStopEffect = 255; + } + + enum IdentifyEffectVariant : ENUM8 { + kDefault = 0; + } + + enum IdentifyIdentifyType : ENUM8 { + kNone = 0; + kVisibleLight = 1; + kVisibleLED = 2; + kAudibleBeep = 3; + kDisplay = 4; + kActuator = 5; + } + + attribute int16u identifyTime = 0; + readonly attribute enum8 identifyType = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct IdentifyRequest { + INT16U identifyTime = 0; + } + + request struct TriggerEffectRequest { + IdentifyEffectIdentifier effectIdentifier = 0; + IdentifyEffectVariant effectVariant = 1; + } + + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; +} + +/** Attributes and commands for switching devices between 'On' and 'Off' states. */ +server cluster OnOff = 6 { + enum OnOffDelayedAllOffEffectVariant : ENUM8 { + kFadeToOffIn0p8Seconds = 0; + kNoFade = 1; + k50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds = 2; + } + + enum OnOffDyingLightEffectVariant : ENUM8 { + k20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second = 0; + } + + enum OnOffEffectIdentifier : ENUM8 { + kDelayedAllOff = 0; + kDyingLight = 1; + } + + enum OnOffStartUpOnOff : ENUM8 { + kOff = 0; + kOn = 1; + kTogglePreviousOnOff = 2; + } + + bitmap Feature : BITMAP32 { + kLighting = 0x1; + } + + bitmap OnOffControl : BITMAP8 { + kAcceptOnlyWhenOn = 0x1; + } + + readonly nosubscribe attribute boolean onOff = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command Off(): DefaultSuccess = 0; + command On(): DefaultSuccess = 1; + command Toggle(): DefaultSuccess = 2; +} + +/** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ +server cluster Descriptor = 29 { + struct DeviceTypeStruct { + devtype_id deviceType = 0; + int16u revision = 1; + } + + readonly attribute DeviceTypeStruct deviceTypeList[] = 0; + readonly attribute CLUSTER_ID serverList[] = 1; + readonly attribute CLUSTER_ID clientList[] = 2; + readonly attribute ENDPOINT_NO partsList[] = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** The Access Control Cluster exposes a data model view of a + Node's Access Control List (ACL), which codifies the rules used to manage + and enforce Access Control for the Node's endpoints and their associated + cluster instances. */ +server cluster AccessControl = 31 { + enum AccessControlEntryAuthModeEnum : ENUM8 { + kPase = 1; + kCase = 2; + kGroup = 3; + } + + enum AccessControlEntryPrivilegeEnum : ENUM8 { + kView = 1; + kProxyView = 2; + kOperate = 3; + kManage = 4; + kAdminister = 5; + } + + enum ChangeTypeEnum : ENUM8 { + kChanged = 0; + kAdded = 1; + kRemoved = 2; + } + + struct Target { + nullable cluster_id cluster = 0; + nullable endpoint_no endpoint = 1; + nullable devtype_id deviceType = 2; + } + + fabric_scoped struct AccessControlEntryStruct { + fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; + fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; + nullable fabric_sensitive int64u subjects[] = 3; + nullable fabric_sensitive Target targets[] = 4; + fabric_idx fabricIndex = 254; + } + + fabric_scoped struct AccessControlExtensionStruct { + fabric_sensitive octet_string<128> data = 1; + fabric_idx fabricIndex = 254; + } + + fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 { + nullable node_id adminNodeID = 1; + nullable INT16U adminPasscodeID = 2; + ChangeTypeEnum changeType = 3; + nullable AccessControlEntryStruct latestValue = 4; + fabric_idx fabricIndex = 254; + } + + fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 { + nullable node_id adminNodeID = 1; + nullable INT16U adminPasscodeID = 2; + ChangeTypeEnum changeType = 3; + nullable AccessControlExtensionStruct latestValue = 4; + fabric_idx fabricIndex = 254; + } + + attribute access(read: administer, write: administer) AccessControlEntryStruct acl[] = 0; + attribute access(read: administer, write: administer) AccessControlExtensionStruct extension[] = 1; + readonly attribute int16u subjectsPerAccessControlEntry = 2; + readonly attribute int16u targetsPerAccessControlEntry = 3; + readonly attribute int16u accessControlEntriesPerFabric = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** This cluster provides attributes and events for determining basic information about Nodes, which supports both + Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, + which apply to the whole Node. Also allows setting user device information such as location. */ +server cluster BasicInformation = 40 { + enum ColorEnum : ENUM8 { + kBlack = 0; + kNavy = 1; + kGreen = 2; + kTeal = 3; + kMaroon = 4; + kPurple = 5; + kOlive = 6; + kGray = 7; + kBlue = 8; + kLime = 9; + kAqua = 10; + kRed = 11; + kFuchsia = 12; + kYellow = 13; + kWhite = 14; + kNickel = 15; + kChrome = 16; + kBrass = 17; + kCopper = 18; + kSilver = 19; + kGold = 20; + } + + enum ProductFinishEnum : ENUM8 { + kOther = 0; + kMatte = 1; + kSatin = 2; + kPolished = 3; + kRugged = 4; + kFabric = 5; + } + + struct CapabilityMinimaStruct { + int16u caseSessionsPerFabric = 0; + int16u subscriptionsPerFabric = 1; + } + + struct ProductAppearanceStruct { + ProductFinishEnum finish = 0; + nullable ColorEnum primaryColor = 1; + } + + critical event StartUp = 0 { + INT32U softwareVersion = 0; + } + + critical event ShutDown = 1 { + } + + info event Leave = 2 { + fabric_idx fabricIndex = 0; + } + + info event ReachableChanged = 3 { + boolean reachableNewValue = 0; + } + + readonly attribute int16u dataModelRevision = 0; + readonly attribute char_string<32> vendorName = 1; + readonly attribute vendor_id vendorID = 2; + readonly attribute char_string<32> productName = 3; + readonly attribute int16u productID = 4; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; + readonly attribute int16u hardwareVersion = 7; + readonly attribute char_string<64> hardwareVersionString = 8; + readonly attribute int32u softwareVersion = 9; + readonly attribute char_string<64> softwareVersionString = 10; + readonly attribute CapabilityMinimaStruct capabilityMinima = 19; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** Nodes should be expected to be deployed to any and all regions of the world. These global regions + may have differing common languages, units of measurements, and numerical formatting + standards. As such, Nodes that visually or audibly convey information need a mechanism by which + they can be configured to use a user’s preferred language, units, etc */ +server cluster LocalizationConfiguration = 43 { + attribute char_string<35> activeLocale = 0; + readonly attribute CHAR_STRING supportedLocales[] = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** Nodes should be expected to be deployed to any and all regions of the world. These global regions + may have differing preferences for how dates and times are conveyed. As such, Nodes that visually + or audibly convey time information need a mechanism by which they can be configured to use a + user’s preferred format. */ +server cluster TimeFormatLocalization = 44 { + enum CalendarTypeEnum : ENUM8 { + kBuddhist = 0; + kChinese = 1; + kCoptic = 2; + kEthiopian = 3; + kGregorian = 4; + kHebrew = 5; + kIndian = 6; + kIslamic = 7; + kJapanese = 8; + kKorean = 9; + kPersian = 10; + kTaiwanese = 11; + } + + enum HourFormatEnum : ENUM8 { + k12hr = 0; + k24hr = 1; + } + + attribute HourFormatEnum hourFormat = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** Nodes should be expected to be deployed to any and all regions of the world. These global regions + may have differing preferences for the units in which values are conveyed in communication to a + user. As such, Nodes that visually or audibly convey measurable values to the user need a + mechanism by which they can be configured to use a user’s preferred unit. */ +server cluster UnitLocalization = 45 { + enum TempUnitEnum : ENUM8 { + kFahrenheit = 0; + kCelsius = 1; + kKelvin = 2; + } + + bitmap Feature : BITMAP32 { + kTemperatureUnit = 0x1; + } + + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** This cluster is used to manage global aspects of the Commissioning flow. */ +server cluster GeneralCommissioning = 48 { + enum CommissioningErrorEnum : ENUM8 { + kOk = 0; + kValueOutsideRange = 1; + kInvalidAuthentication = 2; + kNoFailSafe = 3; + kBusyWithOtherAdmin = 4; + } + + enum RegulatoryLocationTypeEnum : ENUM8 { + kIndoor = 0; + kOutdoor = 1; + kIndoorOutdoor = 2; + } + + struct BasicCommissioningInfo { + int16u failSafeExpiryLengthSeconds = 0; + int16u maxCumulativeFailsafeSeconds = 1; + } + + attribute access(write: administer) int64u breadcrumb = 0; + readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; + readonly attribute RegulatoryLocationTypeEnum regulatoryConfig = 2; + readonly attribute RegulatoryLocationTypeEnum locationCapability = 3; + readonly attribute boolean supportsConcurrentConnection = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ArmFailSafeRequest { + INT16U expiryLengthSeconds = 0; + INT64U breadcrumb = 1; + } + + request struct SetRegulatoryConfigRequest { + RegulatoryLocationTypeEnum newRegulatoryConfig = 0; + CHAR_STRING countryCode = 1; + INT64U breadcrumb = 2; + } + + response struct ArmFailSafeResponse = 1 { + CommissioningErrorEnum errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct SetRegulatoryConfigResponse = 3 { + CommissioningErrorEnum errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct CommissioningCompleteResponse = 5 { + CommissioningErrorEnum errorCode = 0; + CHAR_STRING debugText = 1; + } + + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; +} + +/** Functionality to configure, enable, disable network credentials and access on a Matter device. */ +server cluster NetworkCommissioning = 49 { + enum NetworkCommissioningStatus : ENUM8 { + kSuccess = 0; + kOutOfRange = 1; + kBoundsExceeded = 2; + kNetworkIDNotFound = 3; + kDuplicateNetworkID = 4; + kNetworkNotFound = 5; + kRegulatoryError = 6; + kAuthFailure = 7; + kUnsupportedSecurity = 8; + kOtherConnectionFailure = 9; + kIPV6Failed = 10; + kIPBindFailed = 11; + kUnknownError = 12; + } + + enum WiFiBand : ENUM8 { + k2g4 = 0; + k3g65 = 1; + k5g = 2; + k6g = 3; + k60g = 4; + } + + bitmap Feature : BITMAP32 { + kWiFiNetworkInterface = 0x1; + kThreadNetworkInterface = 0x2; + kEthernetNetworkInterface = 0x4; + } + + bitmap WiFiSecurity : BITMAP8 { + kUnencrypted = 0x1; + kWep = 0x2; + kWpaPersonal = 0x4; + kWpa2Personal = 0x8; + kWpa3Personal = 0x10; + } + + struct NetworkInfo { + octet_string<32> networkID = 0; + boolean connected = 1; + } + + struct ThreadInterfaceScanResult { + int16u panId = 0; + int64u extendedPanId = 1; + char_string<16> networkName = 2; + int16u channel = 3; + int8u version = 4; + octet_string<8> extendedAddress = 5; + int8s rssi = 6; + int8u lqi = 7; + } + + struct WiFiInterfaceScanResult { + WiFiSecurity security = 0; + octet_string<32> ssid = 1; + octet_string<6> bssid = 2; + int16u channel = 3; + WiFiBand wiFiBand = 4; + int8s rssi = 5; + } + + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; + readonly attribute int8u scanMaxTimeSeconds = 2; + readonly attribute int8u connectMaxTimeSeconds = 3; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ScanNetworksRequest { + optional nullable OCTET_STRING<32> ssid = 0; + optional INT64U breadcrumb = 1; + } + + request struct AddOrUpdateWiFiNetworkRequest { + OCTET_STRING<32> ssid = 0; + OCTET_STRING<64> credentials = 1; + optional INT64U breadcrumb = 2; + } + + request struct AddOrUpdateThreadNetworkRequest { + OCTET_STRING<254> operationalDataset = 0; + optional INT64U breadcrumb = 1; + } + + request struct RemoveNetworkRequest { + OCTET_STRING<32> networkID = 0; + optional INT64U breadcrumb = 1; + } + + request struct ConnectNetworkRequest { + OCTET_STRING<32> networkID = 0; + optional INT64U breadcrumb = 1; + } + + request struct ReorderNetworkRequest { + OCTET_STRING<32> networkID = 0; + INT8U networkIndex = 1; + optional INT64U breadcrumb = 2; + } + + response struct ScanNetworksResponse = 1 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + optional WiFiInterfaceScanResult wiFiScanResults[] = 2; + optional ThreadInterfaceScanResult threadScanResults[] = 3; + } + + response struct NetworkConfigResponse = 5 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING<512> debugText = 1; + optional INT8U networkIndex = 2; + } + + response struct ConnectNetworkResponse = 7 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + nullable INT32S errorValue = 2; + } + + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; +} + +/** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ +server cluster GeneralDiagnostics = 51 { + enum BootReasonEnum : ENUM8 { + kUnspecified = 0; + kPowerOnReboot = 1; + kBrownOutReset = 2; + kSoftwareWatchdogReset = 3; + kHardwareWatchdogReset = 4; + kSoftwareUpdateCompleted = 5; + kSoftwareReset = 6; + } + + enum HardwareFaultEnum : ENUM8 { + kUnspecified = 0; + kRadio = 1; + kSensor = 2; + kResettableOverTemp = 3; + kNonResettableOverTemp = 4; + kPowerSource = 5; + kVisualDisplayFault = 6; + kAudioOutputFault = 7; + kUserInterfaceFault = 8; + kNonVolatileMemoryError = 9; + kTamperDetected = 10; + } + + enum InterfaceTypeEnum : ENUM8 { + kUnspecified = 0; + kWiFi = 1; + kEthernet = 2; + kCellular = 3; + kThread = 4; + } + + enum NetworkFaultEnum : ENUM8 { + kUnspecified = 0; + kHardwareFailure = 1; + kNetworkJammed = 2; + kConnectionFailed = 3; + } + + enum RadioFaultEnum : ENUM8 { + kUnspecified = 0; + kWiFiFault = 1; + kCellularFault = 2; + kThreadFault = 3; + kNFCFault = 4; + kBLEFault = 5; + kEthernetFault = 6; + } + + struct NetworkInterface { + char_string<32> name = 0; + boolean isOperational = 1; + nullable boolean offPremiseServicesReachableIPv4 = 2; + nullable boolean offPremiseServicesReachableIPv6 = 3; + octet_string<8> hardwareAddress = 4; + octet_string IPv4Addresses[] = 5; + octet_string IPv6Addresses[] = 6; + InterfaceTypeEnum type = 7; + } + + critical event HardwareFaultChange = 0 { + HardwareFaultEnum current[] = 0; + HardwareFaultEnum previous[] = 1; + } + + critical event RadioFaultChange = 1 { + RadioFaultEnum current[] = 0; + RadioFaultEnum previous[] = 1; + } + + critical event NetworkFaultChange = 2 { + NetworkFaultEnum current[] = 0; + NetworkFaultEnum previous[] = 1; + } + + critical event BootReason = 3 { + BootReasonEnum bootReason = 0; + } + + readonly attribute NetworkInterface networkInterfaces[] = 0; + readonly attribute int16u rebootCount = 1; + readonly attribute boolean testEventTriggersEnabled = 8; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING<16> enableKey = 0; + INT64U eventTrigger = 1; + } + + command access(invoke: manage) TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; +} + +/** Commands to trigger a Node to allow a new Administrator to commission it. */ +server cluster AdministratorCommissioning = 60 { + enum CommissioningWindowStatusEnum : ENUM8 { + kWindowNotOpen = 0; + kEnhancedWindowOpen = 1; + kBasicWindowOpen = 2; + } + + enum StatusCode : ENUM8 { + kBusy = 2; + kPAKEParameterError = 3; + kWindowNotOpen = 4; + } + + readonly attribute CommissioningWindowStatusEnum windowStatus = 0; + readonly attribute nullable fabric_idx adminFabricIndex = 1; + readonly attribute nullable int16u adminVendorId = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct OpenCommissioningWindowRequest { + INT16U commissioningTimeout = 0; + OCTET_STRING PAKEPasscodeVerifier = 1; + INT16U discriminator = 2; + INT32U iterations = 3; + OCTET_STRING salt = 4; + } + + request struct OpenBasicCommissioningWindowRequest { + INT16U commissioningTimeout = 0; + } + + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; +} + +/** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ +server cluster OperationalCredentials = 62 { + enum CertificateChainTypeEnum : ENUM8 { + kDACCertificate = 1; + kPAICertificate = 2; + } + + enum NodeOperationalCertStatusEnum : ENUM8 { + kOk = 0; + kInvalidPublicKey = 1; + kInvalidNodeOpId = 2; + kInvalidNOC = 3; + kMissingCsr = 4; + kTableFull = 5; + kInvalidAdminSubject = 6; + kFabricConflict = 9; + kLabelConflict = 10; + kInvalidFabricIndex = 11; + } + + fabric_scoped struct FabricDescriptorStruct { + octet_string<65> rootPublicKey = 1; + vendor_id vendorID = 2; + fabric_id fabricID = 3; + node_id nodeID = 4; + char_string<32> label = 5; + fabric_idx fabricIndex = 254; + } + + fabric_scoped struct NOCStruct { + fabric_sensitive octet_string noc = 1; + nullable fabric_sensitive octet_string icac = 2; + 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; + readonly attribute OCTET_STRING trustedRootCertificates[] = 4; + readonly attribute int8u currentFabricIndex = 5; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AttestationRequestRequest { + OCTET_STRING attestationNonce = 0; + } + + request struct CertificateChainRequestRequest { + CertificateChainTypeEnum certificateType = 0; + } + + request struct CSRRequestRequest { + OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; + } + + request struct AddNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + OCTET_STRING IPKValue = 2; + Int64u caseAdminSubject = 3; + VENDOR_ID adminVendorId = 4; + } + + request struct UpdateNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + } + + request struct UpdateFabricLabelRequest { + CHAR_STRING<32> label = 0; + } + + request struct RemoveFabricRequest { + fabric_idx fabricIndex = 0; + } + + request struct AddTrustedRootCertificateRequest { + OCTET_STRING rootCACertificate = 0; + } + + response struct AttestationResponse = 1 { + OCTET_STRING attestationElements = 0; + OCTET_STRING attestationSignature = 1; + } + + response struct CertificateChainResponse = 3 { + OCTET_STRING certificate = 0; + } + + response struct CSRResponse = 5 { + OCTET_STRING NOCSRElements = 0; + OCTET_STRING attestationSignature = 1; + } + + response struct NOCResponse = 8 { + NodeOperationalCertStatusEnum statusCode = 0; + optional fabric_idx fabricIndex = 1; + optional CHAR_STRING debugText = 2; + } + + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + fabric command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + fabric command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; +} + +/** The Group Key Management Cluster is the mechanism by which group keys are managed. */ +server cluster GroupKeyManagement = 63 { + enum GroupKeySecurityPolicyEnum : ENUM8 { + kTrustFirst = 0; + kCacheAndSync = 1; + } + + fabric_scoped struct GroupInfoMapStruct { + group_id groupId = 1; + endpoint_no endpoints[] = 2; + optional char_string<16> groupName = 3; + fabric_idx fabricIndex = 254; + } + + fabric_scoped struct GroupKeyMapStruct { + group_id groupId = 1; + int16u groupKeySetID = 2; + fabric_idx fabricIndex = 254; + } + + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicyEnum groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; + readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + fabric command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + fabric command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + fabric command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + fabric command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; +} + +/** An interface for configuring and controlling pumps. */ +server cluster PumpConfigurationAndControl = 512 { + enum ControlModeEnum : ENUM8 { + kConstantSpeed = 0; + kConstantPressure = 1; + kProportionalPressure = 2; + kConstantFlow = 3; + kConstantTemperature = 5; + kAutomatic = 7; + } + + enum OperationModeEnum : ENUM8 { + kNormal = 0; + kMinimum = 1; + kMaximum = 2; + kLocal = 3; + } + + bitmap Feature : BITMAP32 { + kConstantPressure = 0x1; + kCompensatedPressure = 0x2; + kConstantFlow = 0x4; + kConstantSpeed = 0x8; + kConstantTemperature = 0x10; + kAutomatic = 0x20; + kLocalOperation = 0x40; + } + + bitmap PumpStatusBitmap : BITMAP16 { + kDeviceFault = 0x1; + kSupplyfault = 0x2; + kSpeedLow = 0x4; + kSpeedHigh = 0x8; + kLocalOverride = 0x10; + kRunning = 0x20; + kRemotePressure = 0x40; + kRemoteFlow = 0x80; + kRemoteTemperature = 0x100; + } + + info event SupplyVoltageLow = 0 { + } + + info event SupplyVoltageHigh = 1 { + } + + info event PowerMissingPhase = 2 { + } + + info event SystemPressureLow = 3 { + } + + info event SystemPressureHigh = 4 { + } + + critical event DryRunning = 5 { + } + + info event MotorTemperatureHigh = 6 { + } + + critical event PumpMotorFatalFailure = 7 { + } + + info event ElectronicTemperatureHigh = 8 { + } + + critical event PumpBlocked = 9 { + } + + info event SensorFailure = 10 { + } + + info event ElectronicNonFatalFailure = 11 { + } + + critical event ElectronicFatalFailure = 12 { + } + + info event GeneralFault = 13 { + } + + info event Leakage = 14 { + } + + info event AirDetection = 15 { + } + + info event TurbineOperation = 16 { + } + + readonly attribute nullable int16s maxPressure = 0; + readonly attribute nullable int16u maxSpeed = 1; + readonly attribute nullable int16u maxFlow = 2; + readonly attribute OperationModeEnum effectiveOperationMode = 17; + readonly attribute ControlModeEnum effectiveControlMode = 18; + readonly nosubscribe attribute nullable int16s capacity = 19; + attribute access(write: manage) OperationModeEnum operationMode = 32; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +endpoint 0 { + device type rootdevice = 22, version 1; + + server cluster Descriptor { + callback attribute deviceTypeList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + callback attribute clusterRevision default = 2; + } + + server cluster AccessControl { + callback attribute acl; + callback attribute extension; + callback attribute subjectsPerAccessControlEntry; + callback attribute targetsPerAccessControlEntry; + callback attribute accessControlEntriesPerFabric; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster BasicInformation { + callback attribute dataModelRevision default = 17; + callback attribute vendorName; + callback attribute vendorID; + callback attribute productName; + callback attribute productID; + persist attribute nodeLabel; + callback attribute location default = "XX"; + callback attribute hardwareVersion default = 0; + callback attribute hardwareVersionString; + callback attribute softwareVersion default = 0; + callback attribute softwareVersionString; + callback attribute capabilityMinima; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 2; + } + + server cluster LocalizationConfiguration { + ram attribute activeLocale; + callback attribute supportedLocales; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster TimeFormatLocalization { + persist attribute hourFormat default = 0; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster UnitLocalization { + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster GeneralCommissioning { + ram attribute breadcrumb default = 0x0000000000000000; + callback attribute basicCommissioningInfo; + callback attribute regulatoryConfig default = 0; + callback attribute locationCapability default = 0; + callback attribute supportsConcurrentConnection default = 1; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster NetworkCommissioning { + ram attribute maxNetworks; + callback attribute networks; + ram attribute scanMaxTimeSeconds; + ram attribute connectMaxTimeSeconds; + ram attribute interfaceEnabled; + ram attribute lastNetworkingStatus; + ram attribute lastNetworkID; + ram attribute lastConnectErrorValue; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 1; + ram attribute clusterRevision default = 1; + } + + server cluster GeneralDiagnostics { + callback attribute networkInterfaces; + callback attribute rebootCount default = 0x0000; + callback attribute testEventTriggersEnabled default = false; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster AdministratorCommissioning { + callback attribute windowStatus default = 0; + callback attribute adminFabricIndex default = 1; + callback attribute adminVendorId default = 0; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster OperationalCredentials { + callback attribute NOCs; + callback attribute fabrics; + callback attribute supportedFabrics; + callback attribute commissionedFabrics; + callback attribute trustedRootCertificates; + callback attribute currentFabricIndex; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster GroupKeyManagement { + callback attribute groupKeyMap; + callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } +} +endpoint 1 { + device type anonymousEndpointType = 771, version 1; + + server cluster Identify { + ram attribute identifyTime default = 0x0; + ram attribute identifyType default = 0x0; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 4; + } + + server cluster OnOff { + ram attribute onOff default = 0; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 5; + } + + server cluster Descriptor { + callback attribute deviceTypeList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 2; + } + + server cluster PumpConfigurationAndControl { + ram attribute maxPressure; + ram attribute maxSpeed; + ram attribute maxFlow; + ram attribute effectiveOperationMode; + ram attribute effectiveControlMode; + ram attribute capacity; + ram attribute operationMode default = 0x00; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute eventList; + callback attribute attributeList; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 4; + } +} + + diff --git a/examples/chef/devices/rootnode_pump_a811bb33a0.zap b/examples/chef/devices/rootnode_pump_a811bb33a0.zap new file mode 100644 index 00000000000000..9bf2498414ad32 --- /dev/null +++ b/examples/chef/devices/rootnode_pump_a811bb33a0.zap @@ -0,0 +1,7543 @@ +{ + "featureLevel": 96, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/zcl/zcl.json", + "type": "zcl-properties", + "category": "matter", + "version": 1, + "description": "Matter SDK ZCL data" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/app-templates.json", + "type": "gen-templates-json", + "version": "chip-v1" + } + ], + "endpointTypes": [ + { + "name": "MA-rootdevice", + "deviceTypeName": "MA-rootdevice", + "deviceTypeCode": 22, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "switch type", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "switch actions", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "CurrentLevel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ACL", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Extension", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SubjectsPerAccessControlEntry", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TargetsPerAccessControlEntry", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AccessControlEntriesPerFabric", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "17", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ProductAppearance", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "ProductAppearanceStruct", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "QueryImage", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ApplyUpdateRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NotifyUpdateApplied", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "QueryImageResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ApplyUpdateResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AnnounceOTAProvider", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "DefaultOTAProviders", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "UpdatePossible", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateState", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "OTAUpdateStateEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateStateProgress", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ActiveLocale", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedLocales", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "HourFormat", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "HourFormatEnum", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveCalendarType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "CalendarTypeEnum", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedCalendarTypes", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "TemperatureUnit", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "TempUnitEnum", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ArmFailSafe", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfig", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "CommissioningComplete", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ArmFailSafeResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfigResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CommissioningCompleteResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Breadcrumb", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BasicCommissioningInfo", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "BasicCommissioningInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RegulatoryConfig", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LocationCapability", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportsConcurrentConnection", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddOrUpdateWiFiNetwork", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateThreadNetwork", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveNetwork", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ConnectNetwork", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ReorderNetwork", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ScanNetworksResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NetworkConfigResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ConnectNetworkResponse", + "code": 7, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "MaxNetworks", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Networks", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScanMaxTimeSeconds", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ConnectMaxTimeSeconds", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InterfaceEnabled", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkingStatus", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "NetworkCommissioningStatus", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkID", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConnectErrorValue", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Diagnostic Logs", + "code": 50, + "mfgCode": null, + "define": "DIAGNOSTIC_LOGS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "RetrieveLogsRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Diagnostic Logs", + "code": 50, + "mfgCode": null, + "define": "DIAGNOSTIC_LOGS_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "RetrieveLogsRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RetrieveLogsResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "NetworkInterfaces", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RebootCount", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TotalOperationalHours", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BootReason", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "BootReasonEnum", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveHardwareFaults", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveRadioFaults", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetWatermarks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "ThreadMetrics", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapFree", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapUsed", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapHighWatermark", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "Channel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RoutingRole", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "RoutingRole", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NetworkName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PanId", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ExtendedPanId", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MeshLocalPrefix", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NeighborTable", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouteTable", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionId", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Weighting", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DataVersion", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StableDataVersion", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRouterId", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DetachedRoleCount", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChildRoleCount", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouterRoleCount", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRoleCount", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AttachAttemptCount", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionIdChangeCount", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BetterPartitionAttachAttemptCount", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ParentChangeCount", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxTotalCount", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxUnicastCount", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBroadcastCount", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckRequestedCount", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckedCount", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxNoAckRequestedCount", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataCount", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataPollCount", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconCount", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconRequestCount", + "code": 31, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxOtherCount", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxRetryCount", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCcaCount", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrAbortCount", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrBusyChannelCount", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxTotalCount", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxUnicastCount", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBroadcastCount", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataCount", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataPollCount", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconCount", + "code": 44, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconRequestCount", + "code": 45, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxOtherCount", + "code": 46, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxAddressFilteredCount", + "code": 47, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDestAddrFilteredCount", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDuplicatedCount", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrNoFrameCount", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrUnknownNeighborCount", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrInvalidSrcAddrCount", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrSecCount", + "code": 53, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrFcsCount", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrOtherCount", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveTimestamp", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PendingTimestamp", + "code": 57, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Delay", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SecurityPolicy", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "SecurityPolicy", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelPage0Mask", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperationalDatasetComponents", + "code": 61, + "mfgCode": null, + "side": "server", + "type": "OperationalDatasetComponents", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaultsList", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000F", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "BSSID", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SecurityType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "SecurityTypeEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WiFiVersion", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "WiFiVersionEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelNumber", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RSSI", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BeaconLostCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BeaconRxCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketMulticastRxCount", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketMulticastTxCount", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketUnicastRxCount", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketUnicastTxCount", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentMaxRate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "PHYRate", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PHYRateEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FullDuplex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketRxCount", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketTxCount", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCount", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CollisionCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CarrierDetect", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TimeSinceReset", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "NumberOfPositions", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentPosition", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Administrator Commissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "OpenCommissioningWindow", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OpenBasicCommissioningWindow", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RevokeCommissioning", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Administrator Commissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "WindowStatus", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "CommissioningWindowStatusEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminFabricIndex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminVendorId", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AttestationRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CertificateChainRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CSRRequest", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddNOC", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UpdateNOC", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "UpdateFabricLabel", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveFabric", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddTrustedRootCertificate", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NOCs", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Fabrics", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportedFabrics", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CommissionedFabrics", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TrustedRootCertificates", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentFabricIndex", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-pump", + "deviceTypeCode": 771, + "deviceTypeProfileId": 2457, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "IdentifyType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Pump Configuration and Control", + "code": 512, + "mfgCode": null, + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Pump Configuration and Control", + "code": 512, + "mfgCode": null, + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MaxPressure", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxSpeed", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxFlow", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinConstPressure", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstPressure", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinCompPressure", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxCompPressure", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinConstSpeed", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstSpeed", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinConstFlow", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstFlow", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinConstTemp", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstTemp", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PumpStatus", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "PumpStatusBitmap", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EffectiveOperationMode", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "OperationModeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EffectiveControlMode", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "ControlModeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Capacity", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Speed", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LifetimeRunningHours", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int24u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Power", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int24u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LifetimeEnergyConsumed", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OperationMode", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "OperationModeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ControlMode", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "ControlModeEnum", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "MA-rootdevice", + "endpointTypeIndex": 0, + "profileId": 259, + "endpointId": 0, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 22 + }, + { + "endpointTypeName": "Anonymous Endpoint Type", + "endpointTypeIndex": 1, + "profileId": 2457, + "endpointId": 1, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 771 + } + ], + "log": [] +} \ No newline at end of file From b6d82fbc26215c2dcbf058d2d80004e5eca73bcb Mon Sep 17 00:00:00 2001 From: huang zhonghao <132861645+huangzh142@users.noreply.github.com> Date: Wed, 24 May 2023 21:19:05 +0800 Subject: [PATCH 07/38] =?UTF-8?q?Add=20support=20for=20LTNE=20(Local=20Tem?= =?UTF-8?q?perature=20Not=20Exposed)=20feature=20in=20Therm=E2=80=A6=20(#2?= =?UTF-8?q?6686)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add support for LTNE (Local Temperature Not Exposed) feature in Thermostat Cluster * Restyled by clang-format * Tidy up code and use error-mapping function * Restyled by clang-format * Tidy up code and add some comments * Restyled by clang-format --------- Co-authored-by: Restyled.io --- .../all-clusters-app.matter | 1 + .../all-clusters-minimal-app.matter | 1 + ...tnode_heatingcoolingunit_ncdGai1E5a.matter | 1 + .../rootnode_thermostat_bm3fb8dhYi.matter | 1 + .../placeholder/linux/apps/app1/config.matter | 1 + .../placeholder/linux/apps/app2/config.matter | 1 + .../thermostat-common/thermostat.matter | 1 + .../thermostat-server/thermostat-server.cpp | 95 ++++++++++++++++++- .../data-model/chip/thermostat-cluster.xml | 1 + .../data_model/controller-clusters.matter | 1 + .../python/chip/clusters/Objects.py | 1 + .../CHIP/zap-generated/MTRBaseClusters.h | 1 + .../app-common/zap-generated/cluster-enums.h | 13 +-- 13 files changed, 110 insertions(+), 9 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 e7dd2a91cfd493..946139ffd745b8 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 @@ -3203,6 +3203,7 @@ server cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index 7a0673a1258820..a1c11bf2222ad3 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -2725,6 +2725,7 @@ server cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter index b57fb12677d7c9..63f51e5ea5ee6a 100644 --- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter +++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter @@ -1389,6 +1389,7 @@ client cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter index d3b1db26b286dc..f45c4ad63689ec 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter @@ -1246,6 +1246,7 @@ server cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index dcf760c6988109..c7a4d886fda5c1 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -2476,6 +2476,7 @@ server cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 1b3cce593cf064..7e3ce228e46058 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -2437,6 +2437,7 @@ server cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index 55377700429ea6..6e4528e50cffd7 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -1676,6 +1676,7 @@ server cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/src/app/clusters/thermostat-server/thermostat-server.cpp b/src/app/clusters/thermostat-server/thermostat-server.cpp index 2d9585023a2a5b..85fa7c7a035322 100644 --- a/src/app/clusters/thermostat-server/thermostat-server.cpp +++ b/src/app/clusters/thermostat-server/thermostat-server.cpp @@ -31,9 +31,13 @@ #include using namespace chip; +using namespace chip::app; +using namespace chip::app::Clusters; using namespace chip::app::Clusters::Thermostat; using namespace chip::app::Clusters::Thermostat::Attributes; +using imcode = Protocols::InteractionModel::Status; + constexpr int16_t kDefaultAbsMinHeatSetpointLimit = 700; // 7C (44.5 F) is the default constexpr int16_t kDefaultAbsMaxHeatSetpointLimit = 3000; // 30C (86 F) is the default constexpr int16_t kDefaultMinHeatSetpointLimit = 700; // 7C (44.5 F) is the default @@ -62,6 +66,90 @@ constexpr int8_t kDefaultDeadBand = 25; // 2.5C is the default #define FEATURE_MAP_DEFAULT FEATURE_MAP_HEAT | FEATURE_MAP_COOL | FEATURE_MAP_AUTO +namespace { + +class ThermostatAttrAccess : public AttributeAccessInterface +{ +public: + ThermostatAttrAccess() : AttributeAccessInterface(Optional::Missing(), Thermostat::Id) {} + + CHIP_ERROR Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override; + CHIP_ERROR Write(const ConcreteDataAttributePath & aPath, AttributeValueDecoder & aDecoder) override; +}; + +ThermostatAttrAccess gThermostatAttrAccess; + +CHIP_ERROR ThermostatAttrAccess::Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) +{ + VerifyOrDie(aPath.mClusterId == Thermostat::Id); + + uint32_t ourFeatureMap; + bool localTemperatureNotExposedSupported = (FeatureMap::Get(aPath.mEndpointId, &ourFeatureMap) == EMBER_ZCL_STATUS_SUCCESS) && + ((ourFeatureMap & to_underlying(Feature::kLocalTemperatureNotExposed)) != 0); + + switch (aPath.mAttributeId) + { + case LocalTemperature::Id: + if (localTemperatureNotExposedSupported) + { + return aEncoder.EncodeNull(); + } + break; + case RemoteSensing::Id: + if (localTemperatureNotExposedSupported) + { + uint8_t valueRemoteSensing; + EmberAfStatus status = RemoteSensing::Get(aPath.mEndpointId, &valueRemoteSensing); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + StatusIB statusIB(ToInteractionModelStatus(status)); + return statusIB.ToChipError(); + } + valueRemoteSensing &= 0xFE; // clear bit 1 (LocalTemperature RemoteSensing bit) + return aEncoder.Encode(valueRemoteSensing); + } + break; + default: // return CHIP_NO_ERROR and just read from the attribute store in default + break; + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR ThermostatAttrAccess::Write(const ConcreteDataAttributePath & aPath, AttributeValueDecoder & aDecoder) +{ + VerifyOrDie(aPath.mClusterId == Thermostat::Id); + + uint32_t ourFeatureMap; + bool localTemperatureNotExposedSupported = (FeatureMap::Get(aPath.mEndpointId, &ourFeatureMap) == EMBER_ZCL_STATUS_SUCCESS) && + ((ourFeatureMap & to_underlying(Feature::kLocalTemperatureNotExposed)) != 0); + + switch (aPath.mAttributeId) + { + case RemoteSensing::Id: + if (localTemperatureNotExposedSupported) + { + uint8_t valueRemoteSensing; + ReturnErrorOnFailure(aDecoder.Decode(valueRemoteSensing)); + if (valueRemoteSensing & 0x01) // If setting bit 1 (LocalTemperature RemoteSensing bit) + { + return CHIP_IM_GLOBAL_STATUS(ConstraintError); + } + + EmberAfStatus status = RemoteSensing::Set(aPath.mEndpointId, valueRemoteSensing); + StatusIB statusIB(ToInteractionModelStatus(status)); + return statusIB.ToChipError(); + } + break; + default: // return CHIP_NO_ERROR and just write to the attribute store in default + break; + } + + return CHIP_NO_ERROR; +} + +} // anonymous namespace + void emberAfThermostatClusterServerInitCallback(chip::EndpointId endpoint) { // TODO @@ -78,8 +166,6 @@ void emberAfThermostatClusterServerInitCallback(chip::EndpointId endpoint) // or should this just be the responsibility of the thermostat application? } -using imcode = Protocols::InteractionModel::Status; - Protocols::InteractionModel::Status MatterThermostatClusterServerPreAttributeChangedCallback(const app::ConcreteAttributePath & attributePath, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value) @@ -754,4 +840,7 @@ bool emberAfThermostatClusterSetpointRaiseLowerCallback(app::CommandHandler * co return true; } -void MatterThermostatPluginServerInitCallback() {} +void MatterThermostatPluginServerInitCallback() +{ + registerAttributeAccessOverride(&gThermostatAttrAccess); +} diff --git a/src/app/zap-templates/zcl/data-model/chip/thermostat-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/thermostat-cluster.xml index bf5e90a5ca8859..e918a0706df92b 100644 --- a/src/app/zap-templates/zcl/data-model/chip/thermostat-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/thermostat-cluster.xml @@ -25,6 +25,7 @@ limitations under the License. + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 67bb2c12b80092..271670f7c03ac9 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -4341,6 +4341,7 @@ client cluster Thermostat = 513 { kScheduleConfiguration = 0x8; kSetback = 0x10; kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; } bitmap ModeForSequence : BITMAP8 { diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index 0a73b67b5a2131..3a9e9e0ac2656a 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -23088,6 +23088,7 @@ class Feature(IntFlag): kScheduleConfiguration = 0x8 kSetback = 0x10 kAutoMode = 0x20 + kLocalTemperatureNotExposed = 0x40 class ModeForSequence(IntFlag): kHeatSetpointPresent = 0x1 diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index 1bf2eec2b9ff63..970387513955ed 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -24619,6 +24619,7 @@ typedef NS_OPTIONS(uint32_t, MTRThermostatFeature) { MTRThermostatFeatureAutomode MTR_DEPRECATED( "Please use MTRThermostatFeatureAutoMode", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x20, + MTRThermostatFeatureLocalTemperatureNotExposed MTR_NEWLY_AVAILABLE = 0x40, } API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); typedef NS_OPTIONS(uint8_t, MTRThermostatModeForSequence) { 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 7a210a34e81055..6a6a3c7aad61e8 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 @@ -2828,12 +2828,13 @@ enum class DayOfWeek : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kHeating = 0x1, - kCooling = 0x2, - kOccupancy = 0x4, - kScheduleConfiguration = 0x8, - kSetback = 0x10, - kAutoMode = 0x20, + kHeating = 0x1, + kCooling = 0x2, + kOccupancy = 0x4, + kScheduleConfiguration = 0x8, + kSetback = 0x10, + kAutoMode = 0x20, + kLocalTemperatureNotExposed = 0x40, }; // Bitmap for ModeForSequence From 849cd66885fbda10329d82f543a21e4266f0ed35 Mon Sep 17 00:00:00 2001 From: Alex Tsitsiura Date: Wed, 24 May 2023 16:22:29 +0300 Subject: [PATCH 08/38] [Telink] Implement OnSubscriptionRequested callback for SED examples (#26650) * [Telink] Add OnSubscriptionRequested callback * [Telink] Enable CHIP_ICD_SUBSCRIPTION_HANDLING for all SED devices * [Telink] Move build ICDUtil into libCHIP & CHIP_ICD_SUBSCRIPTION_HANDLING default if PM * Restyled by gn * [Telink] Move ICDUtil.h include into cpp file * Restyled by clang-format * [Telink] Move ICDUtil.* to src/platform/telink --------- Co-authored-by: Restyled.io --- config/telink/chip-module/Kconfig | 20 ++++++++++ .../telink/common/src/AppTaskCommon.cpp | 9 +++++ src/platform/telink/BUILD.gn | 3 ++ src/platform/telink/ICDUtil.cpp | 40 +++++++++++++++++++ src/platform/telink/ICDUtil.h | 33 +++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 src/platform/telink/ICDUtil.cpp create mode 100644 src/platform/telink/ICDUtil.h diff --git a/config/telink/chip-module/Kconfig b/config/telink/chip-module/Kconfig index bce258355feff8..4d4fb202e98703 100644 --- a/config/telink/chip-module/Kconfig +++ b/config/telink/chip-module/Kconfig @@ -179,3 +179,23 @@ config CHIP_OPENTHREAD_TX_POWER config SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE int default 255 if SHELL_BACKEND_SERIAL + +config CHIP_ICD_SUBSCRIPTION_HANDLING + bool "Enables platform specific handling of ICD subscriptions" + default PM + help + Enables platform specific implementation that handles ICD subscription requests + and selects subscription report interval value considering maximum interval preferred + by the publisher. + +config CHIP_MAX_PREFERRED_SUBSCRIPTION_REPORT_INTERVAL + int "Maximum preferred interval of sending subscription reports (s)" + default 60 + help + Provides maximum preferred interval to be used by a publisher for negotiation + of the final maximum subscription report interval, after receiving a subscription + request from the initiator. This value should be selected as a compromise between + keeping the power consumption low due to not sending reports too often, and allowing + the initiator device to detect the publisher absence reasonably fast due to not sending + the reports too rarely. The current algorithm is to select bigger value from the one + requested by the initiator and the one preferred by the publisher. diff --git a/examples/platform/telink/common/src/AppTaskCommon.cpp b/examples/platform/telink/common/src/AppTaskCommon.cpp index c6e455b611dc07..c49222db1a782e 100644 --- a/examples/platform/telink/common/src/AppTaskCommon.cpp +++ b/examples/platform/telink/common/src/AppTaskCommon.cpp @@ -33,6 +33,11 @@ #include "OTAUtil.h" #endif +#ifdef CONFIG_CHIP_ICD_SUBSCRIPTION_HANDLING +#include "ICDUtil.h" +#include +#endif + LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); namespace { @@ -229,6 +234,10 @@ CHIP_ERROR AppTaskCommon::InitCommonParts(void) emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); #endif +#ifdef CONFIG_CHIP_ICD_SUBSCRIPTION_HANDLING + chip::app::InteractionModelEngine::GetInstance()->RegisterReadHandlerAppCallback(&GetICDUtil()); +#endif + // Add CHIP event handler and start CHIP thread. // Note that all the initialization code should happen prior to this point to avoid data races // between the main and the CHIP threads. diff --git a/src/platform/telink/BUILD.gn b/src/platform/telink/BUILD.gn index 0970bb68fee624..00fe34e81093bc 100644 --- a/src/platform/telink/BUILD.gn +++ b/src/platform/telink/BUILD.gn @@ -43,6 +43,7 @@ static_library("telink") { "ConfigurationManagerImpl.h", "ConnectivityManagerImpl.cpp", "ConnectivityManagerImpl.h", + "ICDUtil.cpp", "InetPlatformConfig.h", "KeyValueStoreManagerImpl.h", "PlatformManagerImpl.h", @@ -57,6 +58,8 @@ static_library("telink") { public_deps = [ "${chip_root}/src/platform:platform_base" ] + defines = [ "CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=" ] + if (chip_enable_factory_data) { sources += [ "FactoryDataParser.c", diff --git a/src/platform/telink/ICDUtil.cpp b/src/platform/telink/ICDUtil.cpp new file mode 100644 index 00000000000000..fd2130c6c22dcb --- /dev/null +++ b/src/platform/telink/ICDUtil.cpp @@ -0,0 +1,40 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ICDUtil.h" + +ICDUtil ICDUtil::sICDUtil; + +CHIP_ERROR ICDUtil::OnSubscriptionRequested(chip::app::ReadHandler & aReadHandler, chip::Transport::SecureSession & aSecureSession) +{ + uint16_t agreedMaxInterval = CONFIG_CHIP_MAX_PREFERRED_SUBSCRIPTION_REPORT_INTERVAL; + uint16_t requestedMinInterval = 0; + uint16_t requestedMaxInterval = 0; + aReadHandler.GetReportingIntervals(requestedMinInterval, requestedMaxInterval); + + if (requestedMaxInterval > agreedMaxInterval) + { + agreedMaxInterval = requestedMaxInterval; + } + else if (agreedMaxInterval > kSubscriptionMaxIntervalPublisherLimit) + { + agreedMaxInterval = kSubscriptionMaxIntervalPublisherLimit; + } + + return aReadHandler.SetReportingIntervals(agreedMaxInterval); +} diff --git a/src/platform/telink/ICDUtil.h b/src/platform/telink/ICDUtil.h new file mode 100644 index 00000000000000..33db1e97a051ac --- /dev/null +++ b/src/platform/telink/ICDUtil.h @@ -0,0 +1,33 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +class ICDUtil : public chip::app::ReadHandler::ApplicationCallback +{ + CHIP_ERROR OnSubscriptionRequested(chip::app::ReadHandler & aReadHandler, + chip::Transport::SecureSession & aSecureSession) override; + friend ICDUtil & GetICDUtil(); + static ICDUtil sICDUtil; +}; + +inline ICDUtil & GetICDUtil() +{ + return ICDUtil::sICDUtil; +} From 5181fc9cf2858955c83167b0d32d48c6a41dd843 Mon Sep 17 00:00:00 2001 From: Jean-Francois Penven <67962328+jepenven-silabs@users.noreply.github.com> Date: Wed, 24 May 2023 09:23:45 -0400 Subject: [PATCH 09/38] [Group][Transport] Add Random first value group counter (#26610) * Add Random first value group counter * fix CI --- src/transport/GroupPeerMessageCounter.cpp | 13 ++++++------- src/transport/GroupPeerMessageCounter.h | 2 ++ src/transport/tests/TestGroupMessageCounter.cpp | 13 ++++++++----- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/transport/GroupPeerMessageCounter.cpp b/src/transport/GroupPeerMessageCounter.cpp index 29212ee7d811d6..b93dd9bb7b9437 100644 --- a/src/transport/GroupPeerMessageCounter.cpp +++ b/src/transport/GroupPeerMessageCounter.cpp @@ -23,6 +23,8 @@ #include #include +#include + namespace chip { namespace Transport { @@ -268,7 +270,6 @@ CHIP_ERROR GroupOutgoingCounters::Init(chip::PersistentStorageDelegate * storage return CHIP_ERROR_INVALID_ARGUMENT; } - // TODO Implement Logic for first time use / factory reset to be random // Spec 4.5.1.3 mStorage = storage_delegate; uint16_t size = static_cast(sizeof(uint32_t)); @@ -277,9 +278,8 @@ CHIP_ERROR GroupOutgoingCounters::Init(chip::PersistentStorageDelegate * storage err = mStorage->SyncGetKeyValue(DefaultStorageKeyAllocator::GroupControlCounter().KeyName(), &temp, size); if (err == CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND) { - // might be the first time we retrieve the value - // TODO handle this case - mGroupControlCounter = 0; // TODO should be random + // First time retrieving the counter + mGroupControlCounter = (chip::Crypto::GetRandU32() & kMessageCounterRandomInitMask) + 1; } else if (err != CHIP_NO_ERROR) { @@ -293,9 +293,8 @@ CHIP_ERROR GroupOutgoingCounters::Init(chip::PersistentStorageDelegate * storage err = mStorage->SyncGetKeyValue(DefaultStorageKeyAllocator::GroupDataCounter().KeyName(), &temp, size); if (err == CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND) { - // might be the first time we retrieve the value - // TODO handle this case - mGroupDataCounter = 0; // TODO should be random + // First time retrieving the counter + mGroupDataCounter = (chip::Crypto::GetRandU32() & kMessageCounterRandomInitMask) + 1; } else if (err != CHIP_NO_ERROR) { diff --git a/src/transport/GroupPeerMessageCounter.h b/src/transport/GroupPeerMessageCounter.h index 6c2b278fcfa6b8..25924ec6045ef8 100644 --- a/src/transport/GroupPeerMessageCounter.h +++ b/src/transport/GroupPeerMessageCounter.h @@ -77,6 +77,8 @@ class GroupPeerTable class GroupOutgoingCounters { public: + static constexpr uint32_t kMessageCounterRandomInitMask = 0x0FFFFFFF; ///< 28-bit mask + GroupOutgoingCounters(){}; GroupOutgoingCounters(chip::PersistentStorageDelegate * storage_delegate); CHIP_ERROR Init(chip::PersistentStorageDelegate * storage_delegate); diff --git a/src/transport/tests/TestGroupMessageCounter.cpp b/src/transport/tests/TestGroupMessageCounter.cpp index 4a33d38c6be73d..8e3101e482bd70 100644 --- a/src/transport/tests/TestGroupMessageCounter.cpp +++ b/src/transport/tests/TestGroupMessageCounter.cpp @@ -404,15 +404,18 @@ void GroupMessageCounterTest(nlTestSuite * inSuite, void * inContext) chip::TestPersistentStorageDelegate delegate; TestGroupOutgoingCounters groupCientCounter; + uint32_t controlCounter = 0, dataCounter = 0; CHIP_ERROR err = groupCientCounter.Init(&delegate); NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); // Start Test with Control counter - NL_TEST_ASSERT(inSuite, groupCientCounter.GetCounter(true) == 0); + // Counter should be random + controlCounter = groupCientCounter.GetCounter(true); + dataCounter = groupCientCounter.GetCounter(false); groupCientCounter.IncrementCounter(true); - NL_TEST_ASSERT(inSuite, groupCientCounter.GetCounter(true) == 1); + NL_TEST_ASSERT(inSuite, (groupCientCounter.GetCounter(true) - controlCounter) == 1); groupCientCounter.SetCounter(true, UINT32_MAX - GROUP_MSG_COUNTER_MIN_INCREMENT); NL_TEST_ASSERT(inSuite, groupCientCounter.GetCounter(true) == UINT32_MAX - GROUP_MSG_COUNTER_MIN_INCREMENT); @@ -421,7 +424,7 @@ void GroupMessageCounterTest(nlTestSuite * inSuite, void * inContext) TestGroupOutgoingCounters groupCientCounter2(&delegate); NL_TEST_ASSERT(inSuite, groupCientCounter2.GetCounter(true) == UINT32_MAX); - NL_TEST_ASSERT(inSuite, groupCientCounter2.GetCounter(false) == GROUP_MSG_COUNTER_MIN_INCREMENT); + NL_TEST_ASSERT(inSuite, (groupCientCounter2.GetCounter(false) - dataCounter) == GROUP_MSG_COUNTER_MIN_INCREMENT); // Test Roll over groupCientCounter2.IncrementCounter(true); @@ -433,9 +436,9 @@ void GroupMessageCounterTest(nlTestSuite * inSuite, void * inContext) // Redo the test with the second counter // Start Test with Control counter - NL_TEST_ASSERT(inSuite, groupCientCounter.GetCounter(false) == 0); + dataCounter = groupCientCounter.GetCounter(false); groupCientCounter.IncrementCounter(false); - NL_TEST_ASSERT(inSuite, groupCientCounter.GetCounter(false) == 1); + NL_TEST_ASSERT(inSuite, (groupCientCounter.GetCounter(false) - dataCounter) == 1); groupCientCounter.SetCounter(false, UINT32_MAX - GROUP_MSG_COUNTER_MIN_INCREMENT); NL_TEST_ASSERT(inSuite, groupCientCounter.GetCounter(false) == UINT32_MAX - GROUP_MSG_COUNTER_MIN_INCREMENT); From 85daeacaa794cdd03050f92a852a1ea9f215fa72 Mon Sep 17 00:00:00 2001 From: adabreuti <76965454+adabreuti@users.noreply.github.com> Date: Wed, 24 May 2023 10:09:08 -0500 Subject: [PATCH 10/38] Add CC13x4 Example Application support (#26576) * Add CC13x4 Example Application support Upgrade lock-app to utilize latest UART driver isntances Update README's with clearer CHIP CLI instructions * Deprecate CC13x4 all-clusters-minimal Resovle README CI failures * Restyled by prettier-markdown * Update CI to support CC13x4 * Revert "Update CI to support CC13x4" This reverts commit 7b86eccd30dbe7c3f060e436b8578114d6507952. --------- Co-authored-by: Restyled.io --- docs/guides/darwin.md | 2 +- .../cc13x2x7_26x2x7/README.md | 7 +- examples/all-clusters-app/cc13x4_26x4/.gn | 28 + .../all-clusters-app/cc13x4_26x4/BUILD.gn | 125 ++++ .../all-clusters-app/cc13x4_26x4/README.md | 306 ++++++++ .../all-clusters-app/cc13x4_26x4/args.gni | 50 ++ .../cc13x4_26x4/build_overrides | 1 + .../all-clusters-app/cc13x4_26x4/chip.syscfg | 242 ++++++ .../cc13x4_26x4/main/AppTask.cpp | 402 ++++++++++ .../cc13x4_26x4/main/ClusterManager.cpp | 176 +++++ .../cc13x4_26x4/main/Globals.cpp | 22 + .../cc13x4_26x4/main/ZclCallbacks.cpp | 82 ++ .../cc13x4_26x4/main/include/AppConfig.h | 21 + .../cc13x4_26x4/main/include/AppEvent.h | 60 ++ .../cc13x4_26x4/main/include/AppTask.h | 72 ++ .../main/include/CHIPProjectConfig.h | 132 ++++ .../cc13x4_26x4/main/include/ClusterManager.h | 50 ++ .../cc13x4_26x4/main/include/Globals.h | 35 + .../main/include/OpenThreadConfig.h | 29 + .../cc13x4_26x4/main/main.cpp | 104 +++ .../cc13x4_26x4/third_party/connectedhomeip | 1 + .../lighting-app/cc13x2x7_26x2x7/README.md | 297 ++++++++ examples/lighting-app/cc13x4_26x4/.gn | 28 + examples/lighting-app/cc13x4_26x4/BUILD.gn | 120 +++ examples/lighting-app/cc13x4_26x4/README.md | 297 ++++++++ examples/lighting-app/cc13x4_26x4/args.gni | 50 ++ .../lighting-app/cc13x4_26x4/build_overrides | 1 + examples/lighting-app/cc13x4_26x4/chip.syscfg | 242 ++++++ .../cc13x4_26x4/include/CHIPProjectConfig.h | 122 +++ .../lighting-app/cc13x4_26x4/src/AppConfig.h | 35 + .../lighting-app/cc13x4_26x4/src/AppEvent.h | 85 +++ .../lighting-app/cc13x4_26x4/src/AppTask.cpp | 539 ++++++++++++++ .../lighting-app/cc13x4_26x4/src/AppTask.h | 93 +++ .../cc13x4_26x4/src/LightingManager.cpp | 176 +++++ .../cc13x4_26x4/src/LightingManager.h | 82 ++ .../cc13x4_26x4/src/ZclCallbacks.cpp | 75 ++ .../lighting-app/cc13x4_26x4/src/main.cpp | 104 +++ .../cc13x4_26x4/third_party/connectedhomeip | 1 + examples/lock-app/cc13x2x7_26x2x7/README.md | 152 +++- examples/lock-app/cc13x2x7_26x2x7/chip.syscfg | 78 +- examples/lock-app/cc13x4_26x4/.gn | 28 + examples/lock-app/cc13x4_26x4/BUILD.gn | 120 +++ examples/lock-app/cc13x4_26x4/README.md | 326 ++++++++ examples/lock-app/cc13x4_26x4/args.gni | 49 ++ examples/lock-app/cc13x4_26x4/build_overrides | 1 + examples/lock-app/cc13x4_26x4/chip.syscfg | 242 ++++++ .../cc13x4_26x4/include/CHIPProjectConfig.h | 130 ++++ examples/lock-app/cc13x4_26x4/src/AppConfig.h | 35 + examples/lock-app/cc13x4_26x4/src/AppEvent.h | 68 ++ examples/lock-app/cc13x4_26x4/src/AppTask.cpp | 560 ++++++++++++++ examples/lock-app/cc13x4_26x4/src/AppTask.h | 92 +++ .../lock-app/cc13x4_26x4/src/LockManager.cpp | 703 ++++++++++++++++++ .../lock-app/cc13x4_26x4/src/LockManager.h | 221 ++++++ .../lock-app/cc13x4_26x4/src/ZclCallbacks.cpp | 149 ++++ examples/lock-app/cc13x4_26x4/src/main.cpp | 104 +++ .../cc13x4_26x4/third_party/connectedhomeip | 1 + examples/lock-app/cc32xx/main/AppConfig.h | 1 - examples/lock-app/cc32xx/main/AppEvent.h | 2 +- .../cc13x2x7_26x2x7/README.md | 20 +- .../project_include/OpenThreadConfig.h | 1 + examples/platform/cc13x4_26x4/BUILD.gn | 44 ++ .../CC13X4_26X4DeviceAttestationCreds.cpp | 263 +++++++ .../CC13X4_26X4DeviceAttestationCreds.h | 36 + examples/platform/cc13x4_26x4/args.gni | 27 + .../project_include/OpenThreadConfig.h | 99 +++ examples/pump-app/cc13x2x7_26x2x7/README.md | 248 ++++-- examples/pump-app/cc13x4_26x4/.gn | 28 + examples/pump-app/cc13x4_26x4/BUILD.gn | 119 +++ examples/pump-app/cc13x4_26x4/README.md | 310 ++++++++ examples/pump-app/cc13x4_26x4/args.gni | 48 ++ examples/pump-app/cc13x4_26x4/build_overrides | 1 + examples/pump-app/cc13x4_26x4/chip.syscfg | 242 ++++++ .../pump-app/cc13x4_26x4/main/AppTask.cpp | 676 +++++++++++++++++ .../cc13x4_26x4/main/CHIPDeviceManager.cpp | 91 +++ .../cc13x4_26x4/main/DeviceCallbacks.cpp | 211 ++++++ .../pump-app/cc13x4_26x4/main/PumpManager.cpp | 333 +++++++++ .../cc13x4_26x4/main/ZclCallbacks.cpp | 55 ++ .../cc13x4_26x4/main/include/AppConfig.h | 33 + .../cc13x4_26x4/main/include/AppEvent.h | 63 ++ .../cc13x4_26x4/main/include/AppTask.h | 89 +++ .../main/include/CHIPDeviceManager.h | 144 ++++ .../main/include/CHIPProjectConfig.h | 129 ++++ .../main/include/DeviceCallbacks.h | 49 ++ .../main/include/OpenThreadConfig.h | 29 + .../cc13x4_26x4/main/include/PumpManager.h | 102 +++ examples/pump-app/cc13x4_26x4/main/main.cpp | 104 +++ .../cc13x4_26x4/third_party/connectedhomeip | 1 + .../cc13x2x7_26x2x7/README.md | 233 ++++-- examples/pump-controller-app/cc13x4_26x4/.gn | 28 + .../pump-controller-app/cc13x4_26x4/BUILD.gn | 118 +++ .../pump-controller-app/cc13x4_26x4/README.md | 298 ++++++++ .../pump-controller-app/cc13x4_26x4/args.gni | 48 ++ .../cc13x4_26x4/build_overrides | 1 + .../cc13x4_26x4/chip.syscfg | 242 ++++++ .../cc13x4_26x4/main/AppTask.cpp | 461 ++++++++++++ .../cc13x4_26x4/main/PumpManager.cpp | 204 +++++ .../cc13x4_26x4/main/ZclCallbacks.cpp | 69 ++ .../cc13x4_26x4/main/include/AppConfig.h | 34 + .../cc13x4_26x4/main/include/AppEvent.h | 63 ++ .../cc13x4_26x4/main/include/AppTask.h | 84 +++ .../main/include/CHIPProjectConfig.h | 123 +++ .../main/include/OpenThreadConfig.h | 29 + .../cc13x4_26x4/main/include/PumpManager.h | 88 +++ .../cc13x4_26x4/main/main.cpp | 104 +++ .../cc13x4_26x4/third_party/connectedhomeip | 1 + examples/shell/cc13x2x7_26x2x7/README.md | 45 +- examples/shell/cc13x4_26x4/.gn | 28 + examples/shell/cc13x4_26x4/BUILD.gn | 122 +++ examples/shell/cc13x4_26x4/README.md | 183 +++++ examples/shell/cc13x4_26x4/args.gni | 51 ++ examples/shell/cc13x4_26x4/build_overrides | 1 + examples/shell/cc13x4_26x4/chip.syscfg | 242 ++++++ examples/shell/cc13x4_26x4/include/AppTask.h | 47 ++ .../cc13x4_26x4/include/CHIPProjectConfig.h | 122 +++ .../cc13x4_26x4/include/OpenThreadConfig.h | 28 + examples/shell/cc13x4_26x4/main/AppTask.cpp | 181 +++++ examples/shell/cc13x4_26x4/main/main.cpp | 108 +++ .../cc13x4_26x4/third_party/connectedhomeip | 1 + src/platform/cc13xx_26xx/Logging.cpp | 2 +- 119 files changed, 14111 insertions(+), 229 deletions(-) create mode 100644 examples/all-clusters-app/cc13x4_26x4/.gn create mode 100644 examples/all-clusters-app/cc13x4_26x4/BUILD.gn create mode 100644 examples/all-clusters-app/cc13x4_26x4/README.md create mode 100644 examples/all-clusters-app/cc13x4_26x4/args.gni create mode 120000 examples/all-clusters-app/cc13x4_26x4/build_overrides create mode 100644 examples/all-clusters-app/cc13x4_26x4/chip.syscfg create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/ClusterManager.cpp create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/include/AppConfig.h create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/include/AppEvent.h create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/include/CHIPProjectConfig.h create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/include/ClusterManager.h create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/include/OpenThreadConfig.h create mode 100644 examples/all-clusters-app/cc13x4_26x4/main/main.cpp create mode 120000 examples/all-clusters-app/cc13x4_26x4/third_party/connectedhomeip create mode 100644 examples/lighting-app/cc13x2x7_26x2x7/README.md create mode 100644 examples/lighting-app/cc13x4_26x4/.gn create mode 100644 examples/lighting-app/cc13x4_26x4/BUILD.gn create mode 100644 examples/lighting-app/cc13x4_26x4/README.md create mode 100644 examples/lighting-app/cc13x4_26x4/args.gni create mode 120000 examples/lighting-app/cc13x4_26x4/build_overrides create mode 100644 examples/lighting-app/cc13x4_26x4/chip.syscfg create mode 100644 examples/lighting-app/cc13x4_26x4/include/CHIPProjectConfig.h create mode 100644 examples/lighting-app/cc13x4_26x4/src/AppConfig.h create mode 100644 examples/lighting-app/cc13x4_26x4/src/AppEvent.h create mode 100644 examples/lighting-app/cc13x4_26x4/src/AppTask.cpp create mode 100644 examples/lighting-app/cc13x4_26x4/src/AppTask.h create mode 100644 examples/lighting-app/cc13x4_26x4/src/LightingManager.cpp create mode 100644 examples/lighting-app/cc13x4_26x4/src/LightingManager.h create mode 100644 examples/lighting-app/cc13x4_26x4/src/ZclCallbacks.cpp create mode 100644 examples/lighting-app/cc13x4_26x4/src/main.cpp create mode 120000 examples/lighting-app/cc13x4_26x4/third_party/connectedhomeip create mode 100644 examples/lock-app/cc13x4_26x4/.gn create mode 100644 examples/lock-app/cc13x4_26x4/BUILD.gn create mode 100644 examples/lock-app/cc13x4_26x4/README.md create mode 100644 examples/lock-app/cc13x4_26x4/args.gni create mode 120000 examples/lock-app/cc13x4_26x4/build_overrides create mode 100644 examples/lock-app/cc13x4_26x4/chip.syscfg create mode 100644 examples/lock-app/cc13x4_26x4/include/CHIPProjectConfig.h create mode 100644 examples/lock-app/cc13x4_26x4/src/AppConfig.h create mode 100644 examples/lock-app/cc13x4_26x4/src/AppEvent.h create mode 100644 examples/lock-app/cc13x4_26x4/src/AppTask.cpp create mode 100644 examples/lock-app/cc13x4_26x4/src/AppTask.h create mode 100644 examples/lock-app/cc13x4_26x4/src/LockManager.cpp create mode 100644 examples/lock-app/cc13x4_26x4/src/LockManager.h create mode 100644 examples/lock-app/cc13x4_26x4/src/ZclCallbacks.cpp create mode 100644 examples/lock-app/cc13x4_26x4/src/main.cpp create mode 120000 examples/lock-app/cc13x4_26x4/third_party/connectedhomeip create mode 100644 examples/platform/cc13x4_26x4/BUILD.gn create mode 100644 examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.cpp create mode 100644 examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.h create mode 100644 examples/platform/cc13x4_26x4/args.gni create mode 100644 examples/platform/cc13x4_26x4/project_include/OpenThreadConfig.h create mode 100644 examples/pump-app/cc13x4_26x4/.gn create mode 100644 examples/pump-app/cc13x4_26x4/BUILD.gn create mode 100644 examples/pump-app/cc13x4_26x4/README.md create mode 100644 examples/pump-app/cc13x4_26x4/args.gni create mode 120000 examples/pump-app/cc13x4_26x4/build_overrides create mode 100644 examples/pump-app/cc13x4_26x4/chip.syscfg create mode 100644 examples/pump-app/cc13x4_26x4/main/AppTask.cpp create mode 100644 examples/pump-app/cc13x4_26x4/main/CHIPDeviceManager.cpp create mode 100644 examples/pump-app/cc13x4_26x4/main/DeviceCallbacks.cpp create mode 100644 examples/pump-app/cc13x4_26x4/main/PumpManager.cpp create mode 100644 examples/pump-app/cc13x4_26x4/main/ZclCallbacks.cpp create mode 100644 examples/pump-app/cc13x4_26x4/main/include/AppConfig.h create mode 100644 examples/pump-app/cc13x4_26x4/main/include/AppEvent.h create mode 100644 examples/pump-app/cc13x4_26x4/main/include/AppTask.h create mode 100644 examples/pump-app/cc13x4_26x4/main/include/CHIPDeviceManager.h create mode 100644 examples/pump-app/cc13x4_26x4/main/include/CHIPProjectConfig.h create mode 100644 examples/pump-app/cc13x4_26x4/main/include/DeviceCallbacks.h create mode 100644 examples/pump-app/cc13x4_26x4/main/include/OpenThreadConfig.h create mode 100644 examples/pump-app/cc13x4_26x4/main/include/PumpManager.h create mode 100644 examples/pump-app/cc13x4_26x4/main/main.cpp create mode 120000 examples/pump-app/cc13x4_26x4/third_party/connectedhomeip create mode 100644 examples/pump-controller-app/cc13x4_26x4/.gn create mode 100644 examples/pump-controller-app/cc13x4_26x4/BUILD.gn create mode 100644 examples/pump-controller-app/cc13x4_26x4/README.md create mode 100644 examples/pump-controller-app/cc13x4_26x4/args.gni create mode 120000 examples/pump-controller-app/cc13x4_26x4/build_overrides create mode 100644 examples/pump-controller-app/cc13x4_26x4/chip.syscfg create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/AppTask.cpp create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/PumpManager.cpp create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/ZclCallbacks.cpp create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/include/AppConfig.h create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/include/AppEvent.h create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/include/AppTask.h create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/include/CHIPProjectConfig.h create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/include/OpenThreadConfig.h create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/include/PumpManager.h create mode 100644 examples/pump-controller-app/cc13x4_26x4/main/main.cpp create mode 120000 examples/pump-controller-app/cc13x4_26x4/third_party/connectedhomeip create mode 100644 examples/shell/cc13x4_26x4/.gn create mode 100644 examples/shell/cc13x4_26x4/BUILD.gn create mode 100644 examples/shell/cc13x4_26x4/README.md create mode 100644 examples/shell/cc13x4_26x4/args.gni create mode 120000 examples/shell/cc13x4_26x4/build_overrides create mode 100644 examples/shell/cc13x4_26x4/chip.syscfg create mode 100644 examples/shell/cc13x4_26x4/include/AppTask.h create mode 100644 examples/shell/cc13x4_26x4/include/CHIPProjectConfig.h create mode 100644 examples/shell/cc13x4_26x4/include/OpenThreadConfig.h create mode 100644 examples/shell/cc13x4_26x4/main/AppTask.cpp create mode 100644 examples/shell/cc13x4_26x4/main/main.cpp create mode 120000 examples/shell/cc13x4_26x4/third_party/connectedhomeip diff --git a/docs/guides/darwin.md b/docs/guides/darwin.md index 28a05823d8416b..b83a943e325731 100644 --- a/docs/guides/darwin.md +++ b/docs/guides/darwin.md @@ -268,7 +268,7 @@ Example: - [Simulated Linux](./simulated_device_linux.md) - [Telink](/examples/lighting-app/telink/README.md) - [TI Platform](./ti_platform_overview.md) -- [TI All Clusters](/examples/all-clusters-app/cc13x2x7_26x2x7/README.md) +- [TI All Clusters](/examples/all-clusters-app/cc13x4_26x4/README.md) - [Tizen](/examples/lighting-app/tizen/README.md) ## Providing Feedback to Apple diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/README.md b/examples/all-clusters-app/cc13x2x7_26x2x7/README.md index d34c57c36d6587..f965d3dd9abbcf 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/README.md +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/README.md @@ -63,9 +63,8 @@ Some initial setup is necessary for preparing the build environment. This section will need to be done when migrating to new versions of the SDK. This guide assumes that the environment is linux based, and recommends Ubuntu 20.04. -- Download and install [SysConfig][sysconfig] ([recommended - version][sysconfig_recommended]). This can be done simply with the following - commands. +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. ``` $ cd ~ @@ -236,8 +235,6 @@ Additionally, we welcome any feedback. [matter-e2e-faq]: https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide [sysconfig]: https://www.ti.com/tool/SYSCONFIG -[sysconfig_recommended]: - https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run [ti_thread_dnd]: https://www.ti.com/wireless-connectivity/thread/design-development.html [ot_border_router_setup]: https://openthread.io/guides/border-router/build diff --git a/examples/all-clusters-app/cc13x4_26x4/.gn b/examples/all-clusters-app/cc13x4_26x4/.gn new file mode 100644 index 00000000000000..3d48789e30ab3d --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/.gn @@ -0,0 +1,28 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/all-clusters-app/cc13x4_26x4/BUILD.gn b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn new file mode 100644 index 00000000000000..259fbdfa960eeb --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn @@ -0,0 +1,125 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/openthread.gni") +import("//build_overrides/ti_simplelink_sdk.gni") + +import("${build_root}/config/defaults.gni") + +import("${chip_root}/src/platform/device.gni") + +import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") +import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") + +assert(current_os == "freertos") + +project_dir = "${chip_root}/examples/all-clusters-app/cc13x4_26x4" + +ti_simplelink_sdk("sdk") { + include_dirs = [ "${project_dir}/main/include" ] + public_configs = [ ":all-clusters-app_config" ] +} + +ti_sysconfig("sysconfig") { + sources = [ "${project_dir}/chip.syscfg" ] + + outputs = [ + "ti_devices_config.c", + "ti_radio_config.c", + "ti_radio_config.h", + "ti_drivers_config.c", + "ti_drivers_config.h", + "ti_ble_config.c", + "ti_ble_config.h", + "ti_dmm_application_policy.c", + "ti_dmm_application_policy.h", + + # disabled until upstream generation is aligned + #"tiop_config.h", + #"tiop_config.c", + + # not traditional source files + #"ti_utils_build_linker.cmd.genlibs", + #"syscfg_c.rov.xs", + #"ti_utils_runtime_model.gv", + #"ti_utils_runtime_Makefile", + #"ti_ble_app_config.opt", + #"ti_build_config.opt", + ] + + public_configs = [ ":sdk_dmm_config" ] + + cflags = [ + "-Wno-comment", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", + root_build_dir), + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + root_build_dir), + ] +} + +ti_simplelink_executable("all-clusters-app") { + output_name = "chip-${ti_simplelink_board}-all-clusters-example.out" + + sources = [ + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", + "${chip_root}/examples/providers/DeviceInfoProviderImpl.cpp", + "${project_dir}/main/AppTask.cpp", + "${project_dir}/main/ClusterManager.cpp", + "${project_dir}/main/Globals.cpp", + "${project_dir}/main/ZclCallbacks.cpp", + "${project_dir}/main/main.cpp", + ] + + deps = [ + ":sdk", + ":sysconfig", + "${chip_root}/examples/all-clusters-app/all-clusters-common", + "${chip_root}/examples/platform/cc13x4_26x4:cc13x4_26x4-attestation-credentials", + "${chip_root}/src/lib", + ] + + if (chip_openthread_ftd) { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] + } else { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + } + + include_dirs = [ + "${project_dir}", + "${project_dir}/main", + "${chip_root}/examples/all-clusters-app/all-clusters-common/include", + "${chip_root}/examples/providers/", + ] + + cflags = [ + "-Wno-implicit-fallthrough", + "-Wno-sign-compare", + "-Wconversion", + ] + + output_dir = root_out_dir +} + +group("cc13x4_26x4") { + deps = [ ":all-clusters-app" ] +} + +group("default") { + deps = [ ":cc13x4_26x4" ] +} diff --git a/examples/all-clusters-app/cc13x4_26x4/README.md b/examples/all-clusters-app/cc13x4_26x4/README.md new file mode 100644 index 00000000000000..3415f19f1a4c21 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/README.md @@ -0,0 +1,306 @@ +# Matter All-clusters Example Application + +An example application showing the use of [Matter][matter] on the Texas +Instruments CC13XX_26XX family of Wireless MCUs. + +--- + +- [Matter All Clusters Example Application](#matter-all-clusters-example-application) + - [Introduction](#introduction) + - [Device UI](#device-ui) + - [Building](#building) + - [Preparation](#preparation) + - [Compilation](#compilation) + - [Programming](#programming) + - [Code Composer Studio](#code-composer-studio) + - [UniFlash](#uniflash) + - [Running the Example](#running-the-example) + - [Provisioning](#provisioning) + - [Bluetooth LE Advertising](#bluetooth-le-advertising) + - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) + - [TI Support](#ti-support) + +--- + +## Introduction + +The CC13XX_26XX all clusters example application provides the basis to query and +run commands for all currently implemented Matter clusters. This uses the +open-source Matter implementation and the Texas Instruments SimpleLink™ CC13XX +and CC26XX software development kit. + +This example is enabled to build for CC1354P10 devices. + +The all-clusters example is intended to serve both as a means to explore the +workings of Matter, as well as a template for creating real products based on +the Texas Instruments devices. + +## Device UI + +| Action | Functionality | +| ------------------------------------------------ | --------------------------------------------- | +| Left Button (`BTN-1`) Press (more than 1000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (more than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Red LED Solid Blinking State | Identify Trigger Effect in progress (`EP0/1`) | +| Red LED Off State | No Identify Trigger Effect in progress | +| Green LED Blinking State | Identify Trigger Effect in progress (`EP2`) | +| Green LED Off State | No Identify Trigger Effect in progress | + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. + + ``` + $ cd ~ + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/all-clusters-app/cc13x2x7_26x2x7 + OR + $ cd ~/connectedhomeip/examples/all-clusters-minimal-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + $ ninja -C out/debug + + ``` + + If you would like to define arguments on the command line you may add them + to the GN call. + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Running the Example + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Matter network. The following sections assume that a Matter network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +The steps below should be followed to commission the device onto the network and +control it once it has been commissioned. + +**Step 0** + +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. + +**Step 1** + +Commission the device onto the Matter network. Run the following command on the +CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-2`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** + +Send commands to the all-cluster-app. Here are some example commands: + +Basic + +``` +./chip-tool basic read e.g. ./chip-tool basic read product-id 1 0 +``` + +Identify + +``` +./chip-tool identify identify e.g. ./chip-tool identify identify 100 1 1 +``` + +### Provisioning + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. + +#### Bluetooth LE Advertising + +To provision this example onto a Thread network, the device must be discoverable +over Bluetooth LE. BLE advertising is started by long pressing the right button +(greater than 1000ms), labeled `BTN-2` on the silkscreen. Once the device is +fully provisioned, BLE advertising will stop. + +#### Bluetooth LE Rendezvous + +Pairing this application with `ble-thread` can be done with any of the enabled +[CHIP Controller](../../../src/controller/README.md) applications. Use the +information printed on the console to aide in pairing the device. The controller +application can also be used to control the example app with the cluster +commands. + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/all-clusters-app/cc13x4_26x4/args.gni b/examples/all-clusters-app/cc13x4_26x4/args.gni new file mode 100644 index 00000000000000..a524bf977b9a23 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/args.gni @@ -0,0 +1,50 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/chip.gni") +import("${chip_root}/examples/platform/cc13x4_26x4/args.gni") + +ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") +ti_simplelink_sysconfig_target = + get_label_info(":sysconfig", "label_no_toolchain") + +ti_simplelink_board = "LP_EM_CC1354P10_6" + +# Size Optimizations +# use -Os instead of -Og, LWIP release build +optimize_debug_level = "s" +lwip_debug = false + +chip_enable_ota_requestor = false + +openthread_external_platform = "${chip_root}/third_party/openthread/platforms/cc13x4_26x4:libopenthread-cc13x4_cc26x4" + +# Disable CHIP Logging +#chip_progress_logging = false + +# Disable verbose logs for all-clusters app to save Flash +#chip_detail_logging = false +#chip_automation_logging = false + +# BLE options +chip_config_network_layer_ble = true + +# Disable lock tracking, since our FreeRTOS configuration does not set +# INCLUDE_xSemaphoreGetMutexHolder +chip_stack_lock_tracking = "none" + +matter_device_vid = "0xFFF1" +matter_device_pid = "0x8006" +matter_software_ver = "0x0001" +matter_software_ver_str = "1.0d1" diff --git a/examples/all-clusters-app/cc13x4_26x4/build_overrides b/examples/all-clusters-app/cc13x4_26x4/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/all-clusters-app/cc13x4_26x4/chip.syscfg b/examples/all-clusters-app/cc13x4_26x4/chip.syscfg new file mode 100644 index 00000000000000..e9cb55c3e22f07 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/chip.syscfg @@ -0,0 +1,242 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* Modules */ +var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); +var AESECB = scripting.addModule("/ti/drivers/AESECB"); +var Button = scripting.addModule("/ti/drivers/apps/Button"); +var LED = scripting.addModule("/ti/drivers/apps/LED"); +var NVS = scripting.addModule("/ti/drivers/NVS"); +var RF = scripting.addModule("/ti/drivers/RF"); +var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); +var RFCustom = scripting.addModule("/ti/devices/radioconfig/custom"); +var TRNG = scripting.addModule("/ti/drivers/TRNG"); +var SHA2 = scripting.addModule("/ti/drivers/SHA2"); +var UART2 = scripting.addModule("/ti/drivers/UART2"); +var ble = scripting.addModule("/ti/ble5stack/ble"); +var dmm = scripting.addModule("/ti/dmm/dmm"); +var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); +var ECDH = scripting.addModule("/ti/drivers/ECDH"); + +/* Instances */ +var AESCCM1 = AESCCM.addInstance(); +var AESECB1 = AESECB.addInstance(); +var AESECB2 = AESECB.addInstance(); +var Button1 = Button.addInstance(); +var Button2 = Button.addInstance(); +var NVS1 = NVS.addInstance(); +var NVS2 = NVS.addInstance(); +var SHA21 = SHA2.addInstance(); +var LED1 = LED.addInstance(); +var LED2 = LED.addInstance(); +var TRNG1 = TRNG.addInstance(); +var TRNG2 = TRNG.addInstance(); +var TRNG3 = TRNG.addInstance(); +var UART2 = UART2.addInstance(); +var AESCTRDRBG1 = AESCTRDRBG.addInstance(); +var ECDH1 = ECDH.addInstance(); + +AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; + +AESCCM1.$name = "CONFIG_AESCCM0"; + +AESECB1.$name = "CONFIG_AESECB0"; +AESECB2.$name = "CONFIG_AESECB_1"; + +ECDH1.$name = "CONFIG_ECDH0"; + +/* Left Button */ +Button1.$name = "CONFIG_BTN_LEFT"; +Button1.$hardware = system.deviceData.board.components["BTN-1"]; +Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; +Button1.gpioPin.pull = "Pull Up"; +Button1.gpioPin.interruptTrigger = "Falling Edge"; + +/* Left Button */ +Button2.$name = "CONFIG_BTN_RIGHT"; +Button2.$hardware = system.deviceData.board.components["BTN-2"]; +Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; +Button2.gpioPin.pull = "Pull Up"; +Button2.gpioPin.interruptTrigger = "Falling Edge"; + +/* ======== CCFG ======== */ +var CCFG = scripting.addModule("/ti/devices/CCFG"); +const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; +for(var setting in ccfgSettings) +{ + CCFG[setting] = ccfgSettings[setting]; +} + +CCFG.enableCodeGeneration = true; + + +/* NVS */ +NVS1.$name = "CONFIG_NVSINTERNAL"; +NVS1.internalFlash.regionBase = 0xFB800; +NVS1.internalFlash.regionSize = 0x2800; + + +NVS2.$name = "CONFIG_NVSEXTERNAL"; +NVS2.nvsType = "External"; // NVS Region Type +NVS2.$hardware = system.deviceData.board.components.MX25R8035F; + +/* RF */ +/* if an antenna component exists, assign it to the rf instance */ +if (system.deviceData.board && system.deviceData.board.components.RF) { + RF.$hardware = system.deviceData.board.components.RF; +} + +const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; +for(var setting in rfDesignSettings) +{ + RFDesign[setting] = rfDesignSettings[setting]; +} + + + +/* Handling for RF frontend characterization */ +if(RFDesign.rfDesign.match(/LP_CC2652PSIP/)) +{ + RFCustom.ieee = ["ieee154p10"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154p10.codeExportConfig +} +else +{ + RFCustom.ieee = ["ieee154"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154.codeExportConfig +} + +var cmdList = [ + "cmdIeeeTx", + "cmdIeeeRx", + "cmdIeeeCsma", + "cmdIeeeEdScan", + "cmdIeeeRxAck", + "cmdTxTest" +]; + +rfCodeExportConfig.useConst = true; +rfCodeExportConfig.useMulti = true; +rfCodeExportConfig.symGenMethod = "Custom"; + +const deviceId = system.deviceData.deviceId; + +// Add high PA options if present +if(deviceId.match(/CC(265[12]R|2674R|1352R1|1354R)/)) +{ + cmdList.push("cmdRadioSetup"); + rfCodeExportConfig.cmdRadioSetup = "RF_cmdIeeeRadioSetup"; +} +else if(deviceId.match(/CC(265[12]P|2674P|1352P)/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + rfCodeExportConfig.paExport = "combined"; +} +else if(deviceId.match(/CC(265[34]|1354)P/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + // currently not characterized for high PA +} +else +{ + throw new Error("Could not match platform to any known platform types"); +} + +rfCodeExportConfig.cmdList_ieee_15_4 = cmdList; + +/* Red LED */ +LED1.$name = "CONFIG_LED_RED"; +LED1.$hardware = system.deviceData.board.components.LED_RED; +LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; +LED1.gpioPin.mode = "Output"; +LED1.gpioPin.callbackFunction = ""; + +/* Green LED */ +LED2.$name = "CONFIG_LED_GREEN"; +LED2.$hardware = system.deviceData.board.components.LED_GREEN; +LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; +LED2.gpioPin.mode = "Output"; +LED2.gpioPin.callbackFunction = ""; + +/* Debug UART */ +UART2.$hardware = system.deviceData.board.components.XDS110UART; +UART2.$name = "CONFIG_UART2_DEBUG"; + +/* TRNG */ +TRNG1.$name = "CONFIG_TRNG_0"; +TRNG2.$name = "CONFIG_TRNG_THREAD"; +TRNG3.$name = "CONFIG_TRNG_APP"; + +/* BLE */ +ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; +ble.maxConnNum = 1; +ble.numOfAdvSets = 1; +ble.lockProject = true; +ble.oneLibSizeOpt = true; +ble.maxPDUSize = 255; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; +ble.connUpdateParamsPeripheral.reqMinConnInt = 30; +ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + +ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; +ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; + +ble.rfDesign = "LP_EM_CC1354P10_6"; + +ble.thorPg = 2; +/* DMM */ +dmm.project = "ti_thread_thermostat_remote_display"; +dmm.stackRoles = ["blePeripheral","threadFTD"]; +dmm.lockStackRoles = true; +dmm.numApplicationStates = 10; +dmm.applicationState0 = "ANY"; +dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; +dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; +dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; +dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; +dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; +dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; +dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; +dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; +dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; +dmm.policyArray.create(4); +dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; +dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; +dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; +dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; +dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; +dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; +dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; +dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; +dmm.policyArray[1].blePeripheral.weight = 25; +dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; +dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; +dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; +dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; +dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; +dmm.policyArray[2].threadFTD.weight = 30; +dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; +dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; +dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; +dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; +dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; +dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp b/examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp new file mode 100644 index 00000000000000..b8fa3a21a4f9d8 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp @@ -0,0 +1,402 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" +#include +#include + +#include "FreeRTOS.h" +#include "Globals.h" +#include +#include + +#include +#include + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +#endif +#include +#include + +#ifdef AUTO_PRINT_METRICS +#include +#endif +#include + +#include +#include + +/* syscfg */ +#include + +#define APP_TASK_STACK_SIZE (5000) +#define APP_TASK_PRIORITY 4 +#define APP_EVENT_QUEUE_SIZE 10 + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; + +static TaskHandle_t sAppTaskHandle; +static QueueHandle_t sAppEventQueue; + +static Button_Handle sAppLeftHandle; +static Button_Handle sAppRightHandle; +static DeviceInfoProviderImpl sExampleDeviceInfoProvider; + +AppTask AppTask::sAppTask; + +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +static DefaultOTARequestor sRequestorCore; +static DefaultOTARequestorStorage sRequestorStorage; +static DefaultOTARequestorDriver sRequestorUser; +static BDXDownloader sDownloader; +static OTAImageProcessorImpl sImageProcessor; + +void InitializeOTARequestor(void) +{ + // Initialize and interconnect the Requestor and Image Processor objects + SetRequestorInstance(&sRequestorCore); + + sRequestorStorage.Init(Server::GetInstance().GetPersistentStorage()); + sRequestorCore.Init(Server::GetInstance(), sRequestorStorage, sRequestorUser, sDownloader); + sImageProcessor.SetOTADownloader(&sDownloader); + sDownloader.SetImageProcessorDelegate(&sImageProcessor); + sRequestorUser.Init(&sRequestorCore, &sImageProcessor); +} +#endif + +#ifdef AUTO_PRINT_METRICS +static void printMetrics(void) +{ + chip::DeviceLayer::ThreadMetrics *threadMetricsOut, *currThread; + uint64_t heapFree, heapUsed; + + DiagnosticDataProviderImpl::GetDefaultInstance().GetCurrentHeapUsed(heapUsed); + DiagnosticDataProviderImpl::GetDefaultInstance().GetCurrentHeapFree(heapFree); + DiagnosticDataProviderImpl::GetDefaultInstance().GetThreadMetrics(&threadMetricsOut); + + PLAT_LOG("Heap Metrics\n Heap Free: %d Heap Used: %d", (uint32_t) heapFree, (uint32_t) heapUsed); + + PLAT_LOG("Thread Metrics\n"); + + currThread = threadMetricsOut; + while (currThread) + { + PLAT_LOG("Task Name: %s ID: %d Stack Free Min: %d", currThread->name, (uint32_t) currThread->id, + (uint32_t) currThread->stackFreeMinimum); + + currThread = currThread->Next; + } + + DiagnosticDataProviderImpl::GetDefaultInstance().ReleaseThreadMetrics(threadMetricsOut); +} +#endif + +void DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) +{ + switch (event->Type) + { + case DeviceEventType::kCHIPoBLEConnectionEstablished: + PLAT_LOG("CHIPoBLE connection established"); + break; + + case DeviceEventType::kCHIPoBLEConnectionClosed: + PLAT_LOG("CHIPoBLE disconnected"); + break; + + case DeviceEventType::kCommissioningComplete: + PLAT_LOG("Commissioning complete"); + break; + } + +#ifdef AUTO_PRINT_METRICS + printMetrics(); +#endif +} + +int AppTask::StartAppTask() +{ + int ret = 0; + + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + PLAT_LOG("Failed to allocate app event queue"); + while (1) + ; + } + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != + pdPASS) + { + PLAT_LOG("Failed to create app task"); + while (1) + ; + } + return ret; +} + +int AppTask::Init() +{ + LED_Params ledParams; + Button_Params buttonParams; + + cc13xx_26xxLogInit(); + + // Initialize LEDs + PLAT_LOG("Initialize LEDs"); + LED_init(); + + LED_Params_init(&ledParams); // default PWM LED + sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); + LED_setOff(sAppRedHandle); + + LED_Params_init(&ledParams); // default PWM LED + sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + LED_setOff(sAppGreenHandle); + + // Initialize buttons + PLAT_LOG("Initialize buttons"); + Button_init(); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); + Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); + Button_setCallback(sAppRightHandle, ButtonRightEventHandler); + + // Init Chip memory management before the stack + Platform::MemoryInit(); + + CHIP_ERROR ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().InitChipStack() failed"); + while (1) + ; + } + + ret = ThreadStackMgr().InitThreadStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().InitThreadStack() failed"); + while (1) + ; + } + +#ifdef CONFIG_OPENTHREAD_MTD_SED + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_SleepyEndDevice); +#elif CONFIG_OPENTHREAD_MTD + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#else + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); +#endif + + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); + while (1) + ; + } + + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); + while (1) + ; + } + + ret = ThreadStackMgrImpl().StartThreadTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().StartThreadTask() failed"); + while (1) + ; + } + + // Init ZCL Data Model and start server + PLAT_LOG("Initialize Server"); + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + + // Initialize info provider + sExampleDeviceInfoProvider.SetStorageDelegate(initParams.persistentStorageDelegate); + SetDeviceInfoProvider(&sExampleDeviceInfoProvider); + + chip::Server::GetInstance().Init(initParams); + + ConfigurationMgr().LogDeviceConfig(); + + // Initialize device attestation config +#ifdef CC13X4_26X4_ATTESTATION_CREDENTIALS + SetDeviceAttestationCredentialsProvider(CC13X4_26X4::GetCC13X4_26X4DacProvider()); +#else + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#endif + + // We only have network commissioning on endpoint 0. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + + // Register a function to receive events from the CHIP device layer. Note that calls to + // this function will happen on the CHIP event loop thread, not the app_main thread. + PlatformMgr().AddEventHandler(DeviceEventCallback, reinterpret_cast(nullptr)); + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + InitializeOTARequestor(); +#endif + // QR code will be used with CHIP Tool + PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); + + return 0; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + + sAppTask.Init(); + + while (1) + { + /* Task pend until we have stuff to do */ + if (xQueueReceive(sAppEventQueue, &event, portMAX_DELAY) == pdTRUE) + { + sAppTask.DispatchEvent(&event); + } + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (xQueueSend(sAppEventQueue, aEvent, 0) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonLeft; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonRight; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + switch (aEvent->Type) + { + case AppEvent::kEventType_ButtonLeft: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + chip::Server::GetInstance().ScheduleFactoryReset(); + } + break; + + case AppEvent::kEventType_ButtonRight: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + // Enable BLE advertisements + if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + if (Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() == CHIP_NO_ERROR) + { + PLAT_LOG("Enabled BLE Advertisements"); + } + else + { + PLAT_LOG("OpenBasicCommissioningWindow() failed"); + } + } + else + { + // Disable BLE advertisements + ConnectivityMgr().SetBLEAdvertisingEnabled(false); + PLAT_LOG("Disabled BLE Advertisements"); + } + } + break; + + case AppEvent::kEventType_AppEvent: + if (NULL != aEvent->Handler) + { + aEvent->Handler(aEvent); + } + break; + + case AppEvent::kEventType_None: + default: + break; + } +} diff --git a/examples/all-clusters-app/cc13x4_26x4/main/ClusterManager.cpp b/examples/all-clusters-app/cc13x4_26x4/main/ClusterManager.cpp new file mode 100644 index 00000000000000..7e6173a5a5b6a1 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/ClusterManager.cpp @@ -0,0 +1,176 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "ClusterManager.h" +#include "Globals.h" +#include +#include +#include +#include +#include + +#ifdef AUTO_PRINT_METRICS +#include +#endif + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::System; +using namespace ::chip::DeviceLayer; + +constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kIdentifyTimerDelayPerSec = 4; +ClusterManager ClusterManager::sCluster; + +#define ENDPOINT_ID_0 (0) +#define ENDPOINT_ID_1 (1) +#define ENDPOINT_ID_2 (2) + +void OnIdentifyTriggerEffect(Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE"); + break; + default: + PLAT_LOG("No identifier effect"); + break; + } + return; +} + +Identify gIdentify0 = { + chip::EndpointId{ 0 }, + [](Identify *) { PLAT_LOG("onIdentifyStart"); }, + [](Identify *) { PLAT_LOG("onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + +Identify gIdentify1 = { + chip::EndpointId{ 1 }, + [](Identify *) { PLAT_LOG("onIdentifyStart"); }, + [](Identify *) { PLAT_LOG("onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + +void ClusterManager::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + using namespace app::Clusters::OnOff::Attributes; + VerifyOrExit(attributeId == OnOff::Id, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, + PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + // At this point we can assume that value points to a bool value. + mEndpointOnOffState[endpointId - 1] = *value; + endpointId == ENDPOINT_ID_1 ? LED_write(sAppGreenHandle, *value) : LED_write(sAppRedHandle, *value); + +exit: + return; +} + +void ClusterManager::OnLevelControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + using namespace app::Clusters::LevelControl::Attributes; + bool onOffState = mEndpointOnOffState[endpointId - 1]; + uint8_t brightness = onOffState ? *value : 0; + + VerifyOrExit(brightness > 0, PLAT_LOG("Brightness set to 0, ignoring")); + VerifyOrExit(attributeId == CurrentLevel::Id, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, + PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + if (brightness > LED_BRIGHTNESS_MAX) + { + brightness = LED_BRIGHTNESS_MAX; + } + + endpointId == ENDPOINT_ID_1 ? LED_setOn(sAppGreenHandle, brightness) : LED_setOn(sAppRedHandle, brightness); + +exit: + return; +} + +void ClusterManager::OnColorControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + using namespace app::Clusters::ColorControl::Attributes; + + VerifyOrExit(attributeId == CurrentHue::Id || attributeId == CurrentSaturation::Id, + PLAT_LOG("Unhandled AttributeId ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, + PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + if (endpointId == ENDPOINT_ID_1) + { + uint8_t hue, saturation; + if (attributeId == CurrentHue::Id) + { + hue = *value; + /* Read Current Saturation value when Attribute change callback for HUE Attribute */ + CurrentSaturation::Get(endpointId, &saturation); + } + else + { + saturation = *value; + /* Read Current Hue value when Attribute change callback for SATURATION Attribute */ + CurrentHue::Get(endpointId, &hue); + } + PLAT_LOG("Color Control triggered: Hue: %d Saturation: %d", hue, saturation); + } +exit: + return; +} + +void ClusterManager::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint16_t size, + uint8_t * value) +{ + if (attributeId == app::Clusters::Identify::Attributes::IdentifyTime::Id && size == 2) + { + uint16_t identifyTime; + memcpy(&identifyTime, value, size); + if (identifyTime) + { + // Currently we have no separate indicator LEDs on each endpoints. + // We are using LED1 for endpoint 0,1 and LED2 for endpoint 2 + if (endpointId == ENDPOINT_ID_2) + { + LED_startBlinking(sAppGreenHandle, kIdentifyTimerDelayMS, identifyTime * kIdentifyTimerDelayPerSec); + } + else + { + LED_startBlinking(sAppRedHandle, kIdentifyTimerDelayMS, identifyTime * kIdentifyTimerDelayPerSec); + } + } + else + { + bool onOffState; + endpointId == ENDPOINT_ID_0 ? onOffState = mEndpointOnOffState[0] : onOffState = mEndpointOnOffState[endpointId - 1]; + endpointId == ENDPOINT_ID_2 ? LED_write(sAppRedHandle, onOffState) : LED_write(sAppGreenHandle, onOffState); + } + } +} diff --git a/examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp b/examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp new file mode 100644 index 00000000000000..01a945e1a33d12 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp @@ -0,0 +1,22 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "Globals.h" + +LED_Handle sAppRedHandle; +LED_Handle sAppGreenHandle; diff --git a/examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp b/examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp new file mode 100644 index 00000000000000..09505504315cad --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp @@ -0,0 +1,82 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file implements the handler for data model messages. + */ + +#include "AppConfig.h" +#include "Globals.h" +#include + +#include "ClusterManager.h" + +#include +#include +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::app::Clusters; + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + EndpointId endpoint = attributePath.mEndpointId; + ClusterId clusterId = attributePath.mClusterId; + AttributeId attributeId = attributePath.mAttributeId; + PLAT_LOG("MatterPostAttributeChangeCallback - Cluster ID: " ChipLogFormatMEI + ", EndPoint ID: '0x%02x', Attribute ID: " ChipLogFormatMEI, + ChipLogValueMEI(clusterId), endpoint, ChipLogValueMEI(attributeId)); + + switch (clusterId) + { + case OnOff::Id: + ClusterMgr().OnOnOffPostAttributeChangeCallback(endpoint, attributeId, value); + break; + + case Identify::Id: + ClusterMgr().OnIdentifyPostAttributeChangeCallback(endpoint, attributeId, size, value); + break; + + case LevelControl::Id: + ClusterMgr().OnLevelControlAttributeChangeCallback(endpoint, attributeId, value); + break; + + case ColorControl::Id: + ClusterMgr().OnColorControlAttributeChangeCallback(endpoint, attributeId, value); + break; + default: + PLAT_LOG("Unhandled cluster ID: " ChipLogFormatMEI, ChipLogValueMEI(clusterId)); + break; + } +} +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + */ +void emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + // TODO: implement any additional Cluster Server init actions +} diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/AppConfig.h b/examples/all-clusters-app/cc13x4_26x4/main/include/AppConfig.h new file mode 100644 index 00000000000000..7f6ce19a384bdc --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/AppConfig.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_CONFIG_H +#define APP_CONFIG_H + +#endif // APP_CONFIG_H diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/AppEvent.h b/examples/all-clusters-app/cc13x4_26x4/main/include/AppEvent.h new file mode 100644 index 00000000000000..1d1efd369495b6 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/AppEvent.h @@ -0,0 +1,60 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_EVENT_H +#define APP_EVENT_H + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventType + { + kEventType_None = 0, + kEventType_ButtonLeft, + kEventType_ButtonRight, + kEventType_AppEvent, + }; + + enum AppEventButtonType + { + kAppEventButtonType_None = 0, + kAppEventButtonType_Clicked, + kAppEventButtonType_LongClicked, + }; + + enum AppEventType Type; + + union + { + struct + { + enum AppEventButtonType Type; + } ButtonEvent; + + struct + { + void * Context; + } BoltLockEvent; + }; + + EventHandler Handler; +}; + +#endif // APP_EVENT_H diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h b/examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h new file mode 100644 index 00000000000000..002e1b3f70557c --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_TASK_H +#define APP_TASK_H + +#include +#include + +#include "FreeRTOS.h" +#include "semphr.h" +#include "task.h" + +#include "AppEvent.h" + +#include + +class AppTask +{ +public: + int StartAppTask(); + static void AppTaskMain(void * pvParameter); + + void PostEvent(const AppEvent * event); + +private: + friend AppTask & GetAppTask(void); + + int Init(); + + void DispatchEvent(AppEvent * event); + + static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); + static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); + static void TimerEventHandler(void * p_context); + + enum Function_t + { + kFunction_NoneSelected = 0, + kFunction_SoftwareUpdate = 0, + kFunction_FactoryReset, + + kFunction_Invalid + } Function; + + Function_t mFunction; + bool mFunctionTimerActive; + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} + +#endif // APP_TASK_H diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/CHIPProjectConfig.h b/examples/all-clusters-app/cc13x4_26x4/main/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..939f01d93b8e6c --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/CHIPProjectConfig.h @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#ifndef CHIP_PROJECT_CONFIG_H +#define CHIP_PROJECT_CONFIG_H + +#if BUILD_RELEASE // release build +// Note: Default Pairing/PIN/Serial Numbers being used. These should not be enabled for production builds +#endif // BUILD_RELEASE + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" + +/** + * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER + * + * Enables the use of a hard-coded default serial number if none + * is found in CHIP NV storage. + */ +#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN" + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 + +/** + * Values set by args.gni: + * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID + * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + */ + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for CHIP-over-BLE (CHIPOBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC + * + * Enables synchronizing the device's real time clock with a remote CHIP Time service + * using the CHIP Time Sync protocol. + */ +// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1 + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) + +#define MATTER_CC13XX_26XX_PLATFORM_LOG_ENABLED 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT + * + * Enable the OpenThread SRP client to allow for CHIP device discovery. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 + +/** + * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE + * + * For a development build, set the default importance of events to be logged as Debug. + * Since debug is the lowest importance level, this means all standard, critical, info and + * debug importance level vi events get logged. + */ +#if BUILD_RELEASE +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production +#else +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug +#endif // BUILD_RELEASE + +#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 + +/** + * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER + * + * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. + */ +#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 1 + +/** + * @def CHIP_IM_MAX_NUM_WRITE_HANDLER + * + * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. + */ +#define CHIP_IM_MAX_NUM_WRITE_HANDLER 1 + +// All clusters app has 3 group endpoints. This needs to defined here so that +// CHIP_CONFIG_MAX_GROUPS_PER_FABRIC is properly configured. +#define CHIP_CONFIG_MAX_GROUP_ENDPOINTS_PER_FABRIC 3 + +#endif // CHIP_PROJECT_CONFIG_H diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/ClusterManager.h b/examples/all-clusters-app/cc13x4_26x4/main/include/ClusterManager.h new file mode 100644 index 00000000000000..7a9a363980ca6f --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/ClusterManager.h @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file ClusterManager.h + * + * Declarations for the ClusterManager callbacks for this application + * + **/ + +#pragma once + +#include +#include +#include + +class ClusterManager +{ +public: + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnLevelControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnColorControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint16_t size, + uint8_t * value); + +private: + friend ClusterManager & ClusterMgr(void); + bool mEndpointOnOffState[2]; + static ClusterManager sCluster; +}; + +inline ClusterManager & ClusterMgr(void) +{ + return ClusterManager::sCluster; +} diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h b/examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h new file mode 100644 index 00000000000000..4cdc0b69174d60 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h @@ -0,0 +1,35 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +// Logging +#ifdef __cplusplus +extern "C" { +#endif + +int cc13xx_26xxLogInit(void); +void cc13xx_26xxLog(const char * aFormat, ...); +#define PLAT_LOG(...) cc13xx_26xxLog(__VA_ARGS__); + +#ifdef __cplusplus +} +#endif +extern LED_Handle sAppRedHandle; +extern LED_Handle sAppGreenHandle; diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/OpenThreadConfig.h b/examples/all-clusters-app/cc13x4_26x4/main/include/OpenThreadConfig.h new file mode 100644 index 00000000000000..7d227258b1eaae --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/OpenThreadConfig.h @@ -0,0 +1,29 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Overrides to default OpenThread configuration. + * + */ + +#pragma once + +// Use the TI-supplied default platform configuration for remainder +#include "openthread-core-cc13x4_26x4-config.h" diff --git a/examples/all-clusters-app/cc13x4_26x4/main/main.cpp b/examples/all-clusters-app/cc13x4_26x4/main/main.cpp new file mode 100644 index 00000000000000..5a7f6a6b8df072 --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/main/main.cpp @@ -0,0 +1,104 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include +#include + +#include + +/* Driver Header files */ +#include +#include +#include + +#include +#include +#include +#include + +#include +#define TOTAL_ICALL_HEAP_SIZE (0xd000) + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; +uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationStackOverflowHook(void) +{ + while (1) + { + ; + } +} + +/* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ +extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +extern "C" void vQueueUnregisterQueueWrapper(QueueHandle_t xQueue) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + Board_init(); + bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); + + GPIO_init(); + + NVS_init(); + + ECDH_init(); + + ECDSA_init(); + + AESECB_init(); + + SHA2_init(); + + int ret = GetAppTask().StartAppTask(); + if (ret != 0) + { + // can't log until the kernel is started + // PLAT_LOG("GetAppTask().StartAppTask() failed"); + while (1) + ; + } + + vTaskStartScheduler(); + + // Should never get here. + while (1) + ; +} diff --git a/examples/all-clusters-app/cc13x4_26x4/third_party/connectedhomeip b/examples/all-clusters-app/cc13x4_26x4/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/all-clusters-app/cc13x4_26x4/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/lighting-app/cc13x2x7_26x2x7/README.md b/examples/lighting-app/cc13x2x7_26x2x7/README.md new file mode 100644 index 00000000000000..a9eacd879f5070 --- /dev/null +++ b/examples/lighting-app/cc13x2x7_26x2x7/README.md @@ -0,0 +1,297 @@ +# Matter Lighting Example Application + +An example application showing the use of [Matter][matter] on the Texas +Instruments CC13XX_26XX family of Wireless MCUs. + +--- + +- [Matter Lighting Example Application](#matter-lighting-example-application) + - [Introduction](#introduction) + - [Device UI](#device-ui) + - [Building](#building) + - [Preparation](#preparation) + - [Compilation](#compilation) + - [Programming](#programming) + - [Code Composer Studio](#code-composer-studio) + - [UniFlash](#uniflash) + - [Viewing Logging Output](#viewing-logging-output) + - [Running the Example](#running-the-example) + - [TI Support](#ti-support) + +--- + +## Introduction + +The CC13XX_26XX lighting example application provides a working demonstration of +a connected light device. This uses the open-source Matter implementation and +the Texas Instruments SimpleLink™ CC13XX and CC26XX software development kit. + +This example is enabled to build for CC2652R7 devices. + +The lighting example is intended to serve both as a means to explore the +workings of Matter, as well as a template for creating real products based on +the Texas Instruments devices. + +## Device UI + +| Action | Functionality | +| ------------------------------------------------ | -------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | Light is turned on | +| Left Button (`BTN-1`) Press (more than 1000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Light is turned off | +| Right Button (`BTN-2`) Press (more than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Red LED Solid On State | Light is turned on | +| Red LED Off State | Light is turned off | +| Green LED Blinking State | Identify Trigger Effect in progress | +| Green LED Off State | No Identify Trigger Effect in progress | + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. + + ``` + $ cd ~ + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/lock-app/cc13x2x7_26x2x7 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + $ ninja -C out/debug + + ``` + + If you would like to define arguments on the command line you may add them + to the GN call. + + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Viewing Logging Output + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Matter network. The following sections assume that a Matter network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +The steps below should be followed to commission the lighting device onto the +network and control it once it has been commissioned. + +**Step 0** + +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. + +**Step 1** + +Commission the light device onto the Matter network. Run the following command +on the CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-2`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** + +Send commands to the lighting app. Here are some example commands: + +On + +``` +./chip-tool onoff on 1 +./chip-tool onoff toggee 1 (assuming the light is off) + +``` + +Off + +``` +./chip-tool onoff off 1 +./chip-tool onoff toggle 1 (assuming the light is on) + +``` + +Identify + +``` +./chip-tool identify identify 1 e.g. ./chip-tool identify identify 100 1 1 + +./chip-tool identify trigger-effect e.g. ./chip-tool identify trigger-effect 0x0000 0 1 1 + +``` + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/lighting-app/cc13x4_26x4/.gn b/examples/lighting-app/cc13x4_26x4/.gn new file mode 100644 index 00000000000000..3d48789e30ab3d --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/.gn @@ -0,0 +1,28 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/lighting-app/cc13x4_26x4/BUILD.gn b/examples/lighting-app/cc13x4_26x4/BUILD.gn new file mode 100644 index 00000000000000..e2f105d8f85fed --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/BUILD.gn @@ -0,0 +1,120 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/openthread.gni") +import("//build_overrides/ti_simplelink_sdk.gni") + +import("${build_root}/config/defaults.gni") + +import("${chip_root}/src/platform/device.gni") + +import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") +import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") + +assert(current_os == "freertos") + +project_dir = "${chip_root}/examples/lighting-app/cc13x4_26x4" + +ti_simplelink_sdk("sdk") { + include_dirs = [ "${project_dir}/include" ] + public_configs = [ ":lighting_app_config" ] +} + +ti_sysconfig("sysconfig") { + sources = [ "${project_dir}/chip.syscfg" ] + + outputs = [ + "ti_radio_config.c", + "ti_radio_config.h", + "ti_drivers_config.c", + "ti_drivers_config.h", + "ti_ble_config.c", + "ti_ble_config.h", + "ti_dmm_application_policy.c", + "ti_dmm_application_policy.h", + "ti_devices_config.c", + "ti_devices_config.h", + + # disabled until upstream generation is aligned + #"tiop_config.h", + #"tiop_config.c", + + # not traditional source files + #"ti_utils_build_linker.cmd.genlibs", + #"syscfg_c.rov.xs", + #"ti_utils_runtime_model.gv", + #"ti_utils_runtime_Makefile", + #"ti_ble_app_config.opt", + #"ti_build_config.opt", + ] + + public_configs = [ ":sdk_dmm_config" ] + + cflags = [ + "-Wno-comment", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", + root_build_dir), + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + root_build_dir), + ] +} + +ti_simplelink_executable("lighting_app") { + output_name = "chip-${ti_simplelink_board}-lighting-example.out" + + sources = [ + "${chip_root}/examples/providers/DeviceInfoProviderImpl.cpp", + "${project_dir}/src/AppTask.cpp", + "${project_dir}/src/LightingManager.cpp", + "${project_dir}/src/ZclCallbacks.cpp", + "${project_dir}/src/main.cpp", + ] + + deps = [ + ":sdk", + ":sysconfig", + "${chip_root}/examples/lighting-app/lighting-common", + "${chip_root}/examples/platform/cc13x4_26x4:cc13x4_26x4-attestation-credentials", + "${chip_root}/src/lib", + ] + + if (chip_openthread_ftd) { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] + } else { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + } + + include_dirs = [ + "${project_dir}", + "${chip_root}/examples/providers/", + ] + + cflags = [ + "-Wno-implicit-fallthrough", + "-Wno-sign-compare", + "-Wconversion", + ] + + output_dir = root_out_dir +} + +group("cc13x4_26x4") { + deps = [ ":lighting_app" ] +} + +group("default") { + deps = [ ":cc13x4_26x4" ] +} diff --git a/examples/lighting-app/cc13x4_26x4/README.md b/examples/lighting-app/cc13x4_26x4/README.md new file mode 100644 index 00000000000000..beb1bfc42507be --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/README.md @@ -0,0 +1,297 @@ +# Matter Lighting Example Application + +An example application showing the use of [Matter][matter] on the Texas +Instruments CC13XX_26XX family of Wireless MCUs. + +--- + +- [Matter Lighting Example Application](#matter-lighting-example-application) + - [Introduction](#introduction) + - [Device UI](#device-ui) + - [Building](#building) + - [Preparation](#preparation) + - [Compilation](#compilation) + - [Programming](#programming) + - [Code Composer Studio](#code-composer-studio) + - [UniFlash](#uniflash) + - [Viewing Logging Output](#viewing-logging-output) + - [Running the Example](#running-the-example) + - [TI Support](#ti-support) + +--- + +## Introduction + +The CC13XX_26XX lighting example application provides a working demonstration of +a connected light device. This uses the open-source Matter implementation and +the Texas Instruments SimpleLink™ CC13XX and CC26XX software development kit. + +This example is enabled to build for CC1354P10 devices. + +The lighting example is intended to serve both as a means to explore the +workings of Matter, as well as a template for creating real products based on +the Texas Instruments devices. + +## Device UI + +| Action | Functionality | +| ------------------------------------------------ | -------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | Light is turned on | +| Left Button (`BTN-1`) Press (more than 1000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Light is turned off | +| Right Button (`BTN-2`) Press (more than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Red LED Solid On State | Light is turned on | +| Red LED Off State | Light is turned off | +| Green LED Blinking State | Identify Trigger Effect in progress | +| Green LED Off State | No Identify Trigger Effect in progress | + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. + + ``` + $ cd ~ + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/lock-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + $ ninja -C out/debug + + ``` + + If you would like to define arguments on the command line you may add them + to the GN call. + + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Viewing Logging Output + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Matter network. The following sections assume that a Matter network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +The steps below should be followed to commission the lighting device onto the +network and control it once it has been commissioned. + +**Step 0** + +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. + +**Step 1** + +Commission the light device onto the Matter network. Run the following command +on the CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-2`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** + +Send commands to the lighting app. Here are some example commands: + +On + +``` +./chip-tool onoff on 1 +./chip-tool onoff toggee 1 (assuming the light is off) + +``` + +Off + +``` +./chip-tool onoff off 1 +./chip-tool onoff toggle 1 (assuming the light is on) + +``` + +Identify + +``` +./chip-tool identify identify 1 e.g. ./chip-tool identify identify 100 1 1 + +./chip-tool identify trigger-effect e.g. ./chip-tool identify trigger-effect 0x0000 0 1 1 + +``` + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/lighting-app/cc13x4_26x4/args.gni b/examples/lighting-app/cc13x4_26x4/args.gni new file mode 100644 index 00000000000000..b3aabaa8d985ff --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/args.gni @@ -0,0 +1,50 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/chip.gni") +import("${chip_root}/config/standalone/args.gni") +import("${chip_root}/examples/platform/cc13x4_26x4/args.gni") + +ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") +ti_simplelink_sysconfig_target = + get_label_info(":sysconfig", "label_no_toolchain") + +ti_simplelink_board = "LP_EM_CC1354P10_6" + +# Size Optimizations +# use -Os instead of -Og, LWIP release build +optimize_debug_level = "s" +lwip_debug = false + +chip_enable_ota_requestor = false + +chip_openthread_ftd = true +openthread_external_platform = "${chip_root}/third_party/openthread/platforms/cc13x4_26x4:libopenthread-cc13x4_cc26x4" + +# Disable CHIP Logging +#chip_progress_logging = false +#chip_detail_logging = false +#chip_automation_logging = false + +# BLE options +chip_config_network_layer_ble = true + +# Disable lock tracking, since our FreeRTOS configuration does not set +# INCLUDE_xSemaphoreGetMutexHolder +chip_stack_lock_tracking = "none" + +matter_device_vid = "0xFFF1" +matter_device_pid = "0x8005" +matter_software_ver = "0x0001" +matter_software_ver_str = "1.0d1" diff --git a/examples/lighting-app/cc13x4_26x4/build_overrides b/examples/lighting-app/cc13x4_26x4/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/lighting-app/cc13x4_26x4/chip.syscfg b/examples/lighting-app/cc13x4_26x4/chip.syscfg new file mode 100644 index 00000000000000..e9cb55c3e22f07 --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/chip.syscfg @@ -0,0 +1,242 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* Modules */ +var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); +var AESECB = scripting.addModule("/ti/drivers/AESECB"); +var Button = scripting.addModule("/ti/drivers/apps/Button"); +var LED = scripting.addModule("/ti/drivers/apps/LED"); +var NVS = scripting.addModule("/ti/drivers/NVS"); +var RF = scripting.addModule("/ti/drivers/RF"); +var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); +var RFCustom = scripting.addModule("/ti/devices/radioconfig/custom"); +var TRNG = scripting.addModule("/ti/drivers/TRNG"); +var SHA2 = scripting.addModule("/ti/drivers/SHA2"); +var UART2 = scripting.addModule("/ti/drivers/UART2"); +var ble = scripting.addModule("/ti/ble5stack/ble"); +var dmm = scripting.addModule("/ti/dmm/dmm"); +var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); +var ECDH = scripting.addModule("/ti/drivers/ECDH"); + +/* Instances */ +var AESCCM1 = AESCCM.addInstance(); +var AESECB1 = AESECB.addInstance(); +var AESECB2 = AESECB.addInstance(); +var Button1 = Button.addInstance(); +var Button2 = Button.addInstance(); +var NVS1 = NVS.addInstance(); +var NVS2 = NVS.addInstance(); +var SHA21 = SHA2.addInstance(); +var LED1 = LED.addInstance(); +var LED2 = LED.addInstance(); +var TRNG1 = TRNG.addInstance(); +var TRNG2 = TRNG.addInstance(); +var TRNG3 = TRNG.addInstance(); +var UART2 = UART2.addInstance(); +var AESCTRDRBG1 = AESCTRDRBG.addInstance(); +var ECDH1 = ECDH.addInstance(); + +AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; + +AESCCM1.$name = "CONFIG_AESCCM0"; + +AESECB1.$name = "CONFIG_AESECB0"; +AESECB2.$name = "CONFIG_AESECB_1"; + +ECDH1.$name = "CONFIG_ECDH0"; + +/* Left Button */ +Button1.$name = "CONFIG_BTN_LEFT"; +Button1.$hardware = system.deviceData.board.components["BTN-1"]; +Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; +Button1.gpioPin.pull = "Pull Up"; +Button1.gpioPin.interruptTrigger = "Falling Edge"; + +/* Left Button */ +Button2.$name = "CONFIG_BTN_RIGHT"; +Button2.$hardware = system.deviceData.board.components["BTN-2"]; +Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; +Button2.gpioPin.pull = "Pull Up"; +Button2.gpioPin.interruptTrigger = "Falling Edge"; + +/* ======== CCFG ======== */ +var CCFG = scripting.addModule("/ti/devices/CCFG"); +const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; +for(var setting in ccfgSettings) +{ + CCFG[setting] = ccfgSettings[setting]; +} + +CCFG.enableCodeGeneration = true; + + +/* NVS */ +NVS1.$name = "CONFIG_NVSINTERNAL"; +NVS1.internalFlash.regionBase = 0xFB800; +NVS1.internalFlash.regionSize = 0x2800; + + +NVS2.$name = "CONFIG_NVSEXTERNAL"; +NVS2.nvsType = "External"; // NVS Region Type +NVS2.$hardware = system.deviceData.board.components.MX25R8035F; + +/* RF */ +/* if an antenna component exists, assign it to the rf instance */ +if (system.deviceData.board && system.deviceData.board.components.RF) { + RF.$hardware = system.deviceData.board.components.RF; +} + +const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; +for(var setting in rfDesignSettings) +{ + RFDesign[setting] = rfDesignSettings[setting]; +} + + + +/* Handling for RF frontend characterization */ +if(RFDesign.rfDesign.match(/LP_CC2652PSIP/)) +{ + RFCustom.ieee = ["ieee154p10"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154p10.codeExportConfig +} +else +{ + RFCustom.ieee = ["ieee154"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154.codeExportConfig +} + +var cmdList = [ + "cmdIeeeTx", + "cmdIeeeRx", + "cmdIeeeCsma", + "cmdIeeeEdScan", + "cmdIeeeRxAck", + "cmdTxTest" +]; + +rfCodeExportConfig.useConst = true; +rfCodeExportConfig.useMulti = true; +rfCodeExportConfig.symGenMethod = "Custom"; + +const deviceId = system.deviceData.deviceId; + +// Add high PA options if present +if(deviceId.match(/CC(265[12]R|2674R|1352R1|1354R)/)) +{ + cmdList.push("cmdRadioSetup"); + rfCodeExportConfig.cmdRadioSetup = "RF_cmdIeeeRadioSetup"; +} +else if(deviceId.match(/CC(265[12]P|2674P|1352P)/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + rfCodeExportConfig.paExport = "combined"; +} +else if(deviceId.match(/CC(265[34]|1354)P/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + // currently not characterized for high PA +} +else +{ + throw new Error("Could not match platform to any known platform types"); +} + +rfCodeExportConfig.cmdList_ieee_15_4 = cmdList; + +/* Red LED */ +LED1.$name = "CONFIG_LED_RED"; +LED1.$hardware = system.deviceData.board.components.LED_RED; +LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; +LED1.gpioPin.mode = "Output"; +LED1.gpioPin.callbackFunction = ""; + +/* Green LED */ +LED2.$name = "CONFIG_LED_GREEN"; +LED2.$hardware = system.deviceData.board.components.LED_GREEN; +LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; +LED2.gpioPin.mode = "Output"; +LED2.gpioPin.callbackFunction = ""; + +/* Debug UART */ +UART2.$hardware = system.deviceData.board.components.XDS110UART; +UART2.$name = "CONFIG_UART2_DEBUG"; + +/* TRNG */ +TRNG1.$name = "CONFIG_TRNG_0"; +TRNG2.$name = "CONFIG_TRNG_THREAD"; +TRNG3.$name = "CONFIG_TRNG_APP"; + +/* BLE */ +ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; +ble.maxConnNum = 1; +ble.numOfAdvSets = 1; +ble.lockProject = true; +ble.oneLibSizeOpt = true; +ble.maxPDUSize = 255; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; +ble.connUpdateParamsPeripheral.reqMinConnInt = 30; +ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + +ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; +ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; + +ble.rfDesign = "LP_EM_CC1354P10_6"; + +ble.thorPg = 2; +/* DMM */ +dmm.project = "ti_thread_thermostat_remote_display"; +dmm.stackRoles = ["blePeripheral","threadFTD"]; +dmm.lockStackRoles = true; +dmm.numApplicationStates = 10; +dmm.applicationState0 = "ANY"; +dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; +dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; +dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; +dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; +dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; +dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; +dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; +dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; +dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; +dmm.policyArray.create(4); +dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; +dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; +dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; +dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; +dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; +dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; +dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; +dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; +dmm.policyArray[1].blePeripheral.weight = 25; +dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; +dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; +dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; +dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; +dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; +dmm.policyArray[2].threadFTD.weight = 30; +dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; +dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; +dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; +dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; +dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; +dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/lighting-app/cc13x4_26x4/include/CHIPProjectConfig.h b/examples/lighting-app/cc13x4_26x4/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..0f5090d7d9f320 --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/include/CHIPProjectConfig.h @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#ifndef CHIP_PROJECT_CONFIG_H +#define CHIP_PROJECT_CONFIG_H + +#if BUILD_RELEASE // release build +// Note: Default Pairing/PIN/Serial Numbers being used. These should not be enabled for production builds +#endif // BUILD_RELEASE + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" + +/** + * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER + * + * Enables the use of a hard-coded default serial number if none + * is found in CHIP NV storage. + */ +#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN" + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#ifndef CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 +#endif + +/** + * Values set by args.gni: + * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID + * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + */ + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for CHIP-over-BLE (CHIPOBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) + +#define MATTER_CC13XX_26XX_PLATFORM_LOG_ENABLED 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT + * + * Enable the OpenThread SRP client to allow for CHIP device discovery. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 + +/** + * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE + * + * For a development build, set the default importance of events to be logged as Debug. + * Since debug is the lowest importance level, this means all standard, critical, info and + * debug importance level vi events get logged. + */ +#if BUILD_RELEASE +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production +#else +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug +#endif // BUILD_RELEASE + +#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 + +/** + * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER + * + * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. + */ +#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 2 + +/** + * @def CHIP_IM_MAX_NUM_WRITE_HANDLER + * + * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. + */ +#define CHIP_IM_MAX_NUM_WRITE_HANDLER 2 + +#endif // CHIP_PROJECT_CONFIG_H diff --git a/examples/lighting-app/cc13x4_26x4/src/AppConfig.h b/examples/lighting-app/cc13x4_26x4/src/AppConfig.h new file mode 100644 index 00000000000000..a818b21d641875 --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/AppConfig.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_CONFIG_H +#define APP_CONFIG_H + +// Logging +#ifdef __cplusplus +extern "C" { +#endif + +int cc13xx_26xxLogInit(void); +void cc13xx_26xxLog(const char * aFormat, ...); +#define PLAT_LOG(...) cc13xx_26xxLog(__VA_ARGS__); + +#define ACTUATOR_MOVEMENT_PERIOD_MS 1000 + +#ifdef __cplusplus +} +#endif +#endif // APP_CONFIG_H diff --git a/examples/lighting-app/cc13x4_26x4/src/AppEvent.h b/examples/lighting-app/cc13x4_26x4/src/AppEvent.h new file mode 100644 index 00000000000000..b6138ec479949c --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/AppEvent.h @@ -0,0 +1,85 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_EVENT_H +#define APP_EVENT_H + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventType + { + kEventType_None = 0, + kEventType_ButtonLeft, + kEventType_ButtonRight, + kEventType_AppEvent, + kEventType_IdentifyStart, + kEventType_IdentifyStop, + kEventType_Light, + kEventType_Timer, + }; + + enum AppEventButtonType + { + kAppEventButtonType_None = 0, + kAppEventButtonType_Clicked, + kAppEventButtonType_LongClicked, + }; + + enum AppEventIdentifyType + { + kAppEventIdentifyType_Blink = 0, + kAppEventIdentifyType_Breathe, + kAppEventIdentifyType_Okay, + kAppEventIdentifyType_Finish, + kAppEventIdentifyType_Stop, + }; + + enum AppEventType Type; + + union + { + struct + { + enum AppEventButtonType Type; + } ButtonEvent; + + struct + { + void * Context; + } TimerEvent; + + struct + { + uint8_t Action; + int32_t Actor; + void * Context; + } LightEvent; + + struct + { + enum AppEventIdentifyType Type; + } IdentifyEvent; + }; + + EventHandler Handler; +}; + +#endif // APP_EVENT_H diff --git a/examples/lighting-app/cc13x4_26x4/src/AppTask.cpp b/examples/lighting-app/cc13x4_26x4/src/AppTask.cpp new file mode 100644 index 00000000000000..d7b45b5b54e6bc --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/AppTask.cpp @@ -0,0 +1,539 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" + +#include "FreeRTOS.h" + +#include +#include +#include + +#include +#include + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +#endif + +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include + +/* syscfg */ +#include + +#define APP_TASK_STACK_SIZE (4096) +#define APP_TASK_PRIORITY 4 +#define APP_EVENT_QUEUE_SIZE 10 + +#define IDENTIFY_TRIGGER_EFFECT_BLINK 0 +#define IDENTIFY_TRIGGER_EFFECT_BREATHE 1 +#define IDENTIFY_TRIGGER_EFFECT_OKAY 2 +#define IDENTIFY_TRIGGER_EFFECT_FINISH_STOP 3 + +static uint32_t identify_trigger_effect = IDENTIFY_TRIGGER_EFFECT_FINISH_STOP; + +#define LIGHTING_APPLICATION_IDENTIFY_ENDPOINT 1 + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; + +static TaskHandle_t sAppTaskHandle; +static QueueHandle_t sAppEventQueue; + +static LED_Handle sAppRedHandle; +static LED_Handle sAppGreenHandle; +static Button_Handle sAppLeftHandle; +static Button_Handle sAppRightHandle; +static DeviceInfoProviderImpl sExampleDeviceInfoProvider; + +AppTask AppTask::sAppTask; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +static DefaultOTARequestor sRequestorCore; +static DefaultOTARequestorStorage sRequestorStorage; +static DefaultOTARequestorDriver sRequestorUser; +static BDXDownloader sDownloader; +static OTAImageProcessorImpl sImageProcessor; + +void InitializeOTARequestor(void) +{ + // Initialize and interconnect the Requestor and Image Processor objects + SetRequestorInstance(&sRequestorCore); + + sRequestorStorage.Init(Server::GetInstance().GetPersistentStorage()); + sRequestorCore.Init(Server::GetInstance(), sRequestorStorage, sRequestorUser, sDownloader); + sImageProcessor.SetOTADownloader(&sDownloader); + sDownloader.SetImageProcessorDelegate(&sImageProcessor); + sRequestorUser.Init(&sRequestorCore, &sImageProcessor); +} +#endif + +::Identify stIdentify = { LIGHTING_APPLICATION_IDENTIFY_ENDPOINT, AppTask::IdentifyStartHandler, AppTask::IdentifyStopHandler, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, AppTask::TriggerIdentifyEffectHandler }; + +int AppTask::StartAppTask() +{ + int ret = 0; + + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + PLAT_LOG("Failed to allocate app event queue"); + while (1) + ; + } + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != + pdPASS) + { + PLAT_LOG("Failed to create app task"); + while (1) + ; + } + return ret; +} + +// Action initiated callback +void uiTurnOn(void) +{ + PLAT_LOG("Light On initiated"); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppRedHandle, 110 /* ms */, LED_BLINK_FOREVER); +} + +// Action completed callback +void uiTurnedOn(void) +{ + PLAT_LOG("Light On completed"); + LED_stopBlinking(sAppRedHandle); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); +} + +// Action initiated callback +void uiTurnOff(void) +{ + PLAT_LOG("Light Off initiated"); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppRedHandle, 110 /* ms */, LED_BLINK_FOREVER); +} + +// Action completed callback +void uiTurnedOff(void) +{ + PLAT_LOG("Light Off completed"); + LED_stopBlinking(sAppRedHandle); + LED_setOff(sAppRedHandle); +} + +int AppTask::Init() +{ + LED_Params ledParams; + Button_Params buttonParams; + + cc13xx_26xxLogInit(); + + // Init Chip memory management before the stack + Platform::MemoryInit(); + + CHIP_ERROR ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().InitChipStack() failed"); + while (1) + ; + } + + ret = ThreadStackMgr().InitThreadStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().InitThreadStack() failed"); + while (1) + ; + } +#if CHIP_DEVICE_CONFIG_THREAD_FTD + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); +#else + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#endif + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); + while (1) + ; + } + + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); + while (1) + ; + } + + ret = ThreadStackMgrImpl().StartThreadTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().StartThreadTask() failed"); + while (1) + ; + } + + // Init ZCL Data Model and start server + PLAT_LOG("Initialize Server"); + static CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + + // Initialize info provider + sExampleDeviceInfoProvider.SetStorageDelegate(initParams.persistentStorageDelegate); + SetDeviceInfoProvider(&sExampleDeviceInfoProvider); + + Server::GetInstance().Init(initParams); + + // Initialize device attestation config +#ifdef CC13X4_26X4_ATTESTATION_CREDENTIALS + SetDeviceAttestationCredentialsProvider(CC13X4_26X4::GetCC13X4_26X4DacProvider()); +#else + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#endif + + // Initialize LEDs + PLAT_LOG("Initialize LEDs"); + LED_init(); + + LED_Params_init(&ledParams); // default PWM LED + sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); + LED_setOff(sAppRedHandle); + + LED_Params_init(&ledParams); // default PWM LED + sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + LED_setOff(sAppGreenHandle); + + // Initialize buttons + PLAT_LOG("Initialize buttons"); + Button_init(); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); + Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); + Button_setCallback(sAppRightHandle, ButtonRightEventHandler); + + ret = LightMgr().Init(); + + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("LightMgr().Init() failed"); + while (1) + ; + } + + LightMgr().SetCallbacks(ActionInitiated, ActionCompleted); + + ConfigurationMgr().LogDeviceConfig(); + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + InitializeOTARequestor(); +#endif + // QR code will be used with CHIP Tool + PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); + + return 0; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + + sAppTask.Init(); + + while (1) + { + /* Task pend until we have stuff to do */ + if (xQueueReceive(sAppEventQueue, &event, portMAX_DELAY) == pdTRUE) + { + sAppTask.DispatchEvent(&event); + } + } +} + +void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonLeft; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonRight; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ActionInitiated(LightingManager::Action_t aAction, int32_t aActor) +{ + if (aAction == LightingManager::ON_ACTION) + { + uiTurnOn(); + } + else if (aAction == LightingManager::OFF_ACTION) + { + uiTurnOff(); + } +} + +void AppTask::ActionCompleted(LightingManager::Action_t aAction) +{ + if (aAction == LightingManager::ON_ACTION) + { + uiTurnedOn(); + } + else if (aAction == LightingManager::OFF_ACTION) + { + uiTurnedOff(); + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (sAppEventQueue != NULL) + { + BaseType_t status; + if (xPortIsInsideInterrupt()) + { + BaseType_t higherPrioTaskWoken = pdFALSE; + status = xQueueSendFromISR(sAppEventQueue, aEvent, &higherPrioTaskWoken); + +#ifdef portYIELD_FROM_ISR + portYIELD_FROM_ISR(higherPrioTaskWoken); +#elif portEND_SWITCHING_ISR // portYIELD_FROM_ISR or portEND_SWITCHING_ISR + portEND_SWITCHING_ISR(higherPrioTaskWoken); +#else // portYIELD_FROM_ISR or portEND_SWITCHING_ISR +#error "Must have portYIELD_FROM_ISR or portEND_SWITCHING_ISR" +#endif // portYIELD_FROM_ISR or portEND_SWITCHING_ISR + } + else + { + status = xQueueSend(sAppEventQueue, aEvent, 1); + } + + if (status != pdTRUE) + { + PLAT_LOG("Failed to post event to app task event queue"); + } + } + else + { + PLAT_LOG("Event Queue is NULL should never happen"); + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + int32_t actor; + + switch (aEvent->Type) + { + case AppEvent::kEventType_Light: { + actor = aEvent->LightEvent.Actor; + LightMgr().IsLightOn() ? LightMgr().InitiateAction(actor, LightingManager::OFF_ACTION) + : LightMgr().InitiateAction(actor, LightingManager::ON_ACTION); + } + case AppEvent::kEventType_ButtonLeft: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + actor = AppEvent::kEventType_ButtonLeft; + LightMgr().InitiateAction(actor, LightingManager::ON_ACTION); + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + chip::Server::GetInstance().ScheduleFactoryReset(); + } + break; + + case AppEvent::kEventType_ButtonRight: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + actor = AppEvent::kEventType_ButtonRight; + LightMgr().InitiateAction(actor, LightingManager::OFF_ACTION); + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + // Enable BLE advertisements + if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + if (Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() == CHIP_NO_ERROR) + { + PLAT_LOG("Enabled BLE Advertisements"); + } + else + { + PLAT_LOG("OpenBasicCommissioningWindow() failed"); + } + } + else + { + // Disable BLE advertisements + ConnectivityMgr().SetBLEAdvertisingEnabled(false); + PLAT_LOG("Disabled BLE Advertisements"); + } + } + break; + + case AppEvent::kEventType_IdentifyStart: + switch (identify_trigger_effect) + { + case IDENTIFY_TRIGGER_EFFECT_BLINK: + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 1000, LED_BLINK_FOREVER); + break; + case IDENTIFY_TRIGGER_EFFECT_BREATHE: + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 100, LED_BLINK_FOREVER); + break; + case IDENTIFY_TRIGGER_EFFECT_OKAY: + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 500, LED_BLINK_FOREVER); + break; + default: + break; + } + PLAT_LOG("Identify started"); + break; + + case AppEvent::kEventType_IdentifyStop: + LED_stopBlinking(sAppGreenHandle); + LED_setOff(sAppGreenHandle); + PLAT_LOG("Identify stopped"); + break; + + case AppEvent::kEventType_AppEvent: + if (NULL != aEvent->Handler) + { + aEvent->Handler(aEvent); + } + break; + + case AppEvent::kEventType_None: + default: + break; + } +} + +void AppTask::IdentifyStartHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStart; + sAppTask.PostEvent(&event); +} + +void AppTask::IdentifyStopHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStop; + sAppTask.PostEvent(&event); +} + +void AppTask::TriggerIdentifyEffectHandler(::Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + PLAT_LOG("Starting blink identifier effect"); + identify_trigger_effect = IDENTIFY_TRIGGER_EFFECT_BLINK; + IdentifyStartHandler(identify); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + PLAT_LOG("Starting breathe identifier effect"); + identify_trigger_effect = IDENTIFY_TRIGGER_EFFECT_BREATHE; + IdentifyStartHandler(identify); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + PLAT_LOG("Starting okay identifier effect"); + identify_trigger_effect = IDENTIFY_TRIGGER_EFFECT_OKAY; + IdentifyStartHandler(identify); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + PLAT_LOG("Channel Change identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_FINISH_EFFECT: + PLAT_LOG("Finish identifier effect"); + identify_trigger_effect = IDENTIFY_TRIGGER_EFFECT_FINISH_STOP; + IdentifyStopHandler(identify); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT: + PLAT_LOG("Stop identifier effect"); + identify_trigger_effect = IDENTIFY_TRIGGER_EFFECT_FINISH_STOP; + IdentifyStopHandler(identify); + break; + default: + PLAT_LOG("No identifier effect"); + } +} diff --git a/examples/lighting-app/cc13x4_26x4/src/AppTask.h b/examples/lighting-app/cc13x4_26x4/src/AppTask.h new file mode 100644 index 00000000000000..3d305601bc12f7 --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/AppTask.h @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +#include "FreeRTOS.h" +#include "semphr.h" +#include "task.h" + +#include "AppEvent.h" +#include "LightingManager.h" + +#include + +// Application-defined error codes in the CHIP_ERROR space. +#define APP_ERROR_EVENT_QUEUE_FAILED CHIP_APPLICATION_ERROR(0x01) +#define APP_ERROR_CREATE_TASK_FAILED CHIP_APPLICATION_ERROR(0x02) +#define APP_ERROR_UNHANDLED_EVENT CHIP_APPLICATION_ERROR(0x03) +#define APP_ERROR_CREATE_TIMER_FAILED CHIP_APPLICATION_ERROR(0x04) +#define APP_ERROR_START_TIMER_FAILED CHIP_APPLICATION_ERROR(0x05) +#define APP_ERROR_STOP_TIMER_FAILED CHIP_APPLICATION_ERROR(0x06) +#define APP_ERROR_ALLOCATION_FAILED CHIP_APPLICATION_ERROR(0x07) +struct Identify; + +class AppTask +{ + +public: + int StartAppTask(); + static void AppTaskMain(void * pvParameter); + + static AppTask & GetAppTask() { return sAppTask; } + + void PostLightActionRequest(int32_t aActor, LightingManager::Action_t aAction); + void PostEvent(const AppEvent * event); + + static void IdentifyStartHandler(::Identify *); + static void IdentifyStopHandler(::Identify *); + static void TriggerIdentifyEffectHandler(::Identify * identify); + +private: + friend AppTask & GetAppTask(void); + + int Init(); + + static void ActionInitiated(LightingManager::Action_t aAction, int32_t aActor); + static void ActionCompleted(LightingManager::Action_t aAction); + + void DispatchEvent(AppEvent * event); + static void UpdateClusterState(intptr_t context); + static void SingleButtonEventHandler(AppEvent * aEvent); + static void ButtonTimerEventHandler(AppEvent * aEvent); + + static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); + static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); + static void TimerEventHandler(void * p_context); + + enum Function_t + { + kFunction_NoneSelected = 0, + kFunction_SoftwareUpdate = 0, + kFunction_FactoryReset, + kFunction_Invalid + } Function; + + Function_t mFunction; + bool mFunctionTimerActive; + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} diff --git a/examples/lighting-app/cc13x4_26x4/src/LightingManager.cpp b/examples/lighting-app/cc13x4_26x4/src/LightingManager.cpp new file mode 100644 index 00000000000000..ed5fc52e7e5638 --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/LightingManager.cpp @@ -0,0 +1,176 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "LightingManager.h" + +#include "AppConfig.h" +#include "AppTask.h" +#include + +using namespace chip; +using namespace ::chip::DeviceLayer; + +LightingManager LightingManager::sLight; + +TimerHandle_t sLightTimer; + +CHIP_ERROR LightingManager::Init() +{ + // Create FreeRTOS sw timer for light timer. + sLightTimer = xTimerCreate("lightTmr", // Just a text name, not used by the RTOS kernel + 1, // == default timer period (mS) + false, // no timer reload (==one-shot) + (void *) this, // init timer id = light obj context + TimerEventHandler // timer callback handler + ); + + if (sLightTimer == NULL) + { + PLAT_LOG("sLightTimer timer create failed"); + } + + bool currentLedState; + // read current on/off value on endpoint one. + OnOffServer::Instance().getOnOffValue(1, ¤tLedState); + + mState = currentLedState ? kState_OnCompleted : kState_OffCompleted; + + return CHIP_NO_ERROR; +} + +void LightingManager::SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB) +{ + mActionInitiated_CB = aActionInitiated_CB; + mActionCompleted_CB = aActionCompleted_CB; +} + +bool LightingManager::IsActionInProgress() +{ + return (mState == kState_OffInitiated || mState == kState_OnInitiated); +} + +bool LightingManager::IsLightOn() +{ + return (mState == kState_OnCompleted); +} + +bool LightingManager::InitiateAction(int32_t aActor, Action_t aAction) +{ + bool action_initiated = false; + State_t new_state; + + // Initiate Turn On/Off Action only when the previous one is complete. + if (mState == kState_OffCompleted && aAction == ON_ACTION) + { + action_initiated = true; + + new_state = kState_OnInitiated; + } + else if (mState == kState_OnCompleted && aAction == OFF_ACTION) + { + action_initiated = true; + + new_state = kState_OffInitiated; + } + + if (action_initiated) + { + StartTimer(ACTUATOR_MOVEMENT_PERIOD_MS); + + // Since the timer started successfully, update the state and trigger callback + mState = new_state; + + if (mActionInitiated_CB) + { + mActionInitiated_CB(aAction, aActor); + } + } + + return action_initiated; +} + +void LightingManager::StartTimer(uint32_t aTimeoutMs) +{ + if (xTimerIsTimerActive(sLightTimer)) + { + PLAT_LOG("app timer already started!"); + CancelTimer(); + } + + // timer is not active, change its period to required value (== restart). + // FreeRTOS- Block for a maximum of 100 ticks if the change period command + // cannot immediately be sent to the timer command queue. + if (xTimerChangePeriod(sLightTimer, pdMS_TO_TICKS(aTimeoutMs), 100) != pdPASS) + { + PLAT_LOG("sLightTimer timer start() failed"); + } +} + +void LightingManager::CancelTimer(void) +{ + if (xTimerStop(sLightTimer, 0) == pdFAIL) + { + PLAT_LOG("sLightTimer stop() failed"); + } +} + +void LightingManager::TimerEventHandler(TimerHandle_t xTimer) +{ + // Get light obj context from timer id. + LightingManager * light = static_cast(pvTimerGetTimerID(xTimer)); + + // The timer event handler will be called in the context of the timer task + // once sLightTimer expires. Post an event to apptask queue with the actual handler + // so that the event can be handled in the context of the apptask. + AppEvent event; + event.Type = AppEvent::kEventType_AppEvent; + event.LightEvent.Context = light; + + event.Handler = ActuatorMovementTimerEventHandler; + + AppTask::GetAppTask().PostEvent(&event); +} + +void LightingManager::ActuatorMovementTimerEventHandler(AppEvent * aEvent) +{ + Action_t actionCompleted = INVALID_ACTION; + + LightingManager * light = static_cast(aEvent->LightEvent.Context); + + if (light->mState == kState_OffInitiated) + { + light->mState = kState_OffCompleted; + actionCompleted = OFF_ACTION; + OnOffServer::Instance().setOnOffValue(1, 0, false); + } + else if (light->mState == kState_OnInitiated) + { + light->mState = kState_OnCompleted; + actionCompleted = ON_ACTION; + OnOffServer::Instance().setOnOffValue(1, 1, false); + } + + if (actionCompleted != INVALID_ACTION) + { + if (light->mActionCompleted_CB) + { + light->mActionCompleted_CB(actionCompleted); + } + } +} diff --git a/examples/lighting-app/cc13x4_26x4/src/LightingManager.h b/examples/lighting-app/cc13x4_26x4/src/LightingManager.h new file mode 100644 index 00000000000000..818feed45ee87a --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/LightingManager.h @@ -0,0 +1,82 @@ +/* + * + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +#include "AppEvent.h" + +#include "FreeRTOS.h" +#include "timers.h" // provides FreeRTOS timer support +#include + +#include + +class LightingManager +{ +public: + enum Action_t + { + ON_ACTION = 0, + OFF_ACTION, + + INVALID_ACTION + } Action; + + enum State_t + { + kState_OffInitiated = 0, + kState_OffCompleted, + kState_OnInitiated, + kState_OnCompleted, + } State; + + CHIP_ERROR Init(); + bool IsLightOn(); + bool IsActionInProgress(); + bool InitiateAction(int32_t aActor, Action_t aAction); + + typedef void (*Callback_fn_initiated)(Action_t, int32_t aActor); + typedef void (*Callback_fn_completed)(Action_t); + void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + + static void OnTriggerOffWithEffect(OnOffEffect * effect); + +private: + friend LightingManager & LightMgr(void); + State_t mState; + + Callback_fn_initiated mActionInitiated_CB; + Callback_fn_completed mActionCompleted_CB; + + void CancelTimer(void); + void StartTimer(uint32_t aTimeoutMs); + + static void TimerEventHandler(TimerHandle_t xTimer); + static void ActuatorMovementTimerEventHandler(AppEvent * aEvent); + static void OffEffectTimerEventHandler(AppEvent * aEvent); + + static LightingManager sLight; +}; + +inline LightingManager & LightMgr(void) +{ + return LightingManager::sLight; +} diff --git a/examples/lighting-app/cc13x4_26x4/src/ZclCallbacks.cpp b/examples/lighting-app/cc13x4_26x4/src/ZclCallbacks.cpp new file mode 100644 index 00000000000000..7bb20a45944545 --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/ZclCallbacks.cpp @@ -0,0 +1,75 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file implements the handler for data model messages. + */ + +#include "AppConfig.h" +#include "LightingManager.h" + +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::app::Clusters; + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + ClusterId clusterId = attributePath.mClusterId; + AttributeId attributeId = attributePath.mAttributeId; + ChipLogProgress(Zcl, "Cluster callback: " ChipLogFormatMEI, ChipLogValueMEI(clusterId)); + + if (clusterId == OnOff::Id && attributeId == OnOff::Attributes::OnOff::Id) + { + LightMgr().InitiateAction(AppEvent::kEventType_Light, *value ? LightingManager::ON_ACTION : LightingManager::OFF_ACTION); + } + else if (clusterId == Identify::Id) + { + ChipLogProgress(Zcl, "Identify attribute ID: " ChipLogFormatMEI " Type: %u Value: %u, length %u", + ChipLogValueMEI(attributeId), type, *value, size); + } + else if (clusterId == Groups::Id) + { + ChipLogProgress(Zcl, "Groups attribute ID: " ChipLogFormatMEI " Type: %u Value: %u, length %u", + ChipLogValueMEI(attributeId), type, *value, size); + } +} + +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. + * + */ +void emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + // TODO: implement any additional Cluster Server init actions +} diff --git a/examples/lighting-app/cc13x4_26x4/src/main.cpp b/examples/lighting-app/cc13x4_26x4/src/main.cpp new file mode 100644 index 00000000000000..6cf27cf79a35fb --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/src/main.cpp @@ -0,0 +1,104 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include "AppConfig.h" +#include "AppTask.h" + +#include + +/* Driver Header files */ +#include +#include +#include + +#include +#include +#include +#include + +#include +#define TOTAL_ICALL_HEAP_SIZE (0xc600) + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; +uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationStackOverflowHook(void) +{ + while (1) + { + ; + } +} + +/* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ +extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +extern "C" void vQueueUnregisterQueueWrapper(QueueHandle_t xQueue) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + Board_init(); + bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); + + GPIO_init(); + + NVS_init(); + + ECDH_init(); + + ECDSA_init(); + + AESECB_init(); + + SHA2_init(); + + int ret = GetAppTask().StartAppTask(); + if (ret != 0) + { + // can't log until the kernel is started + // PLAT_LOG("GetAppTask().StartAppTask() failed"); + while (1) + ; + } + + vTaskStartScheduler(); + + // Should never get here. + while (1) + ; +} diff --git a/examples/lighting-app/cc13x4_26x4/third_party/connectedhomeip b/examples/lighting-app/cc13x4_26x4/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/lighting-app/cc13x4_26x4/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/lock-app/cc13x2x7_26x2x7/README.md b/examples/lock-app/cc13x2x7_26x2x7/README.md index 541bffe7c000c6..01e2f1a189d839 100644 --- a/examples/lock-app/cc13x2x7_26x2x7/README.md +++ b/examples/lock-app/cc13x2x7_26x2x7/README.md @@ -1,11 +1,11 @@ -# Matter CC1352 CC2652 Lock Example Application +# Matter Lock Example Application An example application showing the use of [Matter][matter] on the Texas Instruments CC13XX_26XX family of Wireless MCUs. --- -- [Matter CC1352 CC2652 Lock Example Application](#matter-cc1352-cc2652-lock-example-application) +- [Matter Lock Example Application](#matter-lock-example-application) - [Introduction](#introduction) - [Device UI](#device-ui) - [Building](#building) @@ -14,7 +14,6 @@ Instruments CC13XX_26XX family of Wireless MCUs. - [Programming](#programming) - [Code Composer Studio](#code-composer-studio) - [UniFlash](#uniflash) - - [Viewing Logging Output](#viewing-logging-output) - [Running the Example](#running-the-example) - [Provisioning](#provisioning) - [Bluetooth LE Advertising](#bluetooth-le-advertising) @@ -25,8 +24,6 @@ Instruments CC13XX_26XX family of Wireless MCUs. ## Introduction -![CC1352R1_LAUNCHXL](../../pump-app/cc13x2x7_26x2x7/doc/images/cc1352r1_launchxl.jpg) - The CC13XX_26XX lock example application provides a working demonstration of a connected door lock device. This uses the open-source Matter implementation and the Texas Instruments SimpleLink™ CC13XX and CC26XX software development kit. @@ -39,19 +36,15 @@ Instruments devices. ## Device UI -This example application has a simple User Interface to depict the state of the -door lock and to control the state. The user LEDs on the LaunchPad are set on -when the lock is locked, and are set off when unlocked. The LEDs will flash when -in the transition state between locked and unlocked. - -Short presses (less than 1000ms) of the user buttons are used for requesting -lock and unlock of the door lock. The left button (`BTN-1`) is used to request -locking. The right button (`BTN-2`) is used to request unlocking. - -Long presses (greater than 1000ms) of the user buttons are used for controlling -BLE advertisements and resets. The left button (`BTN-1`) is used to perform a -factory reset of the device. The Right button (`BTN-2`) is used to disable BLE -advertisements (if enabled) or enable advertisements (if disabled). +| Action | Functionality | +| ------------------------------------------------ | ---------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | Change state to unlocked | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Change state to locked | +| Left Button (`BTN-1`) Press (more than 1000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (more than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Red & Green LED Blinking State | Lock state transition to locked/unlocked | +| Red LED On State | Lock state locked | +| Red & Green LED Off State | Lock state unlocked | ## Building @@ -61,15 +54,14 @@ Some initial setup is necessary for preparing the build environment. This section will need to be done when migrating to new versions of the SDK. This guide assumes that the environment is linux based, and recommends Ubuntu 20.04. -- Download and install [SysConfig][sysconfig] ([recommended - version][sysconfig_recommended]). This can be done simply with the following - commands. +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. ``` $ cd ~ - $ wget https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run - $ chmod +x sysconfig-1.11.0_2225-setup.run - $ ./sysconfig-1.11.0_2225-setup.run + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run ``` - Run the bootstrap script to setup the build environment. @@ -96,17 +88,27 @@ Ninja to build the executable. - Run the build to produce a default executable. By default on Linux both the TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's home directory, and you must provide the absolute path to them. For example - `/home/username/ti/sysconfig_1.11.0`. On Windows the default directory is + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is `C:\ti`. Take note of this install path, as it will be used in the next step. ``` $ cd ~/connectedhomeip/examples/lock-app/cc13x2x7_26x2x7 - $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.11.0\"" + OR + $ cd ~/connectedhomeip/examples/lock-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" $ ninja -C out/debug ``` + If you would like to define arguments on the command line you may add them + to the GN call. + + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X2_26X2_ATTESTATION_CREDENTIALS=1\"]" + ``` + ## Programming Loading the built image onto a LaunchPad is supported through two methods; @@ -162,7 +164,11 @@ the session. Select the ELF image to load on the device with the `Browse` button. This file is placed in the `out/debug` folder by this guide and ends with the `*.out` file -extension. +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. Finally click the `Load Image` button to load the executable image onto the device. You should be able to see the log output over the XDS110 User UART. @@ -171,7 +177,7 @@ Note that programming the device through JTAG sets the Halt-in-Boot flag and may cause issues when performing a software reset. This flag can be reset by power-cycling the LaunchPad. -## Viewing Logging Output +## Running the Example By default the log output will be sent to the Application/User UART. Open a terminal emulator to that port to see the output with the following options: @@ -187,13 +193,93 @@ terminal emulator to that port to see the output with the following options: ## Running the Example Once a device has been flashed with this example, it can now join and operate in -an existing Thread network. The following sections assume that a Thread network +an existing Matter network. The following sections assume that a Matter network is already active, and has at least one [OpenThread Border Router][ot_border_router_setup]. For insight into what other components are needed to run this example, please refer to our [Matter Getting Started Guide][matter-e2e-faq]. +The steps below should be followed to commission the device onto the network and +control it once it has been commissioned. + +**Step 0** + +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. + +**Step 1** + +Commission the device onto the Matter network. Run the following command on the +CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-2`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** The example Doorlock cluster operations have the following format: + +``` +./chip-tool doorlock +./chip-tool doorlock set-user +./chip-tool +``` + +Send commands to the lock-app. Here are some example commands: + +Set a new user "`TST`" with user index of 1 with a default pin of 123456 + +``` +./chip-tool doorlock set-user 0 1 `TST` 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 +./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 +``` + +Require a pin mode for lock operations: + +``` +./chip-tool doorlock write require-pinfor-remote-operation 1 1 1 +``` + +Lock the Door + +``` +./chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 +``` + +Unlock the door + +``` +./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 +``` + ### Provisioning Interacting with the application begins by enabling BLE advertisements and then @@ -219,7 +305,7 @@ commands. For technical support, please consider creating a post on TI's [E2E forum][e2e]. Additionally, we welcome any feedback. -[matter]: https://github.com/project-chip/connectedhomeip +[matter]: https://csa-iot.org/all-solutions/matter/ [ccs]: https://www.ti.com/tool/CCSTUDIO [ccs_after_launch]: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch @@ -229,13 +315,11 @@ Additionally, we welcome any feedback. https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch [ccs_manual_method]: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method -[cc1352r1_launchxl]: https://www.ti.com/tool/LAUNCHXL-CC1352R1 -[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum [matter-e2e-faq]: https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide [sysconfig]: https://www.ti.com/tool/SYSCONFIG -[sysconfig_recommended]: - https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run [ti_thread_dnd]: https://www.ti.com/wireless-connectivity/thread/design-development.html [ot_border_router_setup]: https://openthread.io/guides/border-router/build diff --git a/examples/lock-app/cc13x2x7_26x2x7/chip.syscfg b/examples/lock-app/cc13x2x7_26x2x7/chip.syscfg index 47cd09c1a31165..995ad22af6b435 100644 --- a/examples/lock-app/cc13x2x7_26x2x7/chip.syscfg +++ b/examples/lock-app/cc13x2x7_26x2x7/chip.syscfg @@ -26,11 +26,10 @@ var LED = scripting.addModule("/ti/drivers/apps/LED"); var NVS = scripting.addModule("/ti/drivers/NVS"); var RF = scripting.addModule("/ti/drivers/RF"); var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); -var RTOS = scripting.addModule("/ti/drivers/RTOS"); +var RFCustom = scripting.addModule("/ti/devices/radioconfig/custom"); var TRNG = scripting.addModule("/ti/drivers/TRNG"); -var Thread = scripting.addModule("/ti/thread/thread"); var SHA2 = scripting.addModule("/ti/drivers/SHA2"); -var UART = scripting.addModule("/ti/drivers/UART"); +var UART2 = scripting.addModule("/ti/drivers/UART2"); var ble = scripting.addModule("/ti/ble5stack/ble"); var dmm = scripting.addModule("/ti/dmm/dmm"); var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); @@ -50,12 +49,11 @@ var LED2 = LED.addInstance(); var TRNG1 = TRNG.addInstance(); var TRNG2 = TRNG.addInstance(); var TRNG3 = TRNG.addInstance(); -var UART1 = UART.addInstance(); +var UART2 = UART2.addInstance(); var AESCTRDRBG1 = AESCTRDRBG.addInstance(); var ECDH1 = ECDH.addInstance(); AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; -AESCTRDRBG1.aesctrObject.$name = "CONFIG_AESCTR_0"; AESCCM1.$name = "CONFIG_AESCCM0"; @@ -64,9 +62,6 @@ AESECB2.$name = "CONFIG_AESECB_1"; ECDH1.$name = "CONFIG_ECDH0"; -/* RTOS */ -RTOS.name = "FreeRTOS"; - /* Left Button */ Button1.$name = "CONFIG_BTN_LEFT"; Button1.$hardware = system.deviceData.board.components["BTN-1"]; @@ -113,6 +108,58 @@ for(var setting in rfDesignSettings) RFDesign[setting] = rfDesignSettings[setting]; } +/* Handling for RF frontend characterization */ +if(RFDesign.rfDesign.match(/LP_CC2652PSIP/)) +{ + RFCustom.ieee = ["ieee154p10"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154p10.codeExportConfig +} +else +{ + RFCustom.ieee = ["ieee154"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154.codeExportConfig +} + +var cmdList = [ + "cmdIeeeTx", + "cmdIeeeRx", + "cmdIeeeCsma", + "cmdIeeeEdScan", + "cmdIeeeRxAck", + "cmdTxTest" +]; + +rfCodeExportConfig.useConst = true; +rfCodeExportConfig.useMulti = true; +rfCodeExportConfig.symGenMethod = "Custom"; + +const deviceId = system.deviceData.deviceId; + +// Add high PA options if present +if(deviceId.match(/CC(265[12]R|2674R|1352R1|1354R)/)) +{ + cmdList.push("cmdRadioSetup"); + rfCodeExportConfig.cmdRadioSetup = "RF_cmdIeeeRadioSetup"; +} +else if(deviceId.match(/CC(265[12]P|2674P|1352P)/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + rfCodeExportConfig.paExport = "combined"; +} +else if(deviceId.match(/CC(265[34]|1354)P/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + // currently not characterized for high PA +} +else +{ + throw new Error("Could not match platform to any known platform types"); +} + +rfCodeExportConfig.cmdList_ieee_15_4 = cmdList; + /* Red LED */ LED1.$name = "CONFIG_LED_RED"; LED1.$hardware = system.deviceData.board.components.LED_RED; @@ -128,15 +175,13 @@ LED2.gpioPin.mode = "Output"; LED2.gpioPin.callbackFunction = ""; /* Debug UART */ -UART1.$hardware = system.deviceData.board.components.XDS110UART; -UART1.$name = "CONFIG_UART_DEBUG"; +UART2.$hardware = system.deviceData.board.components.XDS110UART; +UART2.$name = "CONFIG_UART2_DEBUG"; /* TRNG */ TRNG1.$name = "CONFIG_TRNG_0"; -TRNG2.$name = "CONFIG_TRNG_APP"; -TRNG3.$name = "CONFIG_TRNG_THREAD"; - -RTOS.name = "FreeRTOS"; +TRNG2.$name = "CONFIG_TRNG_THREAD"; +TRNG3.$name = "CONFIG_TRNG_APP"; /* BLE */ ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; @@ -145,15 +190,14 @@ ble.numOfAdvSets = 1; ble.lockProject = true; ble.oneLibSizeOpt = true; ble.maxPDUSize = 255; -ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param2"; ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; ble.connUpdateParamsPeripheral.reqMinConnInt = 30; ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; -ble.advSet1.advParam1.primIntMin = 100; -ble.advSet1.advParam1.primIntMax = 200; /* DMM */ dmm.project = "ti_thread_thermostat_remote_display"; diff --git a/examples/lock-app/cc13x4_26x4/.gn b/examples/lock-app/cc13x4_26x4/.gn new file mode 100644 index 00000000000000..3d48789e30ab3d --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/.gn @@ -0,0 +1,28 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/lock-app/cc13x4_26x4/BUILD.gn b/examples/lock-app/cc13x4_26x4/BUILD.gn new file mode 100644 index 00000000000000..2aad7a5f06134b --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/BUILD.gn @@ -0,0 +1,120 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/openthread.gni") +import("//build_overrides/ti_simplelink_sdk.gni") + +import("${build_root}/config/defaults.gni") + +import("${chip_root}/src/platform/device.gni") + +import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") +import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") + +assert(current_os == "freertos") + +project_dir = "${chip_root}/examples/lock-app/cc13x4_26x4" + +ti_simplelink_sdk("sdk") { + include_dirs = [ "${project_dir}/include" ] + public_configs = [ ":lock_app_config" ] +} + +ti_sysconfig("sysconfig") { + sources = [ "${project_dir}/chip.syscfg" ] + + outputs = [ + "ti_radio_config.c", + "ti_radio_config.h", + "ti_drivers_config.c", + "ti_drivers_config.h", + "ti_devices_config.c", + "ti_devices_config.h", + "ti_ble_config.c", + "ti_ble_config.h", + "ti_dmm_application_policy.c", + "ti_dmm_application_policy.h", + + # disabled until upstream generation is aligned + #"tiop_config.h", + #"tiop_config.c", + + # not traditional source files + #"ti_utils_build_linker.cmd.genlibs", + #"syscfg_c.rov.xs", + #"ti_utils_runtime_model.gv", + #"ti_utils_runtime_Makefile", + #"ti_ble_app_config.opt", + #"ti_build_config.opt", + ] + + public_configs = [ ":sdk_dmm_config" ] + + cflags = [ + "-Wno-comment", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", + root_build_dir), + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + root_build_dir), + ] +} + +ti_simplelink_executable("lock_app") { + output_name = "chip-${ti_simplelink_board}-lock-example.out" + + sources = [ + "${chip_root}/examples/providers/DeviceInfoProviderImpl.cpp", + "${project_dir}/src/AppTask.cpp", + "${project_dir}/src/LockManager.cpp", + "${project_dir}/src/ZclCallbacks.cpp", + "${project_dir}/src/main.cpp", + ] + + deps = [ + ":sdk", + ":sysconfig", + "${chip_root}/examples/lock-app/lock-common", + "${chip_root}/examples/platform/cc13x4_26x4:cc13x4_26x4-attestation-credentials", + "${chip_root}/src/lib", + ] + + if (chip_openthread_ftd) { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] + } else { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + } + + include_dirs = [ + "${project_dir}", + "${chip_root}/examples/providers/", + ] + + cflags = [ + "-Wno-implicit-fallthrough", + "-Wno-sign-compare", + "-Wconversion", + ] + + output_dir = root_out_dir +} + +group("cc13x4_26x4") { + deps = [ ":lock_app" ] +} + +group("default") { + deps = [ ":cc13x4_26x4" ] +} diff --git a/examples/lock-app/cc13x4_26x4/README.md b/examples/lock-app/cc13x4_26x4/README.md new file mode 100644 index 00000000000000..45c3a1c67309cd --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/README.md @@ -0,0 +1,326 @@ +# Matter Lock Example Application + +An example application showing the use of [Matter][matter] on the Texas +Instruments CC13XX_26XX family of Wireless MCUs. + +--- + +- [Matter Lock Example Application](#matter-lock-example-application) + - [Introduction](#introduction) + - [Device UI](#device-ui) + - [Building](#building) + - [Preparation](#preparation) + - [Compilation](#compilation) + - [Programming](#programming) + - [Code Composer Studio](#code-composer-studio) + - [UniFlash](#uniflash) + - [Running the Example](#running-the-example) + - [Provisioning](#provisioning) + - [Bluetooth LE Advertising](#bluetooth-le-advertising) + - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) + - [TI Support](#ti-support) + +--- + +## Introduction + +The CC13XX_26XX lock example application provides a working demonstration of a +connected door lock device. This uses the open-source Matter implementation and +the Texas Instruments SimpleLink™ CC13XX and CC26XX software development kit. + +This example is enabled to build for CC1354P10 devices. + +The lock example is intended to serve both as a means to explore the workings of +Matter, as well as a template for creating real products based on the Texas +Instruments devices. + +## Device UI + +| Action | Functionality | +| ------------------------------------------------ | ---------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | Change state to unlocked | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Change state to locked | +| Left Button (`BTN-1`) Press (more than 1000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (more than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Red & Green LED Blinking State | Lock state transition to locked/unlocked | +| Red LED On State | Lock state locked | +| Red & Green LED Off State | Lock state unlocked | + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. + + ``` + $ cd ~ + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/lock-app/cc13x2x7_26x2x7 + OR + $ cd ~/connectedhomeip/examples/lock-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + $ ninja -C out/debug + + ``` + + If you would like to define arguments on the command line you may add them + to the GN call. + + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Running the Example + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Matter network. The following sections assume that a Matter network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +The steps below should be followed to commission the device onto the network and +control it once it has been commissioned. + +**Step 0** + +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. + +**Step 1** + +Commission the device onto the Matter network. Run the following command on the +CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-2`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** The example Doorlock cluster operations have the following format: + +``` +./chip-tool doorlock +./chip-tool doorlock set-user +./chip-tool +``` + +Send commands to the lock-app. Here are some example commands: + +Set a new user "`TST`" with user index of 1 with a default pin of 123456 + +``` +./chip-tool doorlock set-user 0 1 `TST` 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 +./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 +``` + +Require a pin mode for lock operations: + +``` +./chip-tool doorlock write require-pinfor-remote-operation 1 1 1 +``` + +Lock the Door + +``` +./chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 +``` + +Unlock the door + +``` +./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 +``` + +### Provisioning + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. + +#### Bluetooth LE Advertising + +To provision this example onto a Thread network, the device must be discoverable +over Bluetooth LE. BLE advertising is started by long pressing the right button +(greater than 1000ms), labeled `BTN-2` on the silkscreen. Once the device is +fully provisioned, BLE advertising will stop. + +#### Bluetooth LE Rendezvous + +Pairing this application with `ble-thread` can be done with any of the enabled +[CHIP Controller](../../../src/controller/README.md) applications. Use the +information printed on the console to aide in pairing the device. The controller +application can also be used to control the example app with the cluster +commands. + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/lock-app/cc13x4_26x4/args.gni b/examples/lock-app/cc13x4_26x4/args.gni new file mode 100644 index 00000000000000..bea77489ce4158 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/args.gni @@ -0,0 +1,49 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/chip.gni") +import("${chip_root}/examples/platform/cc13x4_26x4/args.gni") + +ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") +ti_simplelink_sysconfig_target = + get_label_info(":sysconfig", "label_no_toolchain") + +ti_simplelink_board = "LP_EM_CC1354P10_6" + +# Size Optimizations +# use -Os instead of -Og, LWIP release build +optimize_debug_level = "s" +lwip_debug = false + +chip_enable_ota_requestor = false + +chip_openthread_ftd = false +openthread_external_platform = "${chip_root}/third_party/openthread/platforms/cc13x4_26x4:libopenthread-cc13x4_cc26x4" + +# Disable CHIP Logging +#chip_progress_logging = false +#chip_detail_logging = false +#chip_automation_logging = false + +# BLE options +chip_config_network_layer_ble = true + +# Disable lock tracking, since our FreeRTOS configuration does not set +# INCLUDE_xSemaphoreGetMutexHolder +chip_stack_lock_tracking = "none" + +matter_device_vid = "0xFFF1" +matter_device_pid = "0x8006" +matter_software_ver = "0x0001" +matter_software_ver_str = "1.0d1" diff --git a/examples/lock-app/cc13x4_26x4/build_overrides b/examples/lock-app/cc13x4_26x4/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/lock-app/cc13x4_26x4/chip.syscfg b/examples/lock-app/cc13x4_26x4/chip.syscfg new file mode 100644 index 00000000000000..e9cb55c3e22f07 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/chip.syscfg @@ -0,0 +1,242 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* Modules */ +var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); +var AESECB = scripting.addModule("/ti/drivers/AESECB"); +var Button = scripting.addModule("/ti/drivers/apps/Button"); +var LED = scripting.addModule("/ti/drivers/apps/LED"); +var NVS = scripting.addModule("/ti/drivers/NVS"); +var RF = scripting.addModule("/ti/drivers/RF"); +var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); +var RFCustom = scripting.addModule("/ti/devices/radioconfig/custom"); +var TRNG = scripting.addModule("/ti/drivers/TRNG"); +var SHA2 = scripting.addModule("/ti/drivers/SHA2"); +var UART2 = scripting.addModule("/ti/drivers/UART2"); +var ble = scripting.addModule("/ti/ble5stack/ble"); +var dmm = scripting.addModule("/ti/dmm/dmm"); +var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); +var ECDH = scripting.addModule("/ti/drivers/ECDH"); + +/* Instances */ +var AESCCM1 = AESCCM.addInstance(); +var AESECB1 = AESECB.addInstance(); +var AESECB2 = AESECB.addInstance(); +var Button1 = Button.addInstance(); +var Button2 = Button.addInstance(); +var NVS1 = NVS.addInstance(); +var NVS2 = NVS.addInstance(); +var SHA21 = SHA2.addInstance(); +var LED1 = LED.addInstance(); +var LED2 = LED.addInstance(); +var TRNG1 = TRNG.addInstance(); +var TRNG2 = TRNG.addInstance(); +var TRNG3 = TRNG.addInstance(); +var UART2 = UART2.addInstance(); +var AESCTRDRBG1 = AESCTRDRBG.addInstance(); +var ECDH1 = ECDH.addInstance(); + +AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; + +AESCCM1.$name = "CONFIG_AESCCM0"; + +AESECB1.$name = "CONFIG_AESECB0"; +AESECB2.$name = "CONFIG_AESECB_1"; + +ECDH1.$name = "CONFIG_ECDH0"; + +/* Left Button */ +Button1.$name = "CONFIG_BTN_LEFT"; +Button1.$hardware = system.deviceData.board.components["BTN-1"]; +Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; +Button1.gpioPin.pull = "Pull Up"; +Button1.gpioPin.interruptTrigger = "Falling Edge"; + +/* Left Button */ +Button2.$name = "CONFIG_BTN_RIGHT"; +Button2.$hardware = system.deviceData.board.components["BTN-2"]; +Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; +Button2.gpioPin.pull = "Pull Up"; +Button2.gpioPin.interruptTrigger = "Falling Edge"; + +/* ======== CCFG ======== */ +var CCFG = scripting.addModule("/ti/devices/CCFG"); +const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; +for(var setting in ccfgSettings) +{ + CCFG[setting] = ccfgSettings[setting]; +} + +CCFG.enableCodeGeneration = true; + + +/* NVS */ +NVS1.$name = "CONFIG_NVSINTERNAL"; +NVS1.internalFlash.regionBase = 0xFB800; +NVS1.internalFlash.regionSize = 0x2800; + + +NVS2.$name = "CONFIG_NVSEXTERNAL"; +NVS2.nvsType = "External"; // NVS Region Type +NVS2.$hardware = system.deviceData.board.components.MX25R8035F; + +/* RF */ +/* if an antenna component exists, assign it to the rf instance */ +if (system.deviceData.board && system.deviceData.board.components.RF) { + RF.$hardware = system.deviceData.board.components.RF; +} + +const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; +for(var setting in rfDesignSettings) +{ + RFDesign[setting] = rfDesignSettings[setting]; +} + + + +/* Handling for RF frontend characterization */ +if(RFDesign.rfDesign.match(/LP_CC2652PSIP/)) +{ + RFCustom.ieee = ["ieee154p10"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154p10.codeExportConfig +} +else +{ + RFCustom.ieee = ["ieee154"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154.codeExportConfig +} + +var cmdList = [ + "cmdIeeeTx", + "cmdIeeeRx", + "cmdIeeeCsma", + "cmdIeeeEdScan", + "cmdIeeeRxAck", + "cmdTxTest" +]; + +rfCodeExportConfig.useConst = true; +rfCodeExportConfig.useMulti = true; +rfCodeExportConfig.symGenMethod = "Custom"; + +const deviceId = system.deviceData.deviceId; + +// Add high PA options if present +if(deviceId.match(/CC(265[12]R|2674R|1352R1|1354R)/)) +{ + cmdList.push("cmdRadioSetup"); + rfCodeExportConfig.cmdRadioSetup = "RF_cmdIeeeRadioSetup"; +} +else if(deviceId.match(/CC(265[12]P|2674P|1352P)/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + rfCodeExportConfig.paExport = "combined"; +} +else if(deviceId.match(/CC(265[34]|1354)P/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + // currently not characterized for high PA +} +else +{ + throw new Error("Could not match platform to any known platform types"); +} + +rfCodeExportConfig.cmdList_ieee_15_4 = cmdList; + +/* Red LED */ +LED1.$name = "CONFIG_LED_RED"; +LED1.$hardware = system.deviceData.board.components.LED_RED; +LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; +LED1.gpioPin.mode = "Output"; +LED1.gpioPin.callbackFunction = ""; + +/* Green LED */ +LED2.$name = "CONFIG_LED_GREEN"; +LED2.$hardware = system.deviceData.board.components.LED_GREEN; +LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; +LED2.gpioPin.mode = "Output"; +LED2.gpioPin.callbackFunction = ""; + +/* Debug UART */ +UART2.$hardware = system.deviceData.board.components.XDS110UART; +UART2.$name = "CONFIG_UART2_DEBUG"; + +/* TRNG */ +TRNG1.$name = "CONFIG_TRNG_0"; +TRNG2.$name = "CONFIG_TRNG_THREAD"; +TRNG3.$name = "CONFIG_TRNG_APP"; + +/* BLE */ +ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; +ble.maxConnNum = 1; +ble.numOfAdvSets = 1; +ble.lockProject = true; +ble.oneLibSizeOpt = true; +ble.maxPDUSize = 255; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; +ble.connUpdateParamsPeripheral.reqMinConnInt = 30; +ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + +ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; +ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; + +ble.rfDesign = "LP_EM_CC1354P10_6"; + +ble.thorPg = 2; +/* DMM */ +dmm.project = "ti_thread_thermostat_remote_display"; +dmm.stackRoles = ["blePeripheral","threadFTD"]; +dmm.lockStackRoles = true; +dmm.numApplicationStates = 10; +dmm.applicationState0 = "ANY"; +dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; +dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; +dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; +dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; +dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; +dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; +dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; +dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; +dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; +dmm.policyArray.create(4); +dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; +dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; +dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; +dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; +dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; +dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; +dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; +dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; +dmm.policyArray[1].blePeripheral.weight = 25; +dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; +dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; +dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; +dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; +dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; +dmm.policyArray[2].threadFTD.weight = 30; +dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; +dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; +dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; +dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; +dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; +dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/lock-app/cc13x4_26x4/include/CHIPProjectConfig.h b/examples/lock-app/cc13x4_26x4/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..a808f37a72d7b5 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/include/CHIPProjectConfig.h @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#ifndef CHIP_PROJECT_CONFIG_H +#define CHIP_PROJECT_CONFIG_H + +#if BUILD_RELEASE // release build +// Note: Default Pairing/PIN/Serial Numbers being used. These should not be enabled for production builds +#endif // BUILD_RELEASE + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" + +/** + * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER + * + * Enables the use of a hard-coded default serial number if none + * is found in CHIP NV storage. + */ +#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN" + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#ifndef CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 +#endif + +/** + * Values set by args.gni: + * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID + * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + */ + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for CHIP-over-BLE (CHIPOBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC + * + * Enables synchronizing the device's real time clock with a remote CHIP Time service + * using the CHIP Time Sync protocol. + */ +// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1 + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) + +#define MATTER_CC13XX_26XX_PLATFORM_LOG_ENABLED 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT + * + * Enable the OpenThread SRP client to allow for CHIP device discovery. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 + +/** + * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE + * + * For a development build, set the default importance of events to be logged as Debug. + * Since debug is the lowest importance level, this means all standard, critical, info and + * debug importance level vi events get logged. + */ +#if BUILD_RELEASE +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production +#else +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug +#endif // BUILD_RELEASE + +#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 + +/** + * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER + * + * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. + */ +#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 2 + +/** + * @def CHIP_IM_MAX_NUM_WRITE_HANDLER + * + * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. + */ +#define CHIP_IM_MAX_NUM_WRITE_HANDLER 2 + +#endif // CHIP_PROJECT_CONFIG_H diff --git a/examples/lock-app/cc13x4_26x4/src/AppConfig.h b/examples/lock-app/cc13x4_26x4/src/AppConfig.h new file mode 100644 index 00000000000000..a818b21d641875 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/AppConfig.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_CONFIG_H +#define APP_CONFIG_H + +// Logging +#ifdef __cplusplus +extern "C" { +#endif + +int cc13xx_26xxLogInit(void); +void cc13xx_26xxLog(const char * aFormat, ...); +#define PLAT_LOG(...) cc13xx_26xxLog(__VA_ARGS__); + +#define ACTUATOR_MOVEMENT_PERIOD_MS 1000 + +#ifdef __cplusplus +} +#endif +#endif // APP_CONFIG_H diff --git a/examples/lock-app/cc13x4_26x4/src/AppEvent.h b/examples/lock-app/cc13x4_26x4/src/AppEvent.h new file mode 100644 index 00000000000000..dc4ce143338e1e --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/AppEvent.h @@ -0,0 +1,68 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_EVENT_H +#define APP_EVENT_H + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventType + { + kEventType_None = 0, + kEventType_ButtonLeft, + kEventType_ButtonRight, + kEventType_AppEvent, + kEventType_IdentifyStart, + kEventType_IdentifyStop, + }; + + enum AppEventButtonType + { + kAppEventButtonType_None = 0, + kAppEventButtonType_Clicked, + kAppEventButtonType_LongClicked, + }; + + enum AppEventType Type; + + union + { + struct + { + enum AppEventButtonType Type; + } ButtonEvent; + + struct + { + void * Context; + } BoltLockEvent; + + struct + { + uint8_t Action; + int32_t Actor; + } LockEvent; + }; + + EventHandler Handler; +}; + +#endif // APP_EVENT_H diff --git a/examples/lock-app/cc13x4_26x4/src/AppTask.cpp b/examples/lock-app/cc13x4_26x4/src/AppTask.cpp new file mode 100644 index 00000000000000..5880c270030efa --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/AppTask.cpp @@ -0,0 +1,560 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" + +#include "FreeRTOS.h" + +#include +#include + +#include +#include + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +#endif + +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include + +/* syscfg */ +#include + +#define APP_TASK_STACK_SIZE (4096) +#define APP_TASK_PRIORITY 4 +#define APP_EVENT_QUEUE_SIZE 10 + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; +using namespace ::chip::app::Clusters::DoorLock; + +static TaskHandle_t sAppTaskHandle; +static QueueHandle_t sAppEventQueue; + +static LED_Handle sAppRedHandle; +static LED_Handle sAppGreenHandle; +static Button_Handle sAppLeftHandle; +static Button_Handle sAppRightHandle; +static DeviceInfoProviderImpl sExampleDeviceInfoProvider; + +AppTask AppTask::sAppTask; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +static DefaultOTARequestor sRequestorCore; +static DefaultOTARequestorStorage sRequestorStorage; +static DefaultOTARequestorDriver sRequestorUser; +static BDXDownloader sDownloader; +static OTAImageProcessorImpl sImageProcessor; + +void InitializeOTARequestor(void) +{ + // Initialize and interconnect the Requestor and Image Processor objects + SetRequestorInstance(&sRequestorCore); + + sRequestorStorage.Init(Server::GetInstance().GetPersistentStorage()); + sRequestorCore.Init(Server::GetInstance(), sRequestorStorage, sRequestorUser, sDownloader); + sImageProcessor.SetOTADownloader(&sDownloader); + sDownloader.SetImageProcessorDelegate(&sImageProcessor); + sRequestorUser.Init(&sRequestorCore, &sImageProcessor); +} +#endif + +::Identify stIdentify = { 0, AppTask::IdentifyStartHandler, AppTask::IdentifyStopHandler, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, AppTask::TriggerIdentifyEffectHandler }; + +int AppTask::StartAppTask() +{ + int ret = 0; + + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + PLAT_LOG("Failed to allocate app event queue"); + while (1) + ; + } + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != + pdPASS) + { + PLAT_LOG("Failed to create app task"); + while (1) + ; + } + return ret; +} + +void uiLocking(void) +{ + PLAT_LOG("Lock initiated"); + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 50 /* ms */, LED_BLINK_FOREVER); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppRedHandle, 110 /* ms */, LED_BLINK_FOREVER); +} + +void uiLocked(void) +{ + PLAT_LOG("Lock completed"); + LED_stopBlinking(sAppGreenHandle); + LED_setOff(sAppGreenHandle); + LED_stopBlinking(sAppRedHandle); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); +} + +void uiUnlocking(void) +{ + PLAT_LOG("Unlock initiated"); + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 50 /* ms */, LED_BLINK_FOREVER); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppRedHandle, 110 /* ms */, LED_BLINK_FOREVER); +} + +void uiUnlocked(void) +{ + PLAT_LOG("Unlock completed"); + LED_stopBlinking(sAppGreenHandle); + LED_setOff(sAppGreenHandle); + LED_stopBlinking(sAppRedHandle); + LED_setOff(sAppRedHandle); +} + +int AppTask::Init() +{ + LED_Params ledParams; + Button_Params buttonParams; + + cc13xx_26xxLogInit(); + + // Init Chip memory management before the stack + Platform::MemoryInit(); + + CHIP_ERROR ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().InitChipStack() failed"); + while (1) + ; + } + + ret = ThreadStackMgr().InitThreadStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().InitThreadStack() failed"); + while (1) + ; + } +#if CHIP_DEVICE_CONFIG_THREAD_FTD + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); +#else + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#endif + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); + while (1) + ; + } + + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); + while (1) + ; + } + + ret = ThreadStackMgrImpl().StartThreadTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().StartThreadTask() failed"); + while (1) + ; + } + + // Init ZCL Data Model and start server + PLAT_LOG("Initialize Server"); + static CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + + // Initialize info provider + sExampleDeviceInfoProvider.SetStorageDelegate(initParams.persistentStorageDelegate); + SetDeviceInfoProvider(&sExampleDeviceInfoProvider); + + Server::GetInstance().Init(initParams); + + // Initialize device attestation config +#ifdef CC13X4_26X4_ATTESTATION_CREDENTIALS + SetDeviceAttestationCredentialsProvider(CC13X4_26X4::GetCC13X4_26X4DacProvider()); +#else + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#endif + + // Initialize LEDs + PLAT_LOG("Initialize LEDs"); + LED_init(); + + LED_Params_init(&ledParams); // default PWM LED + sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); + LED_setOff(sAppRedHandle); + + LED_Params_init(&ledParams); // default PWM LED + sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + LED_setOff(sAppGreenHandle); + + // Initialize buttons + PLAT_LOG("Initialize buttons"); + Button_init(); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); + Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); + Button_setCallback(sAppRightHandle, ButtonRightEventHandler); + + PlatformMgr().LockChipStack(); + { + uint8_t numberOfCredentialsPerUser = 0; + uint16_t numberOfUsers = 0; + uint8_t numberOfWeekdaySchedulesPerUser = 0; + uint8_t numberOfYeardaySchedulesPerUser = 0; + uint8_t numberOfHolidaySchedules = 0; + chip::app::DataModel::Nullable state; + EndpointId endpointId{ 1 }; + + if (!DoorLockServer::Instance().GetNumberOfCredentialsSupportedPerUser(endpointId, numberOfCredentialsPerUser)) + { + numberOfCredentialsPerUser = 5; + } + + if (!DoorLockServer::Instance().GetNumberOfUserSupported(endpointId, numberOfUsers)) + { + numberOfUsers = 10; + } + + if (!DoorLockServer::Instance().GetNumberOfWeekDaySchedulesPerUserSupported(endpointId, numberOfWeekdaySchedulesPerUser)) + { + numberOfWeekdaySchedulesPerUser = 10; + } + + if (!DoorLockServer::Instance().GetNumberOfYearDaySchedulesPerUserSupported(endpointId, numberOfYeardaySchedulesPerUser)) + { + numberOfYeardaySchedulesPerUser = 10; + } + + if (!DoorLockServer::Instance().GetNumberOfHolidaySchedulesSupported(endpointId, numberOfHolidaySchedules)) + { + numberOfHolidaySchedules = 10; + } + + Attributes::LockState::Get(endpointId, state); + ret = LockMgr().Init(state, + CC13X2_26X2DoorLock::LockInitParams::ParamBuilder() + .SetNumberOfUsers(numberOfUsers) + .SetNumberOfCredentialsPerUser(numberOfCredentialsPerUser) + .SetNumberOfWeekdaySchedulesPerUser(numberOfWeekdaySchedulesPerUser) + .SetNumberOfYeardaySchedulesPerUser(numberOfYeardaySchedulesPerUser) + .SetNumberOfHolidaySchedules(numberOfHolidaySchedules) + .GetLockParam()); + + if (state.Value() == DlLockState::kLocked) + { + uiLocked(); + } + else + { + uiUnlocked(); + } + } + + PlatformMgr().UnlockChipStack(); + + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("LockMgr().Init() failed"); + while (1) + ; + } + + LockMgr().SetCallbacks(ActionInitiated, ActionCompleted); + + ConfigurationMgr().LogDeviceConfig(); + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + InitializeOTARequestor(); +#endif + // QR code will be used with CHIP Tool + PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); + + return 0; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + + sAppTask.Init(); + + LockMgr().ReadConfigValues(); + + while (1) + { + /* Task pend until we have stuff to do */ + if (xQueueReceive(sAppEventQueue, &event, portMAX_DELAY) == pdTRUE) + { + sAppTask.DispatchEvent(&event); + } + } +} + +void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonLeft; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonRight; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ActionInitiated(LockManager::Action_t aAction) +{ + if (aAction == LockManager::LOCK_ACTION) + { + uiLocking(); + } + else if (aAction == LockManager::UNLOCK_ACTION) + { + uiUnlocking(); + } +} + +void AppTask::ActionCompleted(LockManager::Action_t aAction) +{ + if (aAction == LockManager::LOCK_ACTION) + { + uiLocked(); + } + else if (aAction == LockManager::UNLOCK_ACTION) + { + uiUnlocked(); + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (sAppEventQueue != NULL) + { + BaseType_t status; + if (xPortIsInsideInterrupt()) + { + BaseType_t higherPrioTaskWoken = pdFALSE; + status = xQueueSendFromISR(sAppEventQueue, aEvent, &higherPrioTaskWoken); + +#ifdef portYIELD_FROM_ISR + portYIELD_FROM_ISR(higherPrioTaskWoken); +#elif portEND_SWITCHING_ISR // portYIELD_FROM_ISR or portEND_SWITCHING_ISR + portEND_SWITCHING_ISR(higherPrioTaskWoken); +#else // portYIELD_FROM_ISR or portEND_SWITCHING_ISR +#error "Must have portYIELD_FROM_ISR or portEND_SWITCHING_ISR" +#endif // portYIELD_FROM_ISR or portEND_SWITCHING_ISR + } + else + { + status = xQueueSend(sAppEventQueue, aEvent, 1); + } + + if (status != pdTRUE) + { + PLAT_LOG("Failed to post event to app task event queue"); + } + } + else + { + PLAT_LOG("Event Queue is NULL should never happen"); + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + switch (aEvent->Type) + { + case AppEvent::kEventType_ButtonLeft: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + LockMgr().InitiateAction(LockManager::UNLOCK_ACTION); + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + chip::Server::GetInstance().ScheduleFactoryReset(); + } + break; + + case AppEvent::kEventType_ButtonRight: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + LockMgr().InitiateAction(LockManager::LOCK_ACTION); + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + // Enable BLE advertisements + if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + if (Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() == CHIP_NO_ERROR) + { + PLAT_LOG("Enabled BLE Advertisements"); + } + else + { + PLAT_LOG("OpenBasicCommissioningWindow() failed"); + } + } + else + { + // Disable BLE advertisements + ConnectivityMgr().SetBLEAdvertisingEnabled(false); + PLAT_LOG("Disabled BLE Advertisements"); + } + } + break; + + case AppEvent::kEventType_IdentifyStart: + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 500, LED_BLINK_FOREVER); + PLAT_LOG("Identify started"); + break; + + case AppEvent::kEventType_IdentifyStop: + LED_stopBlinking(sAppGreenHandle); + + LED_setOff(sAppGreenHandle); + PLAT_LOG("Identify stopped"); + break; + + case AppEvent::kEventType_AppEvent: + if (NULL != aEvent->Handler) + { + aEvent->Handler(aEvent); + } + break; + + case AppEvent::kEventType_None: + default: + break; + } +} + +void AppTask::IdentifyStartHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStart; + sAppTask.PostEvent(&event); +} + +void AppTask::IdentifyStopHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStop; + sAppTask.PostEvent(&event); +} + +void AppTask::TriggerIdentifyEffectHandler(::Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + PLAT_LOG("Starting blink identifier effect"); + IdentifyStartHandler(identify); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + PLAT_LOG("Breathe identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + PLAT_LOG("Okay identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + PLAT_LOG("Channel Change identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_FINISH_EFFECT: + PLAT_LOG("Finish identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT: + PLAT_LOG("Stop identifier effect"); + IdentifyStopHandler(identify); + break; + default: + PLAT_LOG("No identifier effect"); + } +} diff --git a/examples/lock-app/cc13x4_26x4/src/AppTask.h b/examples/lock-app/cc13x4_26x4/src/AppTask.h new file mode 100644 index 00000000000000..15939e6581737b --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/AppTask.h @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +#include "FreeRTOS.h" +#include "semphr.h" +#include "task.h" + +#include "AppEvent.h" +#include "LockManager.h" + +#include + +// Application-defined error codes in the CHIP_ERROR space. +#define APP_ERROR_EVENT_QUEUE_FAILED CHIP_APPLICATION_ERROR(0x01) +#define APP_ERROR_CREATE_TASK_FAILED CHIP_APPLICATION_ERROR(0x02) +#define APP_ERROR_UNHANDLED_EVENT CHIP_APPLICATION_ERROR(0x03) +#define APP_ERROR_CREATE_TIMER_FAILED CHIP_APPLICATION_ERROR(0x04) +#define APP_ERROR_START_TIMER_FAILED CHIP_APPLICATION_ERROR(0x05) +#define APP_ERROR_STOP_TIMER_FAILED CHIP_APPLICATION_ERROR(0x06) +#define APP_ERROR_ALLOCATION_FAILED CHIP_APPLICATION_ERROR(0x07) + +struct Identify; + +class AppTask +{ + +public: + int StartAppTask(); + static void AppTaskMain(void * pvParameter); + + void PostLockActionRequest(int32_t aActor, LockManager::Action_t aAction); + void PostEvent(const AppEvent * event); + + static void IdentifyStartHandler(::Identify *); + static void IdentifyStopHandler(::Identify *); + static void TriggerIdentifyEffectHandler(::Identify * identify); + +private: + friend AppTask & GetAppTask(void); + + int Init(); + + // should this be done by BoltLock Manager? I don't want to unravel this spaghetti quite yet + static void ActionInitiated(LockManager::Action_t aAction); + static void ActionCompleted(LockManager::Action_t aAction); + + void DispatchEvent(AppEvent * event); + + static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); + static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); + static void TimerEventHandler(void * p_context); + + enum Function_t + { + kFunction_NoneSelected = 0, + kFunction_SoftwareUpdate = 0, + kFunction_FactoryReset, + + kFunction_Invalid + } Function; + + Function_t mFunction; + bool mFunctionTimerActive; + bool mSyncClusterToButtonAction; + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} diff --git a/examples/lock-app/cc13x4_26x4/src/LockManager.cpp b/examples/lock-app/cc13x4_26x4/src/LockManager.cpp new file mode 100644 index 00000000000000..acd9c00b41c4d5 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/LockManager.cpp @@ -0,0 +1,703 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "LockManager.h" + +#include "AppConfig.h" +#include "AppTask.h" +#include "platform/KeyValueStoreManager.h" +#include +#include +#include +#include + +LockManager LockManager::sLock; + +TimerHandle_t sLockTimer; + +using namespace CC13X2_26X2DoorLock::LockInitParams; +using namespace chip::DeviceLayer::PersistedStorage; + +// persisted storage keys +const char LockUser[] = "a/lu"; +const char Credential[] = "a/c"; +const char LockUserName[] = "a/lun"; +const char CredentialData[] = "a/cd"; +const char UserCredentials[] = "a/uc"; +const char WeekDaySchedules[] = "a/wds"; +const char YearDaySchedules[] = "a/yds"; +const char HolidaySchedules[] = "a/hs"; + +CHIP_ERROR LockManager::Init(chip::app::DataModel::Nullable state, LockParam lockParam) +{ + + LockParams = lockParam; + + if (LockParams.numberOfUsers > kMaxUsers) + { + PLAT_LOG("Max number of users is greater than %d, the maximum amount of users currently supported on this platform", + kMaxUsers); + return APP_ERROR_ALLOCATION_FAILED; + } + + if (LockParams.numberOfCredentialsPerUser > kMaxCredentialsPerUser) + { + PLAT_LOG("Max number of credentials per user is greater than %d, the maximum amount of users currently supported on this " + "platform", + kMaxCredentialsPerUser); + return APP_ERROR_ALLOCATION_FAILED; + } + + if (LockParams.numberOfWeekdaySchedulesPerUser > kMaxWeekdaySchedulesPerUser) + { + PLAT_LOG("Max number of schedules is greater than %d, the maximum amount of schedules currently supported on this platform", + kMaxWeekdaySchedulesPerUser); + return APP_ERROR_ALLOCATION_FAILED; + } + + if (LockParams.numberOfYeardaySchedulesPerUser > kMaxYeardaySchedulesPerUser) + { + PLAT_LOG("Max number of schedules is greater than %d, the maximum amount of schedules currently supported on this platform", + kMaxYeardaySchedulesPerUser); + return APP_ERROR_ALLOCATION_FAILED; + } + + if (LockParams.numberOfHolidaySchedules > kMaxHolidaySchedules) + { + PLAT_LOG("Max number of schedules is greater than %d, the maximum amount of schedules currently supported on this platform", + kMaxHolidaySchedules); + return APP_ERROR_ALLOCATION_FAILED; + } + + // Create FreeRTOS sw timer for lock timer. + sLockTimer = xTimerCreate("lockTmr", // Just a text name, not used by the RTOS kernel + 1, // == default timer period (mS) + false, // no timer reload (==one-shot) + (void *) this, // init timer id = lock obj context + TimerEventHandler // timer callback handler + ); + + if (sLockTimer == NULL) + { + PLAT_LOG("sLockTimer timer create failed"); + return APP_ERROR_CREATE_TIMER_FAILED; + } + + if (state.Value() == DlLockState::kUnlocked) + { + mState = kState_UnlockCompleted; + } + else + { + mState = kState_LockCompleted; + } + + return CHIP_NO_ERROR; +} + +bool LockManager::IsValidUserIndex(uint16_t userIndex) +{ + return (userIndex < kMaxUsers); +} + +bool LockManager::IsValidCredentialIndex(uint16_t credentialIndex, CredentialTypeEnum type) +{ + if (CredentialTypeEnum::kProgrammingPIN == type) + { + return (0 == credentialIndex); // 0 is required index for Programming PIN + } + return (credentialIndex < kMaxCredentialsPerUser); +} + +bool LockManager::IsValidWeekdayScheduleIndex(uint8_t scheduleIndex) +{ + return (scheduleIndex < kMaxWeekdaySchedulesPerUser); +} + +bool LockManager::IsValidYeardayScheduleIndex(uint8_t scheduleIndex) +{ + return (scheduleIndex < kMaxYeardaySchedulesPerUser); +} + +bool LockManager::IsValidHolidayScheduleIndex(uint8_t scheduleIndex) +{ + return (scheduleIndex < kMaxHolidaySchedules); +} + +bool LockManager::ReadConfigValues() +{ + size_t outLen; + KeyValueStoreMgr().Get(LockUser, reinterpret_cast(&mLockUsers), + sizeof(EmberAfPluginDoorLockUserInfo) * ArraySize(mLockUsers), &outLen); + + KeyValueStoreMgr().Get(Credential, reinterpret_cast(&mLockCredentials), + sizeof(EmberAfPluginDoorLockCredentialInfo) * ArraySize(mLockCredentials), &outLen); + + KeyValueStoreMgr().Get(LockUserName, reinterpret_cast(mUserNames), sizeof(mUserNames), &outLen); + + KeyValueStoreMgr().Get(CredentialData, reinterpret_cast(mCredentialData), sizeof(mCredentialData), &outLen); + + KeyValueStoreMgr().Get(UserCredentials, reinterpret_cast(mCredentials), + sizeof(CredentialStruct) * LockParams.numberOfUsers * LockParams.numberOfCredentialsPerUser, &outLen); + + KeyValueStoreMgr().Get(WeekDaySchedules, reinterpret_cast(mWeekdaySchedule), + sizeof(EmberAfPluginDoorLockWeekDaySchedule) * LockParams.numberOfWeekdaySchedulesPerUser * + LockParams.numberOfUsers, + &outLen); + + KeyValueStoreMgr().Get(YearDaySchedules, reinterpret_cast(mYeardaySchedule), + sizeof(EmberAfPluginDoorLockYearDaySchedule) * LockParams.numberOfYeardaySchedulesPerUser * + LockParams.numberOfUsers, + &outLen); + + KeyValueStoreMgr().Get(HolidaySchedules, reinterpret_cast(&(mHolidaySchedule)), + sizeof(EmberAfPluginDoorLockHolidaySchedule) * LockParams.numberOfHolidaySchedules, &outLen); + + return true; +} + +void LockManager::SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB) +{ + mActionInitiated_CB = aActionInitiated_CB; + mActionCompleted_CB = aActionCompleted_CB; +} + +bool LockManager::InitiateAction(Action_t aAction) +{ + bool action_initiated = false; + State_t new_state; + + // Initiate Turn Lock/Unlock Action only when the previous one is complete. + if (mState == kState_LockCompleted && aAction == UNLOCK_ACTION) + { + action_initiated = true; + + new_state = kState_UnlockInitiated; + } + else if (mState == kState_UnlockCompleted && aAction == LOCK_ACTION) + { + action_initiated = true; + + new_state = kState_LockInitiated; + } + + if (action_initiated) + { + + StartTimer(ACTUATOR_MOVEMENT_PERIOD_MS); + + // Since the timer started successfully, update the state and trigger callback + mState = new_state; + + if (mActionInitiated_CB) + { + mActionInitiated_CB(aAction); + } + } + + return action_initiated; +} + +void LockManager::StartTimer(uint32_t aTimeoutMs) +{ + if (xTimerIsTimerActive(sLockTimer)) + { + PLAT_LOG("app timer already started!"); + CancelTimer(); + } + + // timer is not active, change its period to required value (== restart). + // FreeRTOS- Block for a maximum of 100 ticks if the change period command + // cannot immediately be sent to the timer command queue. + if (xTimerChangePeriod(sLockTimer, pdMS_TO_TICKS(aTimeoutMs), 100) != pdPASS) + { + PLAT_LOG("sLockTimer timer start() failed"); + } +} + +void LockManager::CancelTimer(void) +{ + if (xTimerStop(sLockTimer, 0) == pdFAIL) + { + PLAT_LOG("sLockTimer stop() failed"); + } +} + +void LockManager::TimerEventHandler(TimerHandle_t xTimer) +{ + // Get lock obj context from timer id. + LockManager * lock = static_cast(pvTimerGetTimerID(xTimer)); + + // The timer event handler will be called in the context of the timer task + // once sLockTimer expires. Post an event to apptask queue with the actual handler + // so that the event can be handled in the context of the apptask. + AppEvent event; + event.Type = AppEvent::kEventType_AppEvent; + event.BoltLockEvent.Context = lock; + event.Handler = ActuatorMovementTimerEventHandler; + GetAppTask().PostEvent(&event); +} + +void LockManager::ActuatorMovementTimerEventHandler(AppEvent * aEvent) +{ + Action_t actionCompleted = INVALID_ACTION; + + LockManager * lock = static_cast(aEvent->BoltLockEvent.Context); + + if (lock->mState == kState_LockInitiated) + { + lock->mState = kState_LockCompleted; + actionCompleted = LOCK_ACTION; + DoorLockServer::Instance().SetLockState(1, DlLockState::kLocked); + } + else if (lock->mState == kState_UnlockInitiated) + { + lock->mState = kState_UnlockCompleted; + actionCompleted = UNLOCK_ACTION; + DoorLockServer::Instance().SetLockState(1, DlLockState::kUnlocked); + } + + if (actionCompleted != INVALID_ACTION) + { + if (lock->mActionCompleted_CB) + { + lock->mActionCompleted_CB(actionCompleted); + } + } +} + +bool LockManager::Lock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err) +{ + return checkPin(endpointId, DlLockState::kLocked, pin, err); +} + +bool LockManager::Unlock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err) +{ + return checkPin(endpointId, DlLockState::kUnlocked, pin, err); +} + +bool LockManager::GetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) +{ + VerifyOrReturnValue(userIndex > 0, false); // indices are one-indexed + + userIndex--; + + VerifyOrReturnValue(IsValidUserIndex(userIndex), false); + + ChipLogProgress(Zcl, "Door Lock App: LockManager::GetUser [endpoint=%d,userIndex=%hu]", endpointId, userIndex); + + const auto & userInDb = mLockUsers[userIndex]; + + user.userStatus = userInDb.userStatus; + if (UserStatusEnum::kAvailable == user.userStatus) + { + ChipLogDetail(Zcl, "Found unoccupied user [endpoint=%d]", endpointId); + return true; + } + + user.userName = chip::CharSpan(userInDb.userName.data(), userInDb.userName.size()); + user.credentials = chip::Span(mCredentials[userIndex], userInDb.credentials.size()); + user.userUniqueId = userInDb.userUniqueId; + user.userType = userInDb.userType; + user.credentialRule = userInDb.credentialRule; + // So far there's no way to actually create the credential outside Matter, so here we always set the creation/modification + // source to Matter + user.creationSource = DlAssetSource::kMatterIM; + user.createdBy = userInDb.createdBy; + user.modificationSource = DlAssetSource::kMatterIM; + user.lastModifiedBy = userInDb.lastModifiedBy; + + ChipLogDetail(Zcl, + "Found occupied user " + "[endpoint=%d,name=\"%.*s\",credentialsCount=%u,uniqueId=%lx,type=%u,credentialRule=%u," + "createdBy=%d,lastModifiedBy=%d]", + endpointId, static_cast(user.userName.size()), user.userName.data(), user.credentials.size(), + user.userUniqueId, to_underlying(user.userType), to_underlying(user.credentialRule), user.createdBy, + user.lastModifiedBy); + + return true; +} + +bool LockManager::SetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, + const chip::CharSpan & userName, uint32_t uniqueId, UserStatusEnum userStatus, UserTypeEnum usertype, + CredentialRuleEnum credentialRule, const CredentialStruct * credentials, size_t totalCredentials) +{ + ChipLogProgress(Zcl, + "Door Lock App: LockManager::SetUser " + "[endpoint=%d,userIndex=%d,creator=%d,modifier=%d,userName=%s,uniqueId=%ld " + "userStatus=%u,userType=%u,credentialRule=%u,credentials=%p,totalCredentials=%u]", + endpointId, userIndex, creator, modifier, userName.data(), uniqueId, to_underlying(userStatus), + to_underlying(usertype), to_underlying(credentialRule), credentials, totalCredentials); + + VerifyOrReturnValue(userIndex > 0, false); // indices are one-indexed + + userIndex--; + + VerifyOrReturnValue(IsValidUserIndex(userIndex), false); + + auto & userInStorage = mLockUsers[userIndex]; + + if (userName.size() > DOOR_LOCK_MAX_USER_NAME_SIZE) + { + ChipLogError(Zcl, "Cannot set user - user name is too long [endpoint=%d,index=%d]", endpointId, userIndex); + return false; + } + + if (totalCredentials > LockParams.numberOfCredentialsPerUser) + { + ChipLogError(Zcl, "Cannot set user - total number of credentials is too big [endpoint=%d,index=%d,totalCredentials=%u]", + endpointId, userIndex, totalCredentials); + return false; + } + + chip::Platform::CopyString(mUserNames[userIndex], userName); + userInStorage.userName = chip::CharSpan(mUserNames[userIndex], userName.size()); + userInStorage.userUniqueId = uniqueId; + userInStorage.userStatus = userStatus; + userInStorage.userType = usertype; + userInStorage.credentialRule = credentialRule; + userInStorage.lastModifiedBy = modifier; + userInStorage.createdBy = creator; + + for (size_t i = 0; i < totalCredentials; ++i) + { + mCredentials[userIndex][i] = credentials[i]; + mCredentials[userIndex][i].credentialType = CredentialTypeEnum::kPin; + mCredentials[userIndex][i].credentialIndex = i + 1; + } + + userInStorage.credentials = chip::Span(mCredentials[userIndex], totalCredentials); + + // Save user information in NVM flash + KeyValueStoreMgr().Put(LockUser, reinterpret_cast(&mLockUsers), + sizeof(EmberAfPluginDoorLockUserInfo) * LockParams.numberOfUsers); + + KeyValueStoreMgr().Put(UserCredentials, reinterpret_cast(mCredentials), + sizeof(CredentialStruct) * LockParams.numberOfUsers * LockParams.numberOfCredentialsPerUser); + + KeyValueStoreMgr().Put(LockUserName, reinterpret_cast(mUserNames), sizeof(mUserNames)); + + ChipLogProgress(Zcl, "Successfully set the user [mEndpointId=%d,index=%d]", endpointId, userIndex); + + return true; +} + +bool LockManager::GetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, CredentialTypeEnum credentialType, + EmberAfPluginDoorLockCredentialInfo & credential) +{ + + if (CredentialTypeEnum::kProgrammingPIN == credentialType) + { + VerifyOrReturnValue(IsValidCredentialIndex(credentialIndex, credentialType), + false); // programming pin index is only index allowed to contain 0 + } + else + { + VerifyOrReturnValue(IsValidCredentialIndex(--credentialIndex, credentialType), false); // otherwise, indices are one-indexed + } + + ChipLogProgress(Zcl, "Lock App: LockManager::GetCredential [credentialType=%u], credentialIndex=%d", + to_underlying(credentialType), credentialIndex); + + const auto & credentialInStorage = mLockCredentials[credentialIndex]; + + credential.status = credentialInStorage.status; + ChipLogDetail(Zcl, "CredentialStatus: %d, CredentialIndex: %d ", (int) credential.status, credentialIndex); + + if (DlCredentialStatus::kAvailable == credential.status) + { + ChipLogDetail(Zcl, "Found unoccupied credential "); + return true; + } + credential.credentialType = credentialInStorage.credentialType; + credential.credentialData = credentialInStorage.credentialData; + credential.createdBy = credentialInStorage.createdBy; + credential.lastModifiedBy = credentialInStorage.lastModifiedBy; + // So far there's no way to actually create the credential outside Matter, so here we always set the creation/modification + // source to Matter + credential.creationSource = DlAssetSource::kMatterIM; + credential.modificationSource = DlAssetSource::kMatterIM; + + ChipLogDetail(Zcl, "Found occupied credential [type=%u,dataSize=%u]", to_underlying(credential.credentialType), + credential.credentialData.size()); + + return true; +} + +bool LockManager::SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, chip::FabricIndex creator, + chip::FabricIndex modifier, DlCredentialStatus credentialStatus, CredentialTypeEnum credentialType, + const chip::ByteSpan & credentialData) +{ + + if (CredentialTypeEnum::kProgrammingPIN == credentialType) + { + VerifyOrReturnValue(IsValidCredentialIndex(credentialIndex, credentialType), + false); // programming pin index is only index allowed to contain 0 + } + else + { + VerifyOrReturnValue(IsValidCredentialIndex(--credentialIndex, credentialType), false); // otherwise, indices are one-indexed + } + + ChipLogProgress(Zcl, + "Door Lock App: LockManager::SetCredential " + "[credentialStatus=%u,credentialType=%u,credentialDataSize=%u,creator=%d,modifier=%d]", + to_underlying(credentialStatus), to_underlying(credentialType), credentialData.size(), creator, modifier); + + auto & credentialInStorage = mLockCredentials[credentialIndex]; + + credentialInStorage.status = credentialStatus; + credentialInStorage.credentialType = credentialType; + credentialInStorage.createdBy = creator; + credentialInStorage.lastModifiedBy = modifier; + + memcpy(mCredentialData[credentialIndex], credentialData.data(), credentialData.size()); + credentialInStorage.credentialData = chip::ByteSpan{ mCredentialData[credentialIndex], credentialData.size() }; + + // Save credential information in NVM flash + KeyValueStoreMgr().Put(Credential, reinterpret_cast(&mLockCredentials), + sizeof(EmberAfPluginDoorLockCredentialInfo) * LockParams.numberOfCredentialsPerUser); + + KeyValueStoreMgr().Put(CredentialData, reinterpret_cast(&mCredentialData), sizeof(mCredentialData)); + + ChipLogProgress(Zcl, "Successfully set the credential [credentialType=%u]", to_underlying(credentialType)); + + return true; +} + +DlStatus LockManager::GetWeekdaySchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, + EmberAfPluginDoorLockWeekDaySchedule & schedule) +{ + + VerifyOrReturnValue(weekdayIndex > 0, DlStatus::kFailure); // indices are one-indexed + VerifyOrReturnValue(userIndex > 0, DlStatus::kFailure); // indices are one-indexed + + weekdayIndex--; + userIndex--; + + VerifyOrReturnValue(IsValidWeekdayScheduleIndex(weekdayIndex), DlStatus::kFailure); + VerifyOrReturnValue(IsValidUserIndex(userIndex), DlStatus::kFailure); + + const auto & scheduleInStorage = mWeekdaySchedule[userIndex][weekdayIndex]; + if (DlScheduleStatus::kAvailable == scheduleInStorage.status) + { + return DlStatus::kNotFound; + } + + schedule = scheduleInStorage.schedule; + + return DlStatus::kSuccess; +} + +DlStatus LockManager::SetWeekdaySchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, + DlScheduleStatus status, DaysMaskMap daysMask, uint8_t startHour, uint8_t startMinute, + uint8_t endHour, uint8_t endMinute) +{ + + VerifyOrReturnValue(weekdayIndex > 0, DlStatus::kFailure); // indices are one-indexed + VerifyOrReturnValue(userIndex > 0, DlStatus::kFailure); // indices are one-indexed + + weekdayIndex--; + userIndex--; + + VerifyOrReturnValue(IsValidWeekdayScheduleIndex(weekdayIndex), DlStatus::kFailure); + VerifyOrReturnValue(IsValidUserIndex(userIndex), DlStatus::kFailure); + + auto & scheduleInStorage = mWeekdaySchedule[userIndex][weekdayIndex]; + + scheduleInStorage.schedule.daysMask = daysMask; + scheduleInStorage.schedule.startHour = startHour; + scheduleInStorage.schedule.startMinute = startMinute; + scheduleInStorage.schedule.endHour = endHour; + scheduleInStorage.schedule.endMinute = endMinute; + scheduleInStorage.status = status; + + // Save schedule information in NVM flash + KeyValueStoreMgr().Put(WeekDaySchedules, reinterpret_cast(mWeekdaySchedule), + sizeof(EmberAfPluginDoorLockWeekDaySchedule) * LockParams.numberOfWeekdaySchedulesPerUser * + LockParams.numberOfUsers); + + return DlStatus::kSuccess; +} + +DlStatus LockManager::GetYeardaySchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, + EmberAfPluginDoorLockYearDaySchedule & schedule) +{ + VerifyOrReturnValue(yearDayIndex > 0, DlStatus::kFailure); // indices are one-indexed + VerifyOrReturnValue(userIndex > 0, DlStatus::kFailure); // indices are one-indexed + + yearDayIndex--; + userIndex--; + + VerifyOrReturnValue(IsValidYeardayScheduleIndex(yearDayIndex), DlStatus::kFailure); + VerifyOrReturnValue(IsValidUserIndex(userIndex), DlStatus::kFailure); + + const auto & scheduleInStorage = mYeardaySchedule[userIndex][yearDayIndex]; + if (DlScheduleStatus::kAvailable == scheduleInStorage.status) + { + return DlStatus::kNotFound; + } + + schedule = scheduleInStorage.schedule; + + return DlStatus::kSuccess; +} + +DlStatus LockManager::SetYeardaySchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, + DlScheduleStatus status, uint32_t localStartTime, uint32_t localEndTime) +{ + VerifyOrReturnValue(yearDayIndex > 0, DlStatus::kFailure); // indices are one-indexed + VerifyOrReturnValue(userIndex > 0, DlStatus::kFailure); // indices are one-indexed + + yearDayIndex--; + userIndex--; + + VerifyOrReturnValue(IsValidYeardayScheduleIndex(yearDayIndex), DlStatus::kFailure); + VerifyOrReturnValue(IsValidUserIndex(userIndex), DlStatus::kFailure); + + auto & scheduleInStorage = mYeardaySchedule[userIndex][yearDayIndex]; + + scheduleInStorage.schedule.localStartTime = localStartTime; + scheduleInStorage.schedule.localEndTime = localEndTime; + scheduleInStorage.status = status; + + // Save schedule information in NVM flash + KeyValueStoreMgr().Put(YearDaySchedules, reinterpret_cast(mYeardaySchedule), + sizeof(EmberAfPluginDoorLockYearDaySchedule) * LockParams.numberOfYeardaySchedulesPerUser * + LockParams.numberOfUsers); + + return DlStatus::kSuccess; +} + +DlStatus LockManager::GetHolidaySchedule(chip::EndpointId endpointId, uint8_t holidayIndex, + EmberAfPluginDoorLockHolidaySchedule & schedule) +{ + VerifyOrReturnValue(holidayIndex > 0, DlStatus::kFailure); // indices are one-indexed + + holidayIndex--; + + VerifyOrReturnValue(IsValidHolidayScheduleIndex(holidayIndex), DlStatus::kFailure); + + const auto & scheduleInStorage = mHolidaySchedule[holidayIndex]; + if (DlScheduleStatus::kAvailable == scheduleInStorage.status) + { + return DlStatus::kNotFound; + } + + schedule = scheduleInStorage.schedule; + + return DlStatus::kSuccess; +} + +DlStatus LockManager::SetHolidaySchedule(chip::EndpointId endpointId, uint8_t holidayIndex, DlScheduleStatus status, + uint32_t localStartTime, uint32_t localEndTime, OperatingModeEnum operatingMode) +{ + VerifyOrReturnValue(holidayIndex > 0, DlStatus::kFailure); // indices are one-indexed + + holidayIndex--; + + VerifyOrReturnValue(IsValidHolidayScheduleIndex(holidayIndex), DlStatus::kFailure); + + auto & scheduleInStorage = mHolidaySchedule[holidayIndex]; + + scheduleInStorage.schedule.localStartTime = localStartTime; + scheduleInStorage.schedule.localEndTime = localEndTime; + scheduleInStorage.schedule.operatingMode = operatingMode; + scheduleInStorage.status = status; + + // Save schedule information in NVM flash + KeyValueStoreMgr().Put(HolidaySchedules, reinterpret_cast(&(mHolidaySchedule)), + sizeof(EmberAfPluginDoorLockHolidaySchedule) * LockParams.numberOfHolidaySchedules); + + return DlStatus::kSuccess; +} + +const char * LockManager::lockStateToString(DlLockState lockState) const +{ + switch (lockState) + { + case DlLockState::kNotFullyLocked: + return "Not Fully Locked"; + case DlLockState::kLocked: + return "Locked"; + case DlLockState::kUnlocked: + return "Unlocked"; + case DlLockState::kUnknownEnumValue: + break; + } + + return "Unknown"; +} + +bool LockManager::checkPin(chip::EndpointId endpointId, DlLockState lockState, const Optional & pin, + OperationErrorEnum & err) +{ + // Assume pin is required until told otherwise + bool requirePin = true; + chip::app::Clusters::DoorLock::Attributes::RequirePINforRemoteOperation::Get(endpointId, &requirePin); + + // If a pin code is not given + if (!pin.HasValue()) + { + ChipLogDetail(Zcl, "Door Lock App: PIN code is not specified [endpointId=%d]", endpointId); + + // If a pin code is not required + if (!requirePin) + { + ChipLogDetail(Zcl, "Door Lock App: setting door lock state to \"%s\" [endpointId=%d]", lockStateToString(lockState), + endpointId); + + return true; + } + + ChipLogError(Zcl, "Door Lock App: PIN code is not specified, but it is required [endpointId=%d]", endpointId); + + err = OperationErrorEnum::kInvalidCredential; + DoorLockServer::Instance().HandleWrongCodeEntry(endpointId); + return false; + } + + // Check the PIN code + for (uint8_t i = 0; i < kMaxCredentials; i++) + { + if (mLockCredentials[i].credentialType != CredentialTypeEnum::kPin || + mLockCredentials[i].status == DlCredentialStatus::kAvailable) + { + continue; + } + + if (mLockCredentials[i].credentialData.data_equal(pin.Value())) + { + ChipLogDetail(Zcl, + "Lock App: specified PIN code was found in the database, setting lock state to \"%s\" [endpointId=%d]", + lockStateToString(lockState), endpointId); + + return true; + } + } + + ChipLogDetail(Zcl, + "Door Lock App: specified PIN code was not found in the database, ignoring command to set lock state to \"%s\" " + "[endpointId=%d]", + lockStateToString(lockState), endpointId); + + err = OperationErrorEnum::kInvalidCredential; + DoorLockServer::Instance().HandleWrongCodeEntry(endpointId); + return false; +} diff --git a/examples/lock-app/cc13x4_26x4/src/LockManager.h b/examples/lock-app/cc13x4_26x4/src/LockManager.h new file mode 100644 index 00000000000000..74129260bd9172 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/LockManager.h @@ -0,0 +1,221 @@ +/* + * + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +#include +#include + +#include "AppEvent.h" + +#include "FreeRTOS.h" +#include "timers.h" // provides FreeRTOS timer support + +#include + +struct WeekDaysScheduleInfo +{ + DlScheduleStatus status; + EmberAfPluginDoorLockWeekDaySchedule schedule; +}; + +struct YearDayScheduleInfo +{ + DlScheduleStatus status; + EmberAfPluginDoorLockYearDaySchedule schedule; +}; + +struct HolidayScheduleInfo +{ + DlScheduleStatus status; + EmberAfPluginDoorLockHolidaySchedule schedule; +}; + +namespace CC13X2_26X2DoorLock { +namespace ResourceRanges { +// Used to size arrays +static constexpr uint16_t kMaxUsers = 10; +static constexpr uint8_t kMaxCredentialsPerUser = 10; +static constexpr uint8_t kMaxWeekdaySchedulesPerUser = 10; +static constexpr uint8_t kMaxYeardaySchedulesPerUser = 10; +static constexpr uint8_t kMaxHolidaySchedules = 10; +static constexpr uint8_t kMaxCredentialSize = 8; + +// Indices received for user/credential/schedules are 1-indexed +static constexpr uint8_t kStartIndexValue = 1; + +static constexpr uint8_t kMaxCredentials = kMaxUsers * kMaxCredentialsPerUser; +} // namespace ResourceRanges + +namespace LockInitParams { + +struct LockParam +{ + // Read from zap attributes + uint16_t numberOfUsers = 0; + uint8_t numberOfCredentialsPerUser = 0; + uint8_t numberOfWeekdaySchedulesPerUser = 0; + uint8_t numberOfYeardaySchedulesPerUser = 0; + uint8_t numberOfHolidaySchedules = 0; +}; + +class ParamBuilder +{ +public: + ParamBuilder & SetNumberOfUsers(uint16_t numberOfUsers) + { + lockParam_.numberOfUsers = numberOfUsers; + return *this; + } + ParamBuilder & SetNumberOfCredentialsPerUser(uint8_t numberOfCredentialsPerUser) + { + lockParam_.numberOfCredentialsPerUser = numberOfCredentialsPerUser; + return *this; + } + ParamBuilder & SetNumberOfWeekdaySchedulesPerUser(uint8_t numberOfWeekdaySchedulesPerUser) + { + lockParam_.numberOfWeekdaySchedulesPerUser = numberOfWeekdaySchedulesPerUser; + return *this; + } + ParamBuilder & SetNumberOfYeardaySchedulesPerUser(uint8_t numberOfYeardaySchedulesPerUser) + { + lockParam_.numberOfYeardaySchedulesPerUser = numberOfYeardaySchedulesPerUser; + return *this; + } + ParamBuilder & SetNumberOfHolidaySchedules(uint8_t numberOfHolidaySchedules) + { + lockParam_.numberOfHolidaySchedules = numberOfHolidaySchedules; + return *this; + } + LockParam GetLockParam() { return lockParam_; } + +private: + LockParam lockParam_; +}; + +} // namespace LockInitParams +} // namespace CC13X2_26X2DoorLock + +using namespace ::chip; +using namespace CC13X2_26X2DoorLock::ResourceRanges; + +class LockManager +{ +public: + enum Action_t + { + LOCK_ACTION = 0, + UNLOCK_ACTION, + + INVALID_ACTION + } Action; + + enum State_t + { + kState_LockInitiated = 0, + kState_LockCompleted, + kState_UnlockInitiated, + kState_UnlockCompleted, + } State; + + CHIP_ERROR Init(chip::app::DataModel::Nullable state, + CC13X2_26X2DoorLock::LockInitParams::LockParam lockParam); + bool InitiateAction(Action_t aAction); + + typedef void (*Callback_fn_initiated)(Action_t); + typedef void (*Callback_fn_completed)(Action_t); + void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + + bool Lock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err); + bool Unlock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err); + + bool GetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user); + bool SetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, + const chip::CharSpan & userName, uint32_t uniqueId, UserStatusEnum userStatus, UserTypeEnum usertype, + CredentialRuleEnum credentialRule, const CredentialStruct * credentials, size_t totalCredentials); + + bool GetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, CredentialTypeEnum credentialType, + EmberAfPluginDoorLockCredentialInfo & credential); + + bool SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, chip::FabricIndex creator, chip::FabricIndex modifier, + DlCredentialStatus credentialStatus, CredentialTypeEnum credentialType, + const chip::ByteSpan & credentialData); + + DlStatus GetWeekdaySchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, + EmberAfPluginDoorLockWeekDaySchedule & schedule); + + DlStatus SetWeekdaySchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, DlScheduleStatus status, + DaysMaskMap daysMask, uint8_t startHour, uint8_t startMinute, uint8_t endHour, uint8_t endMinute); + + DlStatus GetYeardaySchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, + EmberAfPluginDoorLockYearDaySchedule & schedule); + + DlStatus SetYeardaySchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, DlScheduleStatus status, + uint32_t localStartTime, uint32_t localEndTime); + + DlStatus GetHolidaySchedule(chip::EndpointId endpointId, uint8_t holidayIndex, EmberAfPluginDoorLockHolidaySchedule & schedule); + + DlStatus SetHolidaySchedule(chip::EndpointId endpointId, uint8_t holidayIndex, DlScheduleStatus status, uint32_t localStartTime, + uint32_t localEndTime, OperatingModeEnum operatingMode); + + bool IsValidUserIndex(uint16_t userIndex); + bool IsValidCredentialIndex(uint16_t credentialIndex, CredentialTypeEnum type); + bool IsValidWeekdayScheduleIndex(uint8_t scheduleIndex); + bool IsValidYeardayScheduleIndex(uint8_t scheduleIndex); + bool IsValidHolidayScheduleIndex(uint8_t scheduleIndex); + + bool checkPin(chip::EndpointId endpointId, DlLockState lockState, const Optional & pin, + OperationErrorEnum & err); + const char * lockStateToString(DlLockState lockState) const; + + bool ReadConfigValues(); + +private: + friend LockManager & LockMgr(); + State_t mState; + + Callback_fn_initiated mActionInitiated_CB; + Callback_fn_completed mActionCompleted_CB; + + void CancelTimer(void); + void StartTimer(uint32_t aTimeoutMs); + + static void TimerEventHandler(TimerHandle_t xTimer); + static void AutoLockTimerEventHandler(AppEvent * aEvent); + static void ActuatorMovementTimerEventHandler(AppEvent * aEvent); + + EmberAfPluginDoorLockUserInfo mLockUsers[kMaxUsers]; + EmberAfPluginDoorLockCredentialInfo mLockCredentials[kMaxCredentials]; + WeekDaysScheduleInfo mWeekdaySchedule[kMaxUsers][kMaxWeekdaySchedulesPerUser]; + YearDayScheduleInfo mYeardaySchedule[kMaxUsers][kMaxYeardaySchedulesPerUser]; + HolidayScheduleInfo mHolidaySchedule[kMaxHolidaySchedules]; + + char mUserNames[ArraySize(mLockUsers)][DOOR_LOCK_MAX_USER_NAME_SIZE]; + uint8_t mCredentialData[kMaxCredentials][kMaxCredentialSize]; + CredentialStruct mCredentials[kMaxUsers][kMaxCredentialsPerUser]; + + static LockManager sLock; + CC13X2_26X2DoorLock::LockInitParams::LockParam LockParams; +}; + +inline LockManager & LockMgr() +{ + return LockManager::sLock; +} diff --git a/examples/lock-app/cc13x4_26x4/src/ZclCallbacks.cpp b/examples/lock-app/cc13x4_26x4/src/ZclCallbacks.cpp new file mode 100644 index 00000000000000..0fb673f020c5c5 --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/ZclCallbacks.cpp @@ -0,0 +1,149 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file implements the handler for data model messages. + */ + +#include "AppConfig.h" +#include "LockManager.h" +#include + +#include +#include +#include +#include + +using namespace ::chip::app::Clusters; +using namespace ::chip::DeviceLayer::Internal; + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + ClusterId clusterId = attributePath.mClusterId; + AttributeId attributeId = attributePath.mAttributeId; + ChipLogProgress(Zcl, "Cluster callback: " ChipLogFormatMEI, ChipLogValueMEI(clusterId)); + + if (clusterId == DoorLock::Id && attributeId == DoorLock::Attributes::LockState::Id) + { + ChipLogProgress(Zcl, "Door lock cluster: " ChipLogFormatMEI, ChipLogValueMEI(clusterId)); + } +} + +/** @brief DoorLock Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + */ +void emberAfDoorLockClusterInitCallback(EndpointId endpoint) {} + +bool emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Optional & pinCode, + OperationErrorEnum & err) +{ + ChipLogProgress(Zcl, "Door Lock App: Lock Command endpoint=%d", endpointId); + bool status = LockMgr().Lock(endpointId, pinCode, err); + if (status == true) + { + LockMgr().InitiateAction(LockManager::LOCK_ACTION); + } + return status; +} + +bool emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Optional & pinCode, + OperationErrorEnum & err) +{ + ChipLogProgress(Zcl, "Door Lock App: Unlock Command endpoint=%d", endpointId); + bool status = LockMgr().Unlock(endpointId, pinCode, err); + if (status == true) + { + LockMgr().InitiateAction(LockManager::UNLOCK_ACTION); + } + + return status; +} + +bool emberAfPluginDoorLockGetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, CredentialTypeEnum credentialType, + EmberAfPluginDoorLockCredentialInfo & credential) +{ + return LockMgr().GetCredential(endpointId, credentialIndex, credentialType, credential); +} + +bool emberAfPluginDoorLockSetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, chip::FabricIndex creator, + chip::FabricIndex modifier, DlCredentialStatus credentialStatus, + CredentialTypeEnum credentialType, const chip::ByteSpan & credentialData) +{ + return LockMgr().SetCredential(endpointId, credentialIndex, creator, modifier, credentialStatus, credentialType, + credentialData); +} + +bool emberAfPluginDoorLockGetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) +{ + return LockMgr().GetUser(endpointId, userIndex, user); +} + +bool emberAfPluginDoorLockSetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, + chip::FabricIndex modifier, const chip::CharSpan & userName, uint32_t uniqueId, + UserStatusEnum userStatus, UserTypeEnum usertype, CredentialRuleEnum credentialRule, + const CredentialStruct * credentials, size_t totalCredentials) +{ + + return LockMgr().SetUser(endpointId, userIndex, creator, modifier, userName, uniqueId, userStatus, usertype, credentialRule, + credentials, totalCredentials); +} + +DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, + EmberAfPluginDoorLockWeekDaySchedule & schedule) +{ + return LockMgr().GetWeekdaySchedule(endpointId, weekdayIndex, userIndex, schedule); +} + +DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, + EmberAfPluginDoorLockYearDaySchedule & schedule) +{ + return LockMgr().GetYeardaySchedule(endpointId, yearDayIndex, userIndex, schedule); +} + +DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, + EmberAfPluginDoorLockHolidaySchedule & holidaySchedule) +{ + return LockMgr().GetHolidaySchedule(endpointId, holidayIndex, holidaySchedule); +} + +DlStatus emberAfPluginDoorLockSetSchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, + DlScheduleStatus status, DaysMaskMap daysMask, uint8_t startHour, uint8_t startMinute, + uint8_t endHour, uint8_t endMinute) +{ + return LockMgr().SetWeekdaySchedule(endpointId, weekdayIndex, userIndex, status, daysMask, startHour, startMinute, endHour, + endMinute); +} + +DlStatus emberAfPluginDoorLockSetSchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, + DlScheduleStatus status, uint32_t localStartTime, uint32_t localEndTime) +{ + return LockMgr().SetYeardaySchedule(endpointId, yearDayIndex, userIndex, status, localStartTime, localEndTime); +} + +DlStatus emberAfPluginDoorLockSetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, DlScheduleStatus status, + uint32_t localStartTime, uint32_t localEndTime, OperatingModeEnum operatingMode) +{ + return LockMgr().SetHolidaySchedule(endpointId, holidayIndex, status, localStartTime, localEndTime, operatingMode); +} diff --git a/examples/lock-app/cc13x4_26x4/src/main.cpp b/examples/lock-app/cc13x4_26x4/src/main.cpp new file mode 100644 index 00000000000000..6cf27cf79a35fb --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/src/main.cpp @@ -0,0 +1,104 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include "AppConfig.h" +#include "AppTask.h" + +#include + +/* Driver Header files */ +#include +#include +#include + +#include +#include +#include +#include + +#include +#define TOTAL_ICALL_HEAP_SIZE (0xc600) + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; +uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationStackOverflowHook(void) +{ + while (1) + { + ; + } +} + +/* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ +extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +extern "C" void vQueueUnregisterQueueWrapper(QueueHandle_t xQueue) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + Board_init(); + bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); + + GPIO_init(); + + NVS_init(); + + ECDH_init(); + + ECDSA_init(); + + AESECB_init(); + + SHA2_init(); + + int ret = GetAppTask().StartAppTask(); + if (ret != 0) + { + // can't log until the kernel is started + // PLAT_LOG("GetAppTask().StartAppTask() failed"); + while (1) + ; + } + + vTaskStartScheduler(); + + // Should never get here. + while (1) + ; +} diff --git a/examples/lock-app/cc13x4_26x4/third_party/connectedhomeip b/examples/lock-app/cc13x4_26x4/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/lock-app/cc13x4_26x4/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/lock-app/cc32xx/main/AppConfig.h b/examples/lock-app/cc32xx/main/AppConfig.h index 8eeee7fb61e3ed..c6977342e5405c 100755 --- a/examples/lock-app/cc32xx/main/AppConfig.h +++ b/examples/lock-app/cc32xx/main/AppConfig.h @@ -1,6 +1,5 @@ /* * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2019 Google LLC. * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/examples/lock-app/cc32xx/main/AppEvent.h b/examples/lock-app/cc32xx/main/AppEvent.h index ad9e93ee3ad1a5..1d1efd369495b6 100755 --- a/examples/lock-app/cc32xx/main/AppEvent.h +++ b/examples/lock-app/cc32xx/main/AppEvent.h @@ -1,6 +1,6 @@ /* * - * Copyright (c) 2018 Nest Labs, Inc. + * Copyright (c) 2021 Project CHIP Authors * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/examples/persistent-storage/cc13x2x7_26x2x7/README.md b/examples/persistent-storage/cc13x2x7_26x2x7/README.md index dc97d434c0deea..fc06023b7edb83 100644 --- a/examples/persistent-storage/cc13x2x7_26x2x7/README.md +++ b/examples/persistent-storage/cc13x2x7_26x2x7/README.md @@ -1,11 +1,11 @@ -# Matter CC1352 CC2652 Persistent Storage Example Application +# Matter Persistent Storage Example Application An example test application showing the persistent storage system for [Matter][matter] on the Texas Instruments CC13X2_26X2 family of Wireless MCUs. --- -- [Matter CC1352 CC2652 Persistent Storage Application](#matter-cc1352-cc2652-persistent-storage-example-application) +- [Matter Persistent Storage Application](#matter-persistent-storage-example-application) - [Introduction](#introduction) - [Device UI](#device-ui) - [Building](#building) @@ -64,8 +64,7 @@ guide assumes that the environment is linux based, and recommends Ubuntu 20.04. packaged with the TI SDK. Check the following section for a list of changes needed. -- Download and install [SysConfig][sysconfig] ([recommended - version][sysconfig_recommended]) +- Download and install [SysConfig][sysconfig]. - This may have already been installed with your SimpleLink SDK install. @@ -208,7 +207,11 @@ the session. Select the ELF image to load on the device with the `Browse` button. This file is placed in the `out/debug` folder by this guide and ends with the `*.out` file -extension. +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. Finally click the `Load Image` button to load the executable image onto the device. You should be able to see the log output over the XDS110 User UART. @@ -235,7 +238,7 @@ terminal emulator to that port to see the output with the following options: For technical support, please consider creating a post on TI's [E2E forum][e2e]. Additionally, we welcome any feedback. -[matter]: https://github.com/project-chip/connectedhomeip +[matter]: https://csa-iot.org/all-solutions/matter/ [ccs]: https://www.ti.com/tool/CCSTUDIO [ccs_after_launch]: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch @@ -245,9 +248,8 @@ Additionally, we welcome any feedback. https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch [ccs_manual_method]: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method -[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum [sysconfig]: https://www.ti.com/tool/SYSCONFIG -[sysconfig_recommended]: - https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.10.0_2163-setup.run [ti_cc13x2_26x2_r7_matter_request]: https://ti.com/chip_sdk [uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/platform/cc13x2_26x2/project_include/OpenThreadConfig.h b/examples/platform/cc13x2_26x2/project_include/OpenThreadConfig.h index 7747508d80bfdb..02f900809aae9b 100644 --- a/examples/platform/cc13x2_26x2/project_include/OpenThreadConfig.h +++ b/examples/platform/cc13x2_26x2/project_include/OpenThreadConfig.h @@ -1,6 +1,7 @@ /* * * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/examples/platform/cc13x4_26x4/BUILD.gn b/examples/platform/cc13x4_26x4/BUILD.gn new file mode 100644 index 00000000000000..42df17a42d0166 --- /dev/null +++ b/examples/platform/cc13x4_26x4/BUILD.gn @@ -0,0 +1,44 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/chip.gni") + +config("chip_examples_project_config") { + include_dirs = [ "project_include" ] +} + +source_set("openthread_core_config_cc13x4_26x4_chip_examples") { + sources = [ "project_include/OpenThreadConfig.h" ] + public_configs = [ ":chip_examples_project_config" ] +} + +config("attestation-credentials-config") { + include_dirs = [ "${chip_root}" ] + + defines = [ "CC13X4_26X4_ATTESTATION_CREDENTIALS" ] +} + +source_set("cc13x4_26x4-attestation-credentials") { + sources = [ + "CC13X4_26X4DeviceAttestationCreds.cpp", + "CC13X4_26X4DeviceAttestationCreds.h", + ] + + public_deps = [ + "${chip_root}/src/credentials", + "${chip_root}/src/platform:platform_base", + ] + + public_configs = [ ":attestation-credentials-config" ] +} diff --git a/examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.cpp b/examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.cpp new file mode 100644 index 00000000000000..e07e8c01c88c96 --- /dev/null +++ b/examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.cpp @@ -0,0 +1,263 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "CC13X4_26X4DeviceAttestationCreds.h" +#include +#include +#include +#include + +extern uint32_t __attestation_credentials_base; + +namespace chip { +namespace Credentials { +namespace CC13X4_26X4 { + +namespace { + +extern "C" { + +extern void cc13x4_26x4Log(const char * aFormat, ...); + +typedef struct +{ + const uint32_t len; + uint8_t const * data; +} data_ptr; + +typedef struct +{ + data_ptr dac_priv_key; + data_ptr dac_pub_key; + data_ptr dac_cert; + data_ptr pai_cert; +} factoryData; + +const uint8_t gDacPrivKey[] = { + 0x50, 0x5a, 0x21, 0x1d, 0xbd, 0xa8, 0x71, 0x33, 0x0d, 0x63, 0x5d, 0xa3, 0xb0, 0x7e, 0xb1, 0xc5, + 0x08, 0x8a, 0x8f, 0xc7, 0x01, 0x24, 0xfb, 0xb3, 0x3e, 0x93, 0xd5, 0x06, 0x05, 0x82, 0xc7, 0xc5, +}; +const uint8_t gDacPubKey[] = { + 0x04, 0xc5, 0x65, 0xfd, 0xad, 0xfd, 0x16, 0xdd, 0x62, 0xe4, 0x3f, 0x19, 0x60, 0xb9, 0x93, 0xbb, 0x57, + 0x2c, 0xfd, 0xd8, 0x1f, 0x6d, 0x71, 0x67, 0x67, 0x1b, 0x77, 0x45, 0xdc, 0xbe, 0x6f, 0x65, 0xaf, 0x66, + 0x5a, 0x1d, 0x93, 0x1c, 0x05, 0xb9, 0xf9, 0xa3, 0xe9, 0x45, 0x66, 0x85, 0x60, 0x2c, 0x05, 0xc6, 0x96, + 0x46, 0xb8, 0xf7, 0x59, 0x98, 0xdb, 0xaa, 0x68, 0x7a, 0x5c, 0x56, 0x49, 0x02, 0xda, +}; +const uint8_t gDacCert[] = { + 0x30, 0x82, 0x01, 0xf7, 0x30, 0x82, 0x01, 0x9d, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x46, 0x88, 0xeb, 0x94, 0xad, 0x32, + 0xb2, 0xe4, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x4d, 0x31, 0x1f, 0x30, 0x1d, 0x06, + 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x50, 0x41, 0x49, 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, 0x7c, + 0x02, 0x01, 0x0c, 0x04, 0x46, 0x46, 0x46, 0x31, 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, + 0x7c, 0x02, 0x02, 0x0c, 0x04, 0x38, 0x30, 0x30, 0x36, 0x30, 0x20, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x36, 0x32, 0x38, 0x31, 0x34, + 0x32, 0x33, 0x34, 0x33, 0x5a, 0x18, 0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, + 0x5a, 0x30, 0x52, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1b, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x44, 0x41, 0x43, 0x20, 0x30, 0x30, 0x30, 0x30, 0x31, + 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, 0x7c, 0x02, 0x01, 0x0c, 0x04, 0x46, 0x46, 0x46, 0x31, + 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, 0x7c, 0x02, 0x02, 0x0c, 0x04, 0x38, 0x30, 0x30, + 0x36, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, + 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xc5, 0x65, 0xfd, 0xad, 0xfd, 0x16, 0xdd, 0x62, 0xe4, 0x3f, 0x19, 0x60, 0xb9, 0x93, + 0xbb, 0x57, 0x2c, 0xfd, 0xd8, 0x1f, 0x6d, 0x71, 0x67, 0x67, 0x1b, 0x77, 0x45, 0xdc, 0xbe, 0x6f, 0x65, 0xaf, 0x66, 0x5a, 0x1d, + 0x93, 0x1c, 0x05, 0xb9, 0xf9, 0xa3, 0xe9, 0x45, 0x66, 0x85, 0x60, 0x2c, 0x05, 0xc6, 0x96, 0x46, 0xb8, 0xf7, 0x59, 0x98, 0xdb, + 0xaa, 0x68, 0x7a, 0x5c, 0x56, 0x49, 0x02, 0xda, 0xa3, 0x60, 0x30, 0x5e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, + 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80, + 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x9b, 0x40, 0x60, 0x6f, 0x9e, 0x04, 0x7f, 0xb8, 0x60, 0x78, + 0x8e, 0x3d, 0xc1, 0x12, 0xd7, 0x5e, 0x87, 0x95, 0x77, 0x68, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, + 0x80, 0x14, 0x43, 0x34, 0x57, 0x12, 0xba, 0x2c, 0x87, 0xef, 0x25, 0x49, 0x7b, 0x11, 0xd7, 0x98, 0x58, 0x9b, 0x84, 0x35, 0x7f, + 0x88, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, + 0xb9, 0x28, 0xf9, 0x3e, 0xe3, 0x87, 0xef, 0x3e, 0x00, 0x72, 0x88, 0x22, 0x84, 0xbd, 0x8a, 0xdd, 0x5c, 0xd6, 0xd0, 0x55, 0x81, + 0xbf, 0xcc, 0x55, 0x17, 0xcf, 0x9e, 0x9b, 0xcd, 0xd4, 0x37, 0xda, 0x02, 0x20, 0x10, 0x07, 0x9c, 0xcf, 0x7f, 0x1f, 0x2d, 0xda, + 0x46, 0xac, 0xe9, 0x67, 0xae, 0x5b, 0xe9, 0x66, 0xe7, 0xf2, 0x8a, 0xdf, 0xa0, 0x28, 0xb8, 0xf8, 0x7f, 0x93, 0x9e, 0xd4, 0x15, + 0x8d, 0xc0, 0xf8, +}; + +const uint8_t gPaiCert[] = { + 0x30, 0x82, 0x01, 0xdc, 0x30, 0x82, 0x01, 0x81, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x7f, 0x7e, 0xf3, 0xdb, 0x08, 0xa3, + 0x8f, 0x68, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x30, 0x31, 0x18, 0x30, 0x16, 0x06, + 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0f, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x50, 0x41, 0x41, + 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, 0x7c, 0x02, 0x01, 0x0c, 0x04, 0x46, 0x46, 0x46, + 0x31, 0x30, 0x20, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x36, 0x32, 0x38, 0x31, 0x34, 0x32, 0x33, 0x34, 0x33, 0x5a, 0x18, 0x0f, 0x39, + 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x4d, 0x31, 0x1f, 0x30, 0x1d, 0x06, + 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x50, 0x41, 0x49, 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, 0x7c, + 0x02, 0x01, 0x0c, 0x04, 0x46, 0x46, 0x46, 0x31, 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, + 0x7c, 0x02, 0x02, 0x0c, 0x04, 0x38, 0x30, 0x30, 0x36, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, + 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x42, 0x93, 0x55, 0x77, 0x35, 0x35, + 0x15, 0xce, 0xfa, 0x8f, 0x0e, 0x30, 0xe2, 0x34, 0x7e, 0x90, 0xee, 0xd6, 0xfd, 0x51, 0x5b, 0xe8, 0x82, 0xd1, 0xbc, 0xba, 0x74, + 0x83, 0xd7, 0xff, 0x6e, 0xf4, 0xde, 0xdf, 0x98, 0xf7, 0xf7, 0x4f, 0x17, 0x42, 0x1d, 0xe5, 0x45, 0x0c, 0xff, 0xfb, 0x3e, 0x7f, + 0x6d, 0x4f, 0x62, 0x28, 0x53, 0x41, 0x14, 0xfb, 0xb8, 0x5c, 0x2d, 0x52, 0xd1, 0x82, 0xb6, 0x6a, 0xa3, 0x66, 0x30, 0x64, 0x30, + 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, + 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, + 0x04, 0x16, 0x04, 0x14, 0x43, 0x34, 0x57, 0x12, 0xba, 0x2c, 0x87, 0xef, 0x25, 0x49, 0x7b, 0x11, 0xd7, 0x98, 0x58, 0x9b, 0x84, + 0x35, 0x7f, 0x88, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x6a, 0xfd, 0x22, 0x77, 0x1f, + 0x51, 0x1f, 0xec, 0xbf, 0x16, 0x41, 0x97, 0x67, 0x10, 0xdc, 0xdc, 0x31, 0xa1, 0x71, 0x7e, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, + 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21, 0x00, 0xff, 0x25, 0xf1, 0xd1, 0x54, 0xc3, 0x13, + 0x7e, 0x0e, 0x08, 0x6d, 0x82, 0xab, 0x0b, 0x11, 0xb5, 0x66, 0x18, 0x39, 0xb7, 0x12, 0xb1, 0x34, 0x2c, 0x6c, 0xde, 0x94, 0xfb, + 0xe3, 0x18, 0xa9, 0x2b, 0x02, 0x21, 0x00, 0x92, 0xe2, 0x81, 0xf9, 0x8a, 0x2f, 0xcc, 0x14, 0xcd, 0xf4, 0x07, 0x50, 0xd2, 0x80, + 0xd7, 0xdf, 0xea, 0x3f, 0x4d, 0xa4, 0x6f, 0x35, 0x7a, 0xfe, 0xac, 0xb8, 0x9b, 0x26, 0x77, 0x06, 0xd2, 0x8a, +}; + +const factoryData gFactoryData = { + .dac_priv_key = { + .len = sizeof(gDacPrivKey), + .data = gDacPrivKey, + }, + .dac_pub_key = { + .len = sizeof(gDacPubKey), + .data = gDacPubKey, + }, + .dac_cert = { + .len = sizeof(gDacCert), + .data = gDacCert, + }, + .pai_cert = { + .len = sizeof(gPaiCert), + .data = gPaiCert, + }, +}; + +} // extern "C" + +CHIP_ERROR LoadKeypairFromRaw(ByteSpan private_key, ByteSpan public_key, Crypto::P256Keypair & keypair) +{ + Crypto::P256SerializedKeypair serialized_keypair; + ReturnErrorOnFailure(serialized_keypair.SetLength(private_key.size() + public_key.size())); + memcpy(serialized_keypair.Bytes(), public_key.data(), public_key.size()); + memcpy(serialized_keypair.Bytes() + public_key.size(), private_key.data(), private_key.size()); + return keypair.Deserialize(serialized_keypair); +} + +class DeviceAttestationCredsCC13X4_26X4 : public DeviceAttestationCredentialsProvider +{ + +public: + CHIP_ERROR GetCertificationDeclaration(MutableByteSpan & out_buffer) override; + CHIP_ERROR GetFirmwareInformation(MutableByteSpan & out_firmware_info_buffer) override; + CHIP_ERROR GetDeviceAttestationCert(MutableByteSpan & out_buffer) override; + CHIP_ERROR GetProductAttestationIntermediateCert(MutableByteSpan & out_buffer) override; + CHIP_ERROR SignWithDeviceAttestationKey(const ByteSpan & message_to_sign, MutableByteSpan & out_buffer) override; + +private: + factoryData const * mFactoryData = &gFactoryData; +}; + +CHIP_ERROR DeviceAttestationCredsCC13X4_26X4::GetCertificationDeclaration(MutableByteSpan & out_buffer) +{ + //-> format_version = 1 + //-> vendor_id = 0xFFF1 + //-> product_id_array = [ 0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 0x800A, 0x800B, + // 0x800C, 0x800D, 0x800E, 0x800F, 0x8010, 0x8011, 0x8012, 0x8013, 0x8014, 0x8015, 0x8016, 0x8017, 0x8018, 0x8019, 0x801A, + // 0x801B, 0x801C, 0x801D, 0x801E, 0x801F, 0x8020, 0x8021, 0x8022, 0x8023, 0x8024, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029, + // 0x802A, 0x802B, 0x802C, 0x802D, 0x802E, 0x802F, 0x8030, 0x8031, 0x8032, 0x8033, 0x8034, 0x8035, 0x8036, 0x8037, 0x8038, + // 0x8039, 0x803A, 0x803B, 0x803C, 0x803D, 0x803E, 0x803F, 0x8040, 0x8041, 0x8042, 0x8043, 0x8044, 0x8045, 0x8046, 0x8047, + // 0x8048, 0x8049, 0x804A, 0x804B, 0x804C, 0x804D, 0x804E, 0x804F, 0x8050, 0x8051, 0x8052, 0x8053, 0x8054, 0x8055, 0x8056, + // 0x8057, 0x8058, 0x8059, 0x805A, 0x805B, 0x805C, 0x805D, 0x805E, 0x805F, 0x8060, 0x8061, 0x8062, 0x8063 ] + //-> device_type_id = 0x0016 + //-> certificate_id = "ZIG20142ZB330003-24" + //-> security_level = 0 + //-> security_information = 0 + //-> version_number = 0x2694 + //-> certification_type = 0 + //-> dac_origin_vendor_id is not present + //-> dac_origin_product_id is not present + const uint8_t kCdForAllExamples[] = { + 0x30, 0x82, 0x02, 0x19, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x02, 0x0a, 0x30, + 0x82, 0x02, 0x06, 0x02, 0x01, 0x03, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, + 0x01, 0x30, 0x82, 0x01, 0x71, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x01, 0x62, + 0x04, 0x82, 0x01, 0x5e, 0x15, 0x24, 0x00, 0x01, 0x25, 0x01, 0xf1, 0xff, 0x36, 0x02, 0x05, 0x00, 0x80, 0x05, 0x01, 0x80, + 0x05, 0x02, 0x80, 0x05, 0x03, 0x80, 0x05, 0x04, 0x80, 0x05, 0x05, 0x80, 0x05, 0x06, 0x80, 0x05, 0x07, 0x80, 0x05, 0x08, + 0x80, 0x05, 0x09, 0x80, 0x05, 0x0a, 0x80, 0x05, 0x0b, 0x80, 0x05, 0x0c, 0x80, 0x05, 0x0d, 0x80, 0x05, 0x0e, 0x80, 0x05, + 0x0f, 0x80, 0x05, 0x10, 0x80, 0x05, 0x11, 0x80, 0x05, 0x12, 0x80, 0x05, 0x13, 0x80, 0x05, 0x14, 0x80, 0x05, 0x15, 0x80, + 0x05, 0x16, 0x80, 0x05, 0x17, 0x80, 0x05, 0x18, 0x80, 0x05, 0x19, 0x80, 0x05, 0x1a, 0x80, 0x05, 0x1b, 0x80, 0x05, 0x1c, + 0x80, 0x05, 0x1d, 0x80, 0x05, 0x1e, 0x80, 0x05, 0x1f, 0x80, 0x05, 0x20, 0x80, 0x05, 0x21, 0x80, 0x05, 0x22, 0x80, 0x05, + 0x23, 0x80, 0x05, 0x24, 0x80, 0x05, 0x25, 0x80, 0x05, 0x26, 0x80, 0x05, 0x27, 0x80, 0x05, 0x28, 0x80, 0x05, 0x29, 0x80, + 0x05, 0x2a, 0x80, 0x05, 0x2b, 0x80, 0x05, 0x2c, 0x80, 0x05, 0x2d, 0x80, 0x05, 0x2e, 0x80, 0x05, 0x2f, 0x80, 0x05, 0x30, + 0x80, 0x05, 0x31, 0x80, 0x05, 0x32, 0x80, 0x05, 0x33, 0x80, 0x05, 0x34, 0x80, 0x05, 0x35, 0x80, 0x05, 0x36, 0x80, 0x05, + 0x37, 0x80, 0x05, 0x38, 0x80, 0x05, 0x39, 0x80, 0x05, 0x3a, 0x80, 0x05, 0x3b, 0x80, 0x05, 0x3c, 0x80, 0x05, 0x3d, 0x80, + 0x05, 0x3e, 0x80, 0x05, 0x3f, 0x80, 0x05, 0x40, 0x80, 0x05, 0x41, 0x80, 0x05, 0x42, 0x80, 0x05, 0x43, 0x80, 0x05, 0x44, + 0x80, 0x05, 0x45, 0x80, 0x05, 0x46, 0x80, 0x05, 0x47, 0x80, 0x05, 0x48, 0x80, 0x05, 0x49, 0x80, 0x05, 0x4a, 0x80, 0x05, + 0x4b, 0x80, 0x05, 0x4c, 0x80, 0x05, 0x4d, 0x80, 0x05, 0x4e, 0x80, 0x05, 0x4f, 0x80, 0x05, 0x50, 0x80, 0x05, 0x51, 0x80, + 0x05, 0x52, 0x80, 0x05, 0x53, 0x80, 0x05, 0x54, 0x80, 0x05, 0x55, 0x80, 0x05, 0x56, 0x80, 0x05, 0x57, 0x80, 0x05, 0x58, + 0x80, 0x05, 0x59, 0x80, 0x05, 0x5a, 0x80, 0x05, 0x5b, 0x80, 0x05, 0x5c, 0x80, 0x05, 0x5d, 0x80, 0x05, 0x5e, 0x80, 0x05, + 0x5f, 0x80, 0x05, 0x60, 0x80, 0x05, 0x61, 0x80, 0x05, 0x62, 0x80, 0x05, 0x63, 0x80, 0x18, 0x24, 0x03, 0x16, 0x2c, 0x04, + 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x32, 0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x33, 0x2d, 0x32, 0x34, + 0x24, 0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x94, 0x26, 0x24, 0x08, 0x00, 0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, + 0x03, 0x80, 0x14, 0x62, 0xfa, 0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a, 0xdd, 0xf5, 0x04, + 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, + 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02, 0x20, 0x24, 0xe5, 0xd1, 0xf4, 0x7a, 0x7d, + 0x7b, 0x0d, 0x20, 0x6a, 0x26, 0xef, 0x69, 0x9b, 0x7c, 0x97, 0x57, 0xb7, 0x2d, 0x46, 0x90, 0x89, 0xde, 0x31, 0x92, 0xe6, + 0x78, 0xc7, 0x45, 0xe7, 0xf6, 0x0c, 0x02, 0x21, 0x00, 0xf8, 0xaa, 0x2f, 0xa7, 0x11, 0xfc, 0xb7, 0x9b, 0x97, 0xe3, 0x97, + 0xce, 0xda, 0x66, 0x7b, 0xae, 0x46, 0x4e, 0x2b, 0xd3, 0xff, 0xdf, 0xc3, 0xcc, 0xed, 0x7a, 0xa8, 0xca, 0x5f, 0x4c, 0x1a, + 0x7c, + }; + + return CopySpanToMutableSpan(ByteSpan{ kCdForAllExamples }, out_buffer); +} + +CHIP_ERROR DeviceAttestationCredsCC13X4_26X4::GetFirmwareInformation(MutableByteSpan & out_firmware_info_buffer) +{ + out_firmware_info_buffer.reduce_size(0); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DeviceAttestationCredsCC13X4_26X4::GetDeviceAttestationCert(MutableByteSpan & out_buffer) +{ + ReturnErrorCodeIf(out_buffer.size() < mFactoryData->dac_cert.len, CHIP_ERROR_BUFFER_TOO_SMALL); + ReturnErrorCodeIf(!mFactoryData->dac_cert.data, CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND); + + return CopySpanToMutableSpan(ByteSpan{ mFactoryData->dac_cert.data, mFactoryData->dac_cert.len }, out_buffer); + return CHIP_NO_ERROR; +} + +CHIP_ERROR DeviceAttestationCredsCC13X4_26X4::GetProductAttestationIntermediateCert(MutableByteSpan & out_buffer) +{ + ReturnErrorCodeIf(out_buffer.size() < mFactoryData->pai_cert.len, CHIP_ERROR_BUFFER_TOO_SMALL); + ReturnErrorCodeIf(!mFactoryData->pai_cert.data, CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND); + + return CopySpanToMutableSpan(ByteSpan{ mFactoryData->pai_cert.data, mFactoryData->pai_cert.len }, out_buffer); +} + +CHIP_ERROR DeviceAttestationCredsCC13X4_26X4::SignWithDeviceAttestationKey(const ByteSpan & message_to_sign, + MutableByteSpan & out_buffer) +{ + Crypto::P256ECDSASignature signature; + Crypto::P256Keypair keypair; + + VerifyOrReturnError(IsSpanUsable(out_buffer), CHIP_ERROR_INVALID_ARGUMENT); + VerifyOrReturnError(IsSpanUsable(message_to_sign), CHIP_ERROR_INVALID_ARGUMENT); + VerifyOrReturnError(out_buffer.size() >= signature.Capacity(), CHIP_ERROR_BUFFER_TOO_SMALL); + + // In a non-exemplary implementation, the public key is not needed here. It is used here merely because + // Crypto::P256Keypair is only (currently) constructable from raw keys if both private/public keys are present. + ReturnErrorOnFailure(LoadKeypairFromRaw(ByteSpan(mFactoryData->dac_priv_key.data, mFactoryData->dac_priv_key.len), + ByteSpan(mFactoryData->dac_pub_key.data, mFactoryData->dac_pub_key.len), keypair)); + ReturnErrorOnFailure(keypair.ECDSA_sign_msg(message_to_sign.data(), message_to_sign.size(), signature)); + + return CopySpanToMutableSpan(ByteSpan{ signature.ConstBytes(), signature.Length() }, out_buffer); +} + +} // namespace + +DeviceAttestationCredentialsProvider * GetCC13X4_26X4DacProvider() +{ + static DeviceAttestationCredsCC13X4_26X4 dac_provider; + return &dac_provider; +} + +} // namespace CC13X4_26X4 +} // namespace Credentials +} // namespace chip diff --git a/examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.h b/examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.h new file mode 100644 index 00000000000000..9a99099ab09037 --- /dev/null +++ b/examples/platform/cc13x4_26x4/CC13X4_26X4DeviceAttestationCreds.h @@ -0,0 +1,36 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#pragma once + +#include + +namespace chip { +namespace Credentials { +namespace CC13X4_26X4 { + +/** + * @brief Get implementation of a sample DAC provider to validate device + * attestation procedure. + * + * @returns a singleton DeviceAttestationCredentialsProvider that relies on no + * storage abstractions. + */ +DeviceAttestationCredentialsProvider * GetCC13X4_26X4DacProvider(); + +} // namespace CC13X4_26X4 +} // namespace Credentials +} // namespace chip diff --git a/examples/platform/cc13x4_26x4/args.gni b/examples/platform/cc13x4_26x4/args.gni new file mode 100644 index 00000000000000..8ce3d8cfe73a61 --- /dev/null +++ b/examples/platform/cc13x4_26x4/args.gni @@ -0,0 +1,27 @@ +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") + +import("${chip_root}/src/platform/cc13xx_26xx/cc13x4_26x4/args.gni") + +openthread_config_file = "" +openthread_core_config_deps = [ "${chip_root}/examples/platform/cc13x4_26x4:openthread_core_config_cc13x4_26x4_chip_examples" ] + +chip_ble_project_config_include = "" +chip_device_project_config_include = "" +chip_project_config_include = "" +chip_inet_project_config_include = "" +chip_system_project_config_include = "" diff --git a/examples/platform/cc13x4_26x4/project_include/OpenThreadConfig.h b/examples/platform/cc13x4_26x4/project_include/OpenThreadConfig.h new file mode 100644 index 00000000000000..e61b5a3a5ac7a9 --- /dev/null +++ b/examples/platform/cc13x4_26x4/project_include/OpenThreadConfig.h @@ -0,0 +1,99 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Overrides to default OpenThread configuration. + * + */ + +#pragma once + +#ifdef DeviceFamily_CC13X4_CC26X4 + +/* Number of message buffers reduced to fit into CC26x2x3 RAM */ +#define OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS 22 + +#endif // DeviceFamily_CC13X4_CC26X4 + +#define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP + +// When operating in a less than ideal RF environment, having a more forgiving configuration +// of OpenThread makes thread a great deal more reliable. +#define OPENTHREAD_CONFIG_TMF_ADDRESS_QUERY_MAX_RETRY_DELAY 120 // default is 28800 +#define OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT 15 // default is 3 +#define OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT 1 // default is 0 +#define OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS 16 // default is 4 + +// Enable periodic parent search to speed up finding a better parent. +#define OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE 1 // default is 0 +#define OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD -45 // default is -65 +#define OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH 1 // default is 0 + +// Use smaller maximum interval to speed up reattaching. +#define OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL (60 * 10 * 1000) // default 1200000 ms + +#define OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE 1 +//#define OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE 0 +#define UART_AS_SERIAL_TRANSPORT 1 +#define OPENTHREAD_CONFIG_PLATFORM_USEC_TIMER_ENABLE 1 + +#define OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE 1 +#define OPENTHREAD_CONFIG_ECDSA_ENABLE 1 +#define OPENTHREAD_CONFIG_SRP_CLIENT_ENABLE 1 +#define OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE 1 +#define OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE 1 + +#define OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE 0 +#define OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE 0 +#define OPENTHREAD_CONFIG_COMMISSIONER_ENABLE 0 +#define OPENTHREAD_CONFIG_JOINER_ENABLE 0 + +#define OPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS 0 +// TCP disabled until OpenThread has a GN/Ninja build for the tcplp library +#define OPENTHREAD_CONFIG_TCP_ENABLE 0 + +#define OPENTHREAD_CONFIG_THREAD_VERSION OT_THREAD_VERSION_1_3 + +//#define OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 1 +//#define OPENTHREAD_CONFIG_COAP_API_ENABLE 1 +#define OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 0 +#define OPENTHREAD_CONFIG_COAP_API_ENABLE 0 +#define OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE 0 +#define OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE 0 +#define OPENTHREAD_CONFIG_DIAG_ENABLE 0 +#define OPENTHREAD_CONFIG_DNSSD_SERVER_ENABLE 0 +#define OPENTHREAD_CONFIG_DUA_ENABLE 1 +#define OPENTHREAD_CONFIG_LINK_RAW_ENABLE 1 +#define OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE 1 +#define OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE 1 +#define OPENTHREAD_CONFIG_MAC_FILTER_ENABLE 0 +#define OPENTHREAD_CONFIG_MAC_SOFTWARE_ACK_TIMEOUT_ENABLE 1 +#define OPENTHREAD_CONFIG_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE 1 +#define OPENTHREAD_CONFIG_MAC_SOFTWARE_RETRANSMIT_ENABLE 1 +#define OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE 1 +#define OPENTHREAD_CONFIG_MLE_LINK_METRICS_SUBJECT_ENABLE 1 +#define OPENTHREAD_CONFIG_MLR_ENABLE 1 +#define OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE 1 +#define OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE 1 +#define OPENTHREAD_CONFIG_SRP_SERVER_ENABLE 0 +#define OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 1 + +// Use the TI-supplied default platform configuration for remainder +#include "openthread-core-cc13xx_cc26xx-config.h" diff --git a/examples/pump-app/cc13x2x7_26x2x7/README.md b/examples/pump-app/cc13x2x7_26x2x7/README.md index cb425e13f45dbc..d3d53d87e7634b 100644 --- a/examples/pump-app/cc13x2x7_26x2x7/README.md +++ b/examples/pump-app/cc13x2x7_26x2x7/README.md @@ -1,33 +1,29 @@ -# Matter CC1352 CC2652 Pump Example Application +# Matter Pump Example Application An example application showing the use of [Matter][matter] on the Texas Instruments CC13XX_26XX family of Wireless MCUs. --- -- [Matter CC1352 CC2652 Pump Example Application](#matter-cc1352-cc2652-pump-example-application) +- [Matter Pump Example Application](#matter-pump-example-application) - [Introduction](#introduction) - [Device UI](#device-ui) - [Building](#building) - [Preparation](#preparation) - [Compilation](#compilation) - [Programming](#programming) - - [UniFlash](#uniflash) - [Code Composer Studio](#code-composer-studio) - - [Viewing Logging Output](#viewing-logging-output) + - [UniFlash](#uniflash) - [Running the Example](#running-the-example) - [Provisioning](#provisioning) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - - [Matter Remote Commands](#matter-remote-commands) - [TI Support](#ti-support) --- ## Introduction -![CC1352R1_LAUNCHXL](doc/images/cc1352r1_launchxl.jpg) - The CC13XX_26XX pump example application provides a working demonstration of a connected pump device. This uses the open-source Matter implementation and the Texas Instruments SimpleLink™ CC13XX and CC26XX software development kit. @@ -40,20 +36,14 @@ Instruments devices. ## Device UI -This example application has a simple User Interface to depict the state of the -pump and to control the state. The user LEDs on the LaunchPad are set on when -the pump is started, and are set off when stopped. The LEDs will flash when in -the transition state between started and stopped. - -Short presses (less than 1000ms) of the right user button (`BTN-2`) are used for -toggling the pump state. - -Short presses (less than 1000ms) of the left user button (`BTN-1`) are used for -toggling Matter BLE advertisements. - -Long presses (greater than 5000ms) of the left user button (`BTN-1`) will -initiate a factory reset of the device clearing all stored provisioning -information to allow for a new network setup. +| Action | Functionality | +| ------------------------------------------------ | -------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Left Button (`BTN-1`) Press (more than 5000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Toggle pump state | +| Red & Green LED Blinking State | Pump transition from either Start/Stop | +| Red & Green LED On State | Pump is started | +| Red & Green LED Off State | Pump stopped | ## Building @@ -63,15 +53,14 @@ Some initial setup is necessary for preparing the build environment. This section will need to be done when migrating to new versions of the SDK. This guide assumes that the environment is linux based, and recommends Ubuntu 20.04. -- Download and install [SysConfig][sysconfig] ([recommended - version][sysconfig_recommended]). This can be done simply with the following - commands. +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. ``` $ cd ~ - $ wget https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run - $ chmod +x sysconfig-1.11.0_2225-setup.run - $ ./sysconfig-1.11.0_2225-setup.run + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run ``` - Run the bootstrap script to setup the build environment. @@ -98,32 +87,95 @@ Ninja to build the executable. - Run the build to produce a default executable. By default on Linux both the TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's home directory, and you must provide the absolute path to them. For example - `/home/username/ti/sysconfig_1.11.0`. On Windows the default directory is + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is `C:\ti`. Take note of this install path, as it will be used in the next step. ``` $ cd ~/connectedhomeip/examples/pump-app/cc13x2x7_26x2x7 - $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.11.0\"" + OR + $ cd ~/connectedhomeip/examples/pump-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" $ ninja -C out/debug ``` + If you would like to define arguments on the command line you may add them + to the GN call. + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X2_26X2_ATTESTATION_CREDENTIALS=1\"]" + ``` + ## Programming Loading the built image onto a LaunchPad is supported through two methods; Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. Code Composer Studio can be used to load the image and debug the source code. +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + ### UniFlash -[Programming UniFlash](doc/programming-uniflash.md) +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. -### Code Composer Studio +Download and install [UniFlash][uniflash]. -[Programming and Debugging with CCS](doc/programming-ccs.md) +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. -## Viewing Logging Output +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Running the Example By default the log output will be sent to the Application/User UART. Open a terminal emulator to that port to see the output with the following options: @@ -139,68 +191,120 @@ terminal emulator to that port to see the output with the following options: ## Running the Example Once a device has been flashed with this example, it can now join and operate in -an existing Thread network. The following sections assume that a Thread network +an existing Matter network. The following sections assume that a Matter network is already active, and has at least one [OpenThread Border Router][ot_border_router_setup]. -### Provisioning +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. -The first step to bring the Matter device onto the network is to provision it. -Our example accomplishes this with Bluetooth Low Energy (BLE) and the -[CHIPTool](../../../examples/android/CHIPTool/README.md) mobile app. +The steps below should be followed to commission the device onto the network and +control it once it has been commissioned. -#### Bluetooth LE Advertising +**Step 0** -To provision this example onto a Thread network, the device must be discoverable -over Bluetooth LE. BLE advertising is started by pressing the right button (less -than 1000ms), labeled `BTN-2` on the silkscreen. Once the device is fully -provisioned, BLE advertising will stop. +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. -#### Bluetooth LE Rendezvous +**Step 1** -In this example, the provisioning procedure (called Rendezvous) is done over -Bluetooth LE between a Matter device (pump-app) and the Matter controller -(CHIPTool), where the controller has the commissioner role. +Commission the device onto the Matter network. Run the following command on the +CHIP tool: -To start the rendezvous, the controller must get the commissioning information -from the Matter device. +``` -This is done by scanning a QR code. A URL will be displayed on the pump-app's -log ([UART terminal](#viewing-logging-output)). It will look like the following: +./chip-tool pairing ble-thread hex: 20202021 3840 ``` -SetupQRCode: [MT:.81TM -00 0C9SS0] -Copy/paste the below URL in a browser to see the QR Code: -https://project-chip.github.io/connectedhomeip/qrcode.html?data=CH%3A.81TM%20-00%200C9SS0 + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-1`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** The pump configuration & control cluster commands have the following +formats: + +``` +./chip-tool pumpconfigurationandcontrol ``` -You can directly navigate to the webpage URL displayed (which has QR payload -pre-loaded). Alternatively, you can navigate to [the QR code -generator][qr_code_generator] and enter in the payload shown in `SetupQRCode` -(in this case `MT:.81TM -00 0C9SS0`). +Send commands to the pump-app. Here are some example commands: -### Matter Remote Commands +Write normal operation mode (0) to device -Once the Matter device is provisioned and operating on the network, CHIPTool can -be used to control the device. During the provisioning process, the Matter -device would have sent one of its newly assigned IPv6 addresses to the CHIPTool. +``` +./chip-tool pumpconfigurationandcontrol write operation-mode 0 1 1 +``` + +Get current operation mode + +``` +./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 +``` + +### Provisioning + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. + +#### Bluetooth LE Advertising + +To provision this example onto a Thread network, the device must be discoverable +over Bluetooth LE. BLE advertising is started by long pressing the right button +(greater than 1000ms), labeled `BTN-1` on the silkscreen. Once the device is +fully provisioned, BLE advertising will stop. + +#### Bluetooth LE Rendezvous -In the app, you should see an On/Off cluster; this corresponds to the pump-app. -You can now control the pump-app Matter device from the smartphone! +Pairing this application with `ble-thread` can be done with any of the enabled +[CHIP Controller](../../../src/controller/README.md) applications. Use the +information printed on the console to aide in pairing the device. The controller +application can also be used to control the example app with the cluster +commands. ## TI Support For technical support, please consider creating a post on TI's [E2E forum][e2e]. Additionally, we welcome any feedback. -[matter]: https://github.com/project-chip/connectedhomeip -[cc1352r1_launchxl]: https://www.ti.com/tool/LAUNCHXL-CC1352R1 -[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide [sysconfig]: https://www.ti.com/tool/SYSCONFIG -[sysconfig_recommended]: - https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run [ti_thread_dnd]: https://www.ti.com/wireless-connectivity/thread/design-development.html -[ot_border_router_setup]: - https://openthread.io/guides/border-router/beaglebone-black -[qr_code_generator]: https://project-chip.github.io/connectedhomeip/qrcode.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/pump-app/cc13x4_26x4/.gn b/examples/pump-app/cc13x4_26x4/.gn new file mode 100644 index 00000000000000..3d48789e30ab3d --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/.gn @@ -0,0 +1,28 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/pump-app/cc13x4_26x4/BUILD.gn b/examples/pump-app/cc13x4_26x4/BUILD.gn new file mode 100644 index 00000000000000..18865640fb3259 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/BUILD.gn @@ -0,0 +1,119 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/openthread.gni") +import("//build_overrides/ti_simplelink_sdk.gni") + +import("${build_root}/config/defaults.gni") +import("${chip_root}/src/platform/device.gni") + +import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") +import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") + +assert(current_os == "freertos") + +project_dir = "${chip_root}/examples/pump-app/cc13x4_26x4" + +ti_simplelink_sdk("sdk") { + include_dirs = [ "${project_dir}/main/include" ] + public_configs = [ ":pump_app_config" ] +} + +ti_sysconfig("sysconfig") { + sources = [ "${project_dir}/chip.syscfg" ] + + outputs = [ + "ti_devices_config.c", + "ti_radio_config.c", + "ti_radio_config.h", + "ti_drivers_config.c", + "ti_drivers_config.h", + "ti_ble_config.c", + "ti_ble_config.h", + "ti_dmm_application_policy.c", + "ti_dmm_application_policy.h", + + # disabled until upstream generation is aligned + #"tiop_config.h", + #"tiop_config.c", + + # not traditional source files + #"ti_utils_build_linker.cmd.genlibs", + #"syscfg_c.rov.xs", + #"ti_utils_runtime_model.gv", + #"ti_utils_runtime_Makefile", + #"ti_ble_app_config.opt", + #"ti_build_config.opt", + ] + + public_configs = [ ":sdk_dmm_config" ] + + cflags = [ + "-Wno-comment", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", + root_build_dir), + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + root_build_dir), + ] +} + +ti_simplelink_executable("pump_app") { + output_name = "chip-${ti_simplelink_board}-pump-example.out" + + sources = [ + "${project_dir}/main/AppTask.cpp", + "${project_dir}/main/CHIPDeviceManager.cpp", + "${project_dir}/main/DeviceCallbacks.cpp", + "${project_dir}/main/PumpManager.cpp", + "${project_dir}/main/ZclCallbacks.cpp", + "${project_dir}/main/main.cpp", + ] + + deps = [ + ":sdk", + ":sysconfig", + "${chip_root}/examples/platform/cc13x4_26x4:cc13x4_26x4-attestation-credentials", + "${chip_root}/examples/pump-app/pump-common", + "${chip_root}/src/lib", + ] + + if (chip_openthread_ftd) { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] + } else { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + } + + include_dirs = [ + "${project_dir}", + "${project_dir}/main", + ] + + cflags = [ + "-Wno-implicit-fallthrough", + "-Wno-sign-compare", + "-Wconversion", + ] + + output_dir = root_out_dir +} + +group("cc13x4_26x4") { + deps = [ ":pump_app" ] +} + +group("default") { + deps = [ ":cc13x4_26x4" ] +} diff --git a/examples/pump-app/cc13x4_26x4/README.md b/examples/pump-app/cc13x4_26x4/README.md new file mode 100644 index 00000000000000..08385526ae14d9 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/README.md @@ -0,0 +1,310 @@ +# Matter Pump Example Application + +An example application showing the use of [Matter][matter] on the Texas +Instruments CC13XX_26XX family of Wireless MCUs. + +--- + +- [Matter Pump Example Application](#matter-pump-example-application) + - [Introduction](#introduction) + - [Device UI](#device-ui) + - [Building](#building) + - [Preparation](#preparation) + - [Compilation](#compilation) + - [Programming](#programming) + - [Code Composer Studio](#code-composer-studio) + - [UniFlash](#uniflash) + - [Running the Example](#running-the-example) + - [Provisioning](#provisioning) + - [Bluetooth LE Advertising](#bluetooth-le-advertising) + - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) + - [TI Support](#ti-support) + +--- + +## Introduction + +The CC13XX_26XX pump example application provides a working demonstration of a +connected pump device. This uses the open-source Matter implementation and the +Texas Instruments SimpleLink™ CC13XX and CC26XX software development kit. + +This example is enabled to build for CC1354P10 devices. + +The pump example is intended to serve both as a means to explore the workings of +Matter, as well as a template for creating real products based on the Texas +Instruments devices. + +## Device UI + +| Action | Functionality | +| ------------------------------------------------ | -------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Left Button (`BTN-1`) Press (more than 5000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Toggle pump state | +| Red & Green LED Blinking State | Pump transition from either Start/Stop | +| Red & Green LED On State | Pump is started | +| Red & Green LED Off State | Pump stopped | + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. + + ``` + $ cd ~ + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/pump-app/cc13x2x7_26x2x7 + OR + $ cd ~/connectedhomeip/examples/pump-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + $ ninja -C out/debug + + ``` + + If you would like to define arguments on the command line you may add them + to the GN call. + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Running the Example + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Matter network. The following sections assume that a Matter network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +The steps below should be followed to commission the device onto the network and +control it once it has been commissioned. + +**Step 0** + +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. + +**Step 1** + +Commission the device onto the Matter network. Run the following command on the +CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-1`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** The pump configuration & control cluster commands have the following +formats: + +``` +./chip-tool pumpconfigurationandcontrol +``` + +Send commands to the pump-app. Here are some example commands: + +Write normal operation mode (0) to device + +``` +./chip-tool pumpconfigurationandcontrol write operation-mode 0 1 1 +``` + +Get current operation mode + +``` +./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 +``` + +### Provisioning + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. + +#### Bluetooth LE Advertising + +To provision this example onto a Thread network, the device must be discoverable +over Bluetooth LE. BLE advertising is started by long pressing the right button +(greater than 1000ms), labeled `BTN-1` on the silkscreen. Once the device is +fully provisioned, BLE advertising will stop. + +#### Bluetooth LE Rendezvous + +Pairing this application with `ble-thread` can be done with any of the enabled +[CHIP Controller](../../../src/controller/README.md) applications. Use the +information printed on the console to aide in pairing the device. The controller +application can also be used to control the example app with the cluster +commands. + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/pump-app/cc13x4_26x4/args.gni b/examples/pump-app/cc13x4_26x4/args.gni new file mode 100644 index 00000000000000..a0299575e8bc49 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/args.gni @@ -0,0 +1,48 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/chip.gni") +import("${chip_root}/examples/platform/cc13x4_26x4/args.gni") + +ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") +ti_simplelink_sysconfig_target = + get_label_info(":sysconfig", "label_no_toolchain") + +ti_simplelink_board = "LP_EM_CC1354P10_6" + +# Size Optimizations +# use -Os instead of -Og, LWIP release build +optimize_debug_level = "s" +lwip_debug = false + +chip_enable_ota_requestor = false + +openthread_external_platform = "${chip_root}/third_party/openthread/platforms/cc13x4_26x4:libopenthread-cc13x4_cc26x4" + +# Disable CHIP Logging +#chip_progress_logging = false +#chip_detail_logging = false +#chip_automation_logging = false + +# BLE options +chip_config_network_layer_ble = true + +# Disable lock tracking, since our FreeRTOS configuration does not set +# INCLUDE_xSemaphoreGetMutexHolder +chip_stack_lock_tracking = "none" + +matter_device_vid = "0xFFF1" +matter_device_pid = "0x800A" +matter_software_ver = "0x0001" +matter_software_ver_str = "1.0d1" diff --git a/examples/pump-app/cc13x4_26x4/build_overrides b/examples/pump-app/cc13x4_26x4/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/pump-app/cc13x4_26x4/chip.syscfg b/examples/pump-app/cc13x4_26x4/chip.syscfg new file mode 100644 index 00000000000000..e9cb55c3e22f07 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/chip.syscfg @@ -0,0 +1,242 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* Modules */ +var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); +var AESECB = scripting.addModule("/ti/drivers/AESECB"); +var Button = scripting.addModule("/ti/drivers/apps/Button"); +var LED = scripting.addModule("/ti/drivers/apps/LED"); +var NVS = scripting.addModule("/ti/drivers/NVS"); +var RF = scripting.addModule("/ti/drivers/RF"); +var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); +var RFCustom = scripting.addModule("/ti/devices/radioconfig/custom"); +var TRNG = scripting.addModule("/ti/drivers/TRNG"); +var SHA2 = scripting.addModule("/ti/drivers/SHA2"); +var UART2 = scripting.addModule("/ti/drivers/UART2"); +var ble = scripting.addModule("/ti/ble5stack/ble"); +var dmm = scripting.addModule("/ti/dmm/dmm"); +var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); +var ECDH = scripting.addModule("/ti/drivers/ECDH"); + +/* Instances */ +var AESCCM1 = AESCCM.addInstance(); +var AESECB1 = AESECB.addInstance(); +var AESECB2 = AESECB.addInstance(); +var Button1 = Button.addInstance(); +var Button2 = Button.addInstance(); +var NVS1 = NVS.addInstance(); +var NVS2 = NVS.addInstance(); +var SHA21 = SHA2.addInstance(); +var LED1 = LED.addInstance(); +var LED2 = LED.addInstance(); +var TRNG1 = TRNG.addInstance(); +var TRNG2 = TRNG.addInstance(); +var TRNG3 = TRNG.addInstance(); +var UART2 = UART2.addInstance(); +var AESCTRDRBG1 = AESCTRDRBG.addInstance(); +var ECDH1 = ECDH.addInstance(); + +AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; + +AESCCM1.$name = "CONFIG_AESCCM0"; + +AESECB1.$name = "CONFIG_AESECB0"; +AESECB2.$name = "CONFIG_AESECB_1"; + +ECDH1.$name = "CONFIG_ECDH0"; + +/* Left Button */ +Button1.$name = "CONFIG_BTN_LEFT"; +Button1.$hardware = system.deviceData.board.components["BTN-1"]; +Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; +Button1.gpioPin.pull = "Pull Up"; +Button1.gpioPin.interruptTrigger = "Falling Edge"; + +/* Left Button */ +Button2.$name = "CONFIG_BTN_RIGHT"; +Button2.$hardware = system.deviceData.board.components["BTN-2"]; +Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; +Button2.gpioPin.pull = "Pull Up"; +Button2.gpioPin.interruptTrigger = "Falling Edge"; + +/* ======== CCFG ======== */ +var CCFG = scripting.addModule("/ti/devices/CCFG"); +const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; +for(var setting in ccfgSettings) +{ + CCFG[setting] = ccfgSettings[setting]; +} + +CCFG.enableCodeGeneration = true; + + +/* NVS */ +NVS1.$name = "CONFIG_NVSINTERNAL"; +NVS1.internalFlash.regionBase = 0xFB800; +NVS1.internalFlash.regionSize = 0x2800; + + +NVS2.$name = "CONFIG_NVSEXTERNAL"; +NVS2.nvsType = "External"; // NVS Region Type +NVS2.$hardware = system.deviceData.board.components.MX25R8035F; + +/* RF */ +/* if an antenna component exists, assign it to the rf instance */ +if (system.deviceData.board && system.deviceData.board.components.RF) { + RF.$hardware = system.deviceData.board.components.RF; +} + +const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; +for(var setting in rfDesignSettings) +{ + RFDesign[setting] = rfDesignSettings[setting]; +} + + + +/* Handling for RF frontend characterization */ +if(RFDesign.rfDesign.match(/LP_CC2652PSIP/)) +{ + RFCustom.ieee = ["ieee154p10"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154p10.codeExportConfig +} +else +{ + RFCustom.ieee = ["ieee154"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154.codeExportConfig +} + +var cmdList = [ + "cmdIeeeTx", + "cmdIeeeRx", + "cmdIeeeCsma", + "cmdIeeeEdScan", + "cmdIeeeRxAck", + "cmdTxTest" +]; + +rfCodeExportConfig.useConst = true; +rfCodeExportConfig.useMulti = true; +rfCodeExportConfig.symGenMethod = "Custom"; + +const deviceId = system.deviceData.deviceId; + +// Add high PA options if present +if(deviceId.match(/CC(265[12]R|2674R|1352R1|1354R)/)) +{ + cmdList.push("cmdRadioSetup"); + rfCodeExportConfig.cmdRadioSetup = "RF_cmdIeeeRadioSetup"; +} +else if(deviceId.match(/CC(265[12]P|2674P|1352P)/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + rfCodeExportConfig.paExport = "combined"; +} +else if(deviceId.match(/CC(265[34]|1354)P/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + // currently not characterized for high PA +} +else +{ + throw new Error("Could not match platform to any known platform types"); +} + +rfCodeExportConfig.cmdList_ieee_15_4 = cmdList; + +/* Red LED */ +LED1.$name = "CONFIG_LED_RED"; +LED1.$hardware = system.deviceData.board.components.LED_RED; +LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; +LED1.gpioPin.mode = "Output"; +LED1.gpioPin.callbackFunction = ""; + +/* Green LED */ +LED2.$name = "CONFIG_LED_GREEN"; +LED2.$hardware = system.deviceData.board.components.LED_GREEN; +LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; +LED2.gpioPin.mode = "Output"; +LED2.gpioPin.callbackFunction = ""; + +/* Debug UART */ +UART2.$hardware = system.deviceData.board.components.XDS110UART; +UART2.$name = "CONFIG_UART2_DEBUG"; + +/* TRNG */ +TRNG1.$name = "CONFIG_TRNG_0"; +TRNG2.$name = "CONFIG_TRNG_THREAD"; +TRNG3.$name = "CONFIG_TRNG_APP"; + +/* BLE */ +ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; +ble.maxConnNum = 1; +ble.numOfAdvSets = 1; +ble.lockProject = true; +ble.oneLibSizeOpt = true; +ble.maxPDUSize = 255; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; +ble.connUpdateParamsPeripheral.reqMinConnInt = 30; +ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + +ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; +ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; + +ble.rfDesign = "LP_EM_CC1354P10_6"; + +ble.thorPg = 2; +/* DMM */ +dmm.project = "ti_thread_thermostat_remote_display"; +dmm.stackRoles = ["blePeripheral","threadFTD"]; +dmm.lockStackRoles = true; +dmm.numApplicationStates = 10; +dmm.applicationState0 = "ANY"; +dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; +dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; +dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; +dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; +dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; +dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; +dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; +dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; +dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; +dmm.policyArray.create(4); +dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; +dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; +dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; +dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; +dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; +dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; +dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; +dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; +dmm.policyArray[1].blePeripheral.weight = 25; +dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; +dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; +dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; +dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; +dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; +dmm.policyArray[2].threadFTD.weight = 30; +dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; +dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; +dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; +dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; +dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; +dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/pump-app/cc13x4_26x4/main/AppTask.cpp b/examples/pump-app/cc13x4_26x4/main/AppTask.cpp new file mode 100644 index 00000000000000..8b03138ae7513c --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/AppTask.cpp @@ -0,0 +1,676 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" +#include "CHIPDeviceManager.h" +#include "DeviceCallbacks.h" +#include +#include + +#include "FreeRTOS.h" +#include +#include + +#include + +#include +#include +#include + +#if defined(CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR) +#include +#include +#include +#include +#include +#endif +#include +#include +#include +#include +#include + +#include + +#include +#include + +/* syscfg */ +#include + +#define APP_TASK_STACK_SIZE (4096) +#define APP_TASK_PRIORITY 4 +#define APP_EVENT_QUEUE_SIZE 10 + +#define PCC_CLUSTER_ENDPOINT 1 +#define ONOFF_CLUSTER_ENDPOINT 1 +#define EXTENDED_DISCOVERY_TIMEOUT_SEC 20 + +using namespace chip; +using namespace chip::app; +using namespace chip::Credentials; +using namespace chip::DeviceLayer; +using namespace chip::DeviceManager; +using namespace chip::app::Clusters; + +static TaskHandle_t sAppTaskHandle; +static QueueHandle_t sAppEventQueue; + +static LED_Handle sAppRedHandle; +static LED_Handle sAppGreenHandle; +static Button_Handle sAppLeftHandle; +static Button_Handle sAppRightHandle; + +AppTask AppTask::sAppTask; + +static DeviceCallbacks sDeviceCallbacks; + +#if defined(CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR) +static DefaultOTARequestor sRequestorCore; +static DefaultOTARequestorStorage sRequestorStorage; +static DefaultOTARequestorDriver sRequestorUser; +static BDXDownloader sDownloader; +static OTAImageProcessorImpl sImageProcessor; + +void InitializeOTARequestor(void) +{ + // Initialize and interconnect the Requestor and Image Processor objects + SetRequestorInstance(&sRequestorCore); + + sRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + sRequestorCore.Init(chip::Server::GetInstance(), sRequestorStorage, sRequestorUser, sDownloader); + sImageProcessor.SetOTADownloader(&sDownloader); + sDownloader.SetImageProcessorDelegate(&sImageProcessor); + sRequestorUser.Init(&sRequestorCore, &sImageProcessor); +} +#endif + +static const chip::EndpointId sIdentifyEndpointId = 0; +static const uint32_t sIdentifyBlinkRateMs = 500; + +::Identify stIdentify = { sIdentifyEndpointId, AppTask::IdentifyStartHandler, AppTask::IdentifyStopHandler, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, AppTask::TriggerIdentifyEffectHandler }; + +int AppTask::StartAppTask() +{ + int ret = 0; + + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + PLAT_LOG("Failed to allocate app event queue"); + while (true) + ; + } + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != + pdPASS) + { + PLAT_LOG("Failed to create app task"); + while (true) + ; + } + return ret; +} + +int AppTask::Init() +{ + LED_Params ledParams; + Button_Params buttonParams; + + cc13xx_26xxLogInit(); + + // Init Chip memory management before the stack + Platform::MemoryInit(); + + CHIP_ERROR ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().InitChipStack() failed"); + while (true) + ; + } + + ret = ThreadStackMgr().InitThreadStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().InitThreadStack() failed"); + while (true) + ; + } + +#ifdef CONFIG_OPENTHREAD_MTD_SED + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_SleepyEndDevice); +#elif CONFIG_OPENTHREAD_MTD + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#else + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); +#endif + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); + while (true) + ; + } + + ret = ThreadStackMgrImpl().StartThreadTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().StartThreadTask() failed"); + while (true) + ; + } + + // Initialize LEDs + PLAT_LOG("Initialize LEDs"); + LED_init(); + + LED_Params_init(&ledParams); // default PWM LED + sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); + LED_setOff(sAppRedHandle); + + LED_Params_init(&ledParams); // default PWM LED + sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + LED_setOff(sAppGreenHandle); + + // Initialize buttons + PLAT_LOG("Initialize buttons"); + Button_init(); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGPRESSED; + buttonParams.longPressDuration = 5000U; // ms + sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); + Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); + Button_setCallback(sAppRightHandle, ButtonRightEventHandler); + + // Initialize Pump module + PLAT_LOG("Initialize Pump"); + PumpMgr().Init(); + + PumpMgr().SetCallbacks(ActionInitiated, ActionCompleted); + +#if CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY + DnssdServer::Instance().SetExtendedDiscoveryTimeoutSecs(EXTENDED_DISCOVERY_TIMEOUT_SEC); +#endif + + // Init ZCL Data Model + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + chip::Server::GetInstance().Init(initParams); + + // Initialize device attestation config +#ifdef CC13X4_26X4_ATTESTATION_CREDENTIALS + SetDeviceAttestationCredentialsProvider(CC13X4_26X4::GetCC13X4_26X4DacProvider()); +#else + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#endif + + ConfigurationMgr().LogDeviceConfig(); + +#if defined(CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR) + InitializeOTARequestor(); +#endif + + // QR code will be used with CHIP Tool + PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); + + CHIPDeviceManager & deviceMgr = CHIPDeviceManager::GetInstance(); + ret = deviceMgr.Init(&sDeviceCallbacks); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("CHIPDeviceManager::Init() failed: %s", ErrorStr(ret)); + while (true) + ; + } + + return 0; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + + sAppTask.Init(); + + while (true) + { + /* Task pend until we have stuff to do */ + if (xQueueReceive(sAppEventQueue, &event, portMAX_DELAY) == pdTRUE) + { + sAppTask.DispatchEvent(&event); + } + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (xQueueSend(sAppEventQueue, aEvent, 0) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonLeft; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGPRESSED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongPressed; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonRight; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ActionInitiated(PumpManager::Action_t aAction, int32_t aActor) +{ + // If the action has been initiated by the pump, update the pump trait + // and start flashing the LEDs rapidly to indicate action initiation. + if (aAction == PumpManager::START_ACTION) + { + PLAT_LOG("Pump start initiated"); + ; // TODO + } + else if (aAction == PumpManager::STOP_ACTION) + { + PLAT_LOG("Stop initiated"); + ; // TODO + } + + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 50 /* ms */, LED_BLINK_FOREVER); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppRedHandle, 110 /* ms */, LED_BLINK_FOREVER); +} + +void AppTask::ActionCompleted(PumpManager::Action_t aAction, int32_t aActor) +{ + // if the action has been completed by the pump, update the pump trait. + // Turn on the pump state LED if in a STARTED state OR + // Turn off the pump state LED if in an STOPPED state. + if (aAction == PumpManager::START_ACTION) + { + PLAT_LOG("Pump start completed"); + LED_stopBlinking(sAppGreenHandle); + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_stopBlinking(sAppRedHandle); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + // Signal to the PCC cluster, that the pump is running + sAppTask.UpdateClusterState(); + } + else if (aAction == PumpManager::STOP_ACTION) + { + PLAT_LOG("Pump stop completed"); + LED_stopBlinking(sAppGreenHandle); + LED_setOff(sAppGreenHandle); + LED_stopBlinking(sAppRedHandle); + LED_setOff(sAppRedHandle); + // Signal to the PCC cluster, that the pump is NOT running + sAppTask.UpdateClusterState(); + } + if (aActor == AppEvent::kEventType_ButtonLeft) + { + sAppTask.UpdateClusterState(); + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + switch (aEvent->Type) + { + case AppEvent::kEventType_ButtonRight: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + // Toggle Pump state + if (!PumpMgr().IsStopped()) + { + PumpMgr().InitiateAction(0, PumpManager::STOP_ACTION); + } + else + { + PumpMgr().InitiateAction(0, PumpManager::START_ACTION); + } + } + break; + + case AppEvent::kEventType_ButtonLeft: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + // Post event for demonstration purposes, we must ensure that the + // LogEvent is called in the right context which is the Matter mainloop + // thru ScheduleWork() + chip::DeviceLayer::PlatformMgr().ScheduleWork(sAppTask.PostEvents, reinterpret_cast(nullptr)); + + // Toggle BLE advertisements + if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + if (chip::Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() == CHIP_NO_ERROR) + { + PLAT_LOG("Enabled BLE Advertisements"); + } + else + { + PLAT_LOG("OpenBasicCommissioningWindow() failed"); + } + } + else + { + // Disable BLE advertisements + ConnectivityMgr().SetBLEAdvertisingEnabled(false); + PLAT_LOG("Disabled BLE Advertisements"); + } + } + else if (AppEvent::kAppEventButtonType_LongPressed == aEvent->ButtonEvent.Type) + { + chip::Server::GetInstance().ScheduleFactoryReset(); + } + break; + + case AppEvent::kEventType_IdentifyStart: + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, sIdentifyBlinkRateMs, LED_BLINK_FOREVER); + PLAT_LOG("Identify started"); + break; + + case AppEvent::kEventType_IdentifyStop: + LED_stopBlinking(sAppGreenHandle); + + if (!PumpMgr().IsStopped()) + { + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + } + else + { + LED_setOff(sAppGreenHandle); + } + PLAT_LOG("Identify stopped"); + break; + + case AppEvent::kEventType_AppEvent: + if (NULL != aEvent->Handler) + { + aEvent->Handler(aEvent); + } + break; + + case AppEvent::kEventType_None: + default: + break; + } +} + +void AppTask::InitOnOffClusterState() +{ + + EmberStatus status; + + ChipLogProgress(NotSpecified, "Init On/Off clusterstate"); + + // Write false as pump always boots in stopped mode + status = OnOff::Attributes::OnOff::Set(ONOFF_CLUSTER_ENDPOINT, false); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Init On/Off state %x", status); + } +} + +void AppTask::InitPCCClusterState() {} + +void AppTask::UpdateClusterState(void) +{ + // We must ensure that the Cluster accessors gets called in the right context + // which is the Matter mainloop thru ScheduleWork() + chip::DeviceLayer::PlatformMgr().ScheduleWork(UpdateCluster, reinterpret_cast(nullptr)); +} + +void AppTask::UpdateCluster(intptr_t context) +{ + EmberStatus status; + BitMask pumpStatus; + + ChipLogProgress(NotSpecified, "Update Cluster State"); + + // Update the PumpStatus + PumpConfigurationAndControl::Attributes::PumpStatus::Get(PCC_CLUSTER_ENDPOINT, &pumpStatus); + if (PumpMgr().IsStopped()) + { + pumpStatus.Clear(PumpConfigurationAndControl::PumpStatusBitmap::kRunning); + } + else + { + pumpStatus.Set(PumpConfigurationAndControl::PumpStatusBitmap::kRunning); + } + PumpConfigurationAndControl::Attributes::PumpStatus::Set(PCC_CLUSTER_ENDPOINT, pumpStatus); + + status = PumpConfigurationAndControl::Attributes::ControlMode::Set(PCC_CLUSTER_ENDPOINT, + PumpConfigurationAndControl::ControlModeEnum::kConstantFlow); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Constant Flow error %x", status); + } + status = PumpConfigurationAndControl::Attributes::ControlMode::Set( + PCC_CLUSTER_ENDPOINT, PumpConfigurationAndControl::ControlModeEnum::kConstantPressure); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Constant Pressure error %x", status); + } + status = PumpConfigurationAndControl::Attributes::ControlMode::Set( + PCC_CLUSTER_ENDPOINT, PumpConfigurationAndControl::ControlModeEnum::kConstantSpeed); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Constant Speed error %x", status); + } + status = PumpConfigurationAndControl::Attributes::ControlMode::Set( + PCC_CLUSTER_ENDPOINT, PumpConfigurationAndControl::ControlModeEnum::kConstantTemperature); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Constant Temperature error %x", status); + } + + // Write the new values + bool onOffState = !PumpMgr().IsStopped(); + status = OnOff::Attributes::OnOff::Set(ONOFF_CLUSTER_ENDPOINT, onOffState); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating On/Off state %x", status); + } + + int16_t maxPressure = PumpMgr().GetMaxPressure(); + status = PumpConfigurationAndControl::Attributes::MaxPressure::Set(PCC_CLUSTER_ENDPOINT, maxPressure); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxPressure %x", status); + } + + uint16_t maxSpeed = PumpMgr().GetMaxSpeed(); + status = PumpConfigurationAndControl::Attributes::MaxSpeed::Set(PCC_CLUSTER_ENDPOINT, maxSpeed); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxSpeed %x", status); + } + + uint16_t maxFlow = PumpMgr().GetMaxFlow(); + status = PumpConfigurationAndControl::Attributes::MaxFlow::Set(PCC_CLUSTER_ENDPOINT, maxFlow); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxFlow %x", status); + } + + int16_t minConstPress = PumpMgr().GetMinConstPressure(); + status = PumpConfigurationAndControl::Attributes::MinConstPressure::Set(PCC_CLUSTER_ENDPOINT, minConstPress); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MinConstPressure %x", status); + } + + int16_t maxConstPress = PumpMgr().GetMaxConstPressure(); + status = PumpConfigurationAndControl::Attributes::MaxConstPressure::Set(PCC_CLUSTER_ENDPOINT, maxConstPress); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxConstPressure %x", status); + } + + int16_t minCompPress = PumpMgr().GetMinCompPressure(); + status = PumpConfigurationAndControl::Attributes::MinCompPressure::Set(PCC_CLUSTER_ENDPOINT, minCompPress); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MinCompPressure %x", status); + } + + int16_t maxCompPress = PumpMgr().GetMaxCompPressure(); + status = PumpConfigurationAndControl::Attributes::MaxCompPressure::Set(PCC_CLUSTER_ENDPOINT, maxCompPress); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxCompPressure %x", status); + } + + uint16_t minConstSpeed = PumpMgr().GetMinConstSpeed(); + status = PumpConfigurationAndControl::Attributes::MinConstSpeed::Set(PCC_CLUSTER_ENDPOINT, minConstSpeed); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MinConstSpeed %x", status); + } + + uint16_t maxConstSpeed = PumpMgr().GetMaxConstSpeed(); + status = PumpConfigurationAndControl::Attributes::MaxConstSpeed::Set(PCC_CLUSTER_ENDPOINT, maxConstSpeed); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxConstSpeed %x", status); + } + + uint16_t minConstFlow = PumpMgr().GetMinConstFlow(); + status = PumpConfigurationAndControl::Attributes::MinConstFlow::Set(PCC_CLUSTER_ENDPOINT, minConstFlow); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MinConstFlow %x", status); + } + + uint16_t maxConstFlow = PumpMgr().GetMaxConstFlow(); + status = PumpConfigurationAndControl::Attributes::MaxConstFlow::Set(PCC_CLUSTER_ENDPOINT, maxConstFlow); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxConstFlow %x", status); + } + + int16_t minConstTemp = PumpMgr().GetMinConstTemp(); + status = PumpConfigurationAndControl::Attributes::MinConstTemp::Set(PCC_CLUSTER_ENDPOINT, minConstTemp); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MinConstTemp %x", status); + } + + int16_t maxConstTemp = PumpMgr().GetMaxConstTemp(); + status = PumpConfigurationAndControl::Attributes::MaxConstTemp::Set(PCC_CLUSTER_ENDPOINT, maxConstTemp); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: Updating MaxConstTemp %x", status); + } +} + +void AppTask::PostEvents(intptr_t context) +{ + // Example on posting events - here we post the general fault event on endpoints with PCC Server enabled + for (auto endpoint : EnabledEndpointsWithServerCluster(PumpConfigurationAndControl::Id)) + { + PumpConfigurationAndControl::Events::GeneralFault::Type event; + EventNumber eventNumber; + + ChipLogProgress(Zcl, "AppTask: Post PCC GeneralFault event"); + // Using default priority for the event + if (CHIP_NO_ERROR != LogEvent(event, endpoint, eventNumber)) + { + ChipLogError(Zcl, "AppTask: Failed to record GeneralFault event"); + } + } +} + +void AppTask::IdentifyStartHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStart; + sAppTask.PostEvent(&event); +} + +void AppTask::IdentifyStopHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStop; + sAppTask.PostEvent(&event); +} + +void AppTask::TriggerIdentifyEffectHandler(::Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + PLAT_LOG("Starting blink identifier effect"); + IdentifyStartHandler(identify); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + PLAT_LOG("Breathe identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + PLAT_LOG("Okay identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + PLAT_LOG("Channel Change identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_FINISH_EFFECT: + PLAT_LOG("Finish identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT: + PLAT_LOG("Stop identifier effect"); + IdentifyStopHandler(identify); + break; + default: + PLAT_LOG("No identifier effect"); + } +} diff --git a/examples/pump-app/cc13x4_26x4/main/CHIPDeviceManager.cpp b/examples/pump-app/cc13x4_26x4/main/CHIPDeviceManager.cpp new file mode 100644 index 00000000000000..9c1894abc0bd80 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/CHIPDeviceManager.cpp @@ -0,0 +1,91 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file implements the CHIP Device Interface that is used by + * applications to interact with the CHIP stack + * + */ + +#include + +#include "AppConfig.h" +#include "CHIPDeviceManager.h" + +#include +#include +#include +#include +#include +#include + +using namespace ::chip; + +namespace chip { +namespace DeviceManager { + +using namespace ::chip::DeviceLayer; + +void CHIPDeviceManager::CommonDeviceEventHandler(const ChipDeviceEvent * event, intptr_t arg) +{ + CHIPDeviceManagerCallbacks * cb = reinterpret_cast(arg); + if (cb != nullptr) + { + cb->DeviceEventCallback(event, reinterpret_cast(cb)); + } +} + +CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) +{ + mCB = cb; + + // Register a function to receive events from the CHIP device layer. Note that calls to + // this function will happen on the CHIP event loop thread, not the app_main thread. + PlatformMgr().AddEventHandler(CHIPDeviceManager::CommonDeviceEventHandler, reinterpret_cast(cb)); + + // Start a task to run the CHIP Device event loop. + return PlatformMgr().StartEventLoopTask(); +} +} // namespace DeviceManager +} // namespace chip + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + chip::DeviceManager::CHIPDeviceManagerCallbacks * cb = + chip::DeviceManager::CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); + if (cb != nullptr) + { + cb->PostAttributeChangeCallback(attributePath.mEndpointId, attributePath.mClusterId, attributePath.mAttributeId, type, size, + value); + } +} + +chip::Protocols::InteractionModel::Status MatterPreAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, + uint8_t type, uint16_t size, uint8_t * value) +{ + chip::DeviceManager::CHIPDeviceManagerCallbacks * cb = + chip::DeviceManager::CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); + if (cb != nullptr) + { + return cb->PreAttributeChangeCallback(attributePath.mEndpointId, attributePath.mClusterId, attributePath.mAttributeId, type, + size, value); + } + + return chip::Protocols::InteractionModel::Status::Success; +} diff --git a/examples/pump-app/cc13x4_26x4/main/DeviceCallbacks.cpp b/examples/pump-app/cc13x4_26x4/main/DeviceCallbacks.cpp new file mode 100644 index 00000000000000..8cda813016e45e --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/DeviceCallbacks.cpp @@ -0,0 +1,211 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file DeviceCallbacks.cpp + * + * Implements all the callbacks to the application from the CHIP Stack + * + **/ + +#include "DeviceCallbacks.h" +#include "AppConfig.h" +#include "PumpManager.h" + +#include +#include +#include + +using namespace chip; +using namespace chip::Inet; +using namespace chip::System; +using namespace chip::DeviceLayer; +using namespace chip::app::Clusters; + +void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) +{ + switch (event->Type) + { + case DeviceEventType::kThreadConnectivityChange: + OnThreadConnectivityChange(event); + break; + + case DeviceEventType::kInternetConnectivityChange: + OnInternetConnectivityChange(event); + break; + + case DeviceEventType::kServiceProvisioningChange: + PLAT_LOG("## Service provisioning state change (%d,%d)", event->ServiceProvisioningChange.IsServiceProvisioned, + event->ServiceProvisioningChange.ServiceConfigUpdated); + break; + + case DeviceEventType::kCHIPoBLEConnectionEstablished: + PLAT_LOG("CHIPoBLE connection established"); + break; + + case DeviceEventType::kCHIPoBLEConnectionClosed: + PLAT_LOG("CHIPoBLE disconnected"); + break; + + case DeviceEventType::kThreadStateChange: + PLAT_LOG("## Thread stack state change (%x)", event->ThreadStateChange.OpenThread.Flags); + break; + + case DeviceEventType::kCommissioningComplete: + PLAT_LOG("Commissioning complete for fabric 0x%x", event->CommissioningComplete.fabricIndex); + break; + + case DeviceEventType::kOperationalNetworkEnabled: + PLAT_LOG("## Operational network enabled"); + break; + + case DeviceEventType::kDnssdInitialized: + PLAT_LOG("## Dnssd platform initialized"); + break; + + case DeviceEventType::kFailSafeTimerExpired: + PLAT_LOG("## Failsafe timer expired..."); + break; + + case DeviceEventType::kInterfaceIpAddressChanged: + PLAT_LOG("*** Interface IP address changed ***"); + if ((event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV4_Assigned) || + (event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned)) + { + // MDNS server restart on any ip assignment: if link local ipv6 is configured, that + // will not trigger a 'internet connectivity change' as there is no internet + // connectivity. MDNS still wants to refresh its listening interfaces to include the + // newly selected address. + chip::app::DnssdServer::Instance().StartServer(); + } + break; + } +} + +chip::Protocols::InteractionModel::Status DeviceCallbacks::PreAttributeChangeCallback(chip::EndpointId endpointId, + chip::ClusterId clusterId, + chip::AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value) +{ + PLAT_LOG("PreAttributeChangeCallback - Cluster ID: '0x%04x', EndPoint ID: '0x%02x', Attribute ID: '0x%04x'", clusterId, + endpointId, attributeId); + + switch (clusterId) + { + case PumpConfigurationAndControl::Id: + break; + + case OnOff::Id: + break; + + case LevelControl::Id: + break; + + default: + PLAT_LOG("Unhandled cluster ID: %d", clusterId); + break; + } + + return chip::Protocols::InteractionModel::Status::Success; +} + +void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value) +{ + PLAT_LOG("PostAttributeChangeCallback - Cluster ID: '0x%04x', EndPoint ID: '0x%02x', Attribute ID: '0x%04x'", clusterId, + endpointId, attributeId); + + switch (clusterId) + { + case PumpConfigurationAndControl::Id: + break; + + case OnOff::Id: + OnOnOffPostAttributeChangeCallback(endpointId, attributeId, value); + break; + + case LevelControl::Id: + OnLevelControlAttributeChangeCallback(endpointId, attributeId, value); + break; + + default: + PLAT_LOG("Unhandled cluster ID: %d", clusterId); + break; + } +} + +void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event) +{ + if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established) + { + PLAT_LOG("Server ready at: %s:%d", event->InternetConnectivityChange.ipAddress, CHIP_PORT); + chip::app::DnssdServer::Instance().StartServer(); + } + else if (event->InternetConnectivityChange.IPv4 == kConnectivity_Lost) + { + PLAT_LOG("Lost IPv4 connectivity..."); + } + if (event->InternetConnectivityChange.IPv6 == kConnectivity_Established) + { + PLAT_LOG("IPv6 Server ready..."); + chip::app::DnssdServer::Instance().StartServer(); + } + else if (event->InternetConnectivityChange.IPv6 == kConnectivity_Lost) + { + PLAT_LOG("Lost IPv6 connectivity..."); + } +} + +void DeviceCallbacks::OnThreadConnectivityChange(const ChipDeviceEvent * event) +{ + if (event->ThreadConnectivityChange.Result == kConnectivity_Established) + { + PLAT_LOG("## Thread connectivity established..."); + } + else if (event->ThreadConnectivityChange.Result == kConnectivity_Lost) + { + PLAT_LOG("## Thread connectivity lost..."); + } + else if (event->ThreadConnectivityChange.Result == kConnectivity_NoChange) + { + PLAT_LOG("## No change in Thread connectivity..."); + } +} + +void DeviceCallbacks::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == OnOff::Attributes::OnOff::Id, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == 1, PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + PumpMgr().InitiateAction(0, *value ? PumpManager::START_ACTION : PumpManager::STOP_ACTION); + +exit: + return; +} + +void DeviceCallbacks::OnLevelControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == LevelControl::Attributes::CurrentLevel::Id, + PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == 1, PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + ChipLogProgress(Zcl, "[pump-app] Cluster LevelControl: attribute CurrentLevel set to %u", *value); + +exit: + return; +} diff --git a/examples/pump-app/cc13x4_26x4/main/PumpManager.cpp b/examples/pump-app/cc13x4_26x4/main/PumpManager.cpp new file mode 100644 index 00000000000000..0e7e90e27aba40 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/PumpManager.cpp @@ -0,0 +1,333 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "PumpManager.h" + +#include "AppConfig.h" +#include "AppTask.h" +#include "FreeRTOS.h" + +#define ACTUATOR_MOVEMENT_PERIOS_MS 500 + +PumpManager PumpManager::sPump; + +int PumpManager::Init() +{ + int ret = 0; + + mTimerHandle = xTimerCreate("BLT_TIMER", pdMS_TO_TICKS(ACTUATOR_MOVEMENT_PERIOS_MS), pdFALSE, this, TimerEventHandler); + if (NULL == mTimerHandle) + { + PLAT_LOG("failed to create pump timer"); + while (true) + ; + } + + mState = kState_StopCompleted; + mAutoStartTimerArmed = false; + mAutoRestart = false; + mAutoStartDuration = 0; + + return ret; +} + +void PumpManager::SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB) +{ + mActionInitiated_CB = aActionInitiated_CB; + mActionCompleted_CB = aActionCompleted_CB; +} + +bool PumpManager::IsActionInProgress() +{ + return (mState == kState_StartInitiated || mState == kState_StopInitiated); +} + +bool PumpManager::IsStopped() +{ + return (mState == kState_StopCompleted); +} + +void PumpManager::EnableAutoRestart(bool aOn) +{ + mAutoRestart = aOn; +} + +void PumpManager::SetAutoStartDuration(uint32_t aDurationInSecs) +{ + mAutoStartDuration = aDurationInSecs; +} + +bool PumpManager::InitiateAction(int32_t aActor, Action_t aAction) +{ + bool action_initiated = false; + State_t new_state; + + // Initiate Start/Stop Action only when the previous one is complete. + if (mState == kState_StartCompleted && aAction == STOP_ACTION) + { + action_initiated = true; + mCurrentActor = aActor; + new_state = kState_StopInitiated; + } + else if (mState == kState_StopCompleted && aAction == START_ACTION) + { + action_initiated = true; + mCurrentActor = aActor; + new_state = kState_StartInitiated; + } + + if (action_initiated) + { + if (mAutoStartTimerArmed && new_state == kState_StartInitiated) + { + // If auto start timer has been armed and someone initiates start, + // cancel the timer and continue as normal. + mAutoStartTimerArmed = false; + + CancelTimer(); + } + + PumpTimer(ACTUATOR_MOVEMENT_PERIOS_MS); + + // Since the timer started successfully, update the state and trigger callback + mState = new_state; + + if (mActionInitiated_CB) + { + mActionInitiated_CB(aAction, aActor); + } + } + return action_initiated; +} + +void PumpManager::PumpTimer(uint32_t aTimeoutMs) +{ + xTimerChangePeriod(mTimerHandle, pdMS_TO_TICKS(aTimeoutMs), 100); + xTimerStart(mTimerHandle, 100); +} + +void PumpManager::CancelTimer(void) +{ + xTimerStop(mTimerHandle, 100); +} + +void PumpManager::TimerEventHandler(TimerHandle_t aTimer) +{ + PumpManager * pump = static_cast(pvTimerGetTimerID(aTimer)); + + // The timer event handler will be called in the context of the timer task + // once sPumpTimer expires. Post an event to apptask queue with the actual handler + // so that the event can be handled in the context of the apptask. + AppEvent event; + event.Type = AppEvent::kEventType_AppEvent; + event.PumpStateEvent.Context = static_cast(pump); + if (pump->mAutoStartTimerArmed) + { + event.Handler = AutoRestartTimerEventHandler; + } + else + { + event.Handler = ActuatorMovementTimerEventHandler; + } + GetAppTask().PostEvent(&event); +} + +void PumpManager::AutoRestartTimerEventHandler(AppEvent * aEvent) +{ + PumpManager * pump = static_cast(aEvent->PumpStateEvent.Context); + int32_t actor = 0; + + // Make sure auto start timer is still armed. + if (!pump->mAutoStartTimerArmed) + { + return; + } + + pump->mAutoStartTimerArmed = false; + + PLAT_LOG("Auto Re-Start has been triggered!"); + + pump->InitiateAction(actor, START_ACTION); +} + +void PumpManager::ActuatorMovementTimerEventHandler(AppEvent * aEvent) +{ + Action_t actionCompleted = INVALID_ACTION; + + PumpManager * pump = static_cast(aEvent->PumpStateEvent.Context); + + if (pump->mState == kState_StartInitiated) + { + pump->mState = kState_StartCompleted; + actionCompleted = START_ACTION; + } + else if (pump->mState == kState_StopInitiated) + { + pump->mState = kState_StopCompleted; + actionCompleted = STOP_ACTION; + } + + if (actionCompleted != INVALID_ACTION) + { + if (pump->mActionCompleted_CB) + { + pump->mActionCompleted_CB(actionCompleted, pump->mCurrentActor); + } + + if (pump->mAutoRestart && actionCompleted == STOP_ACTION) + { + // Start the timer for auto restart + pump->PumpTimer(pump->mAutoStartDuration * 1000); + + pump->mAutoStartTimerArmed = true; + + PLAT_LOG("Auto Re-start enabled. Will be triggered in %u seconds", pump->mAutoStartDuration); + } + } +} + +int16_t PumpManager::GetMaxPressure() +{ + // 1.6.1. MaxPressure Attribute + // Range -3276.7 kPa to 3276.7 kPa (steps of 0.1 kPa) + // -3276.8 is invalid value - perhaps 'null' + + // Return 2000.0 kPa as Max Pressure + return 20000; +} + +uint16_t PumpManager::GetMaxSpeed() +{ + // 1.6.2. MaxSpeed Attribute + // Range 0 RPM to 65534 RPM (steps of 1 RPM) + // 65535 is invalid value - perhaps 'null' + + // Return 1000 RPM as MaxSpeed + return 1000; +} + +uint16_t PumpManager::GetMaxFlow() +{ + // 1.6.3. MaxFlow Attribute + // Range 0 m3/h to 6553.4 m3/h (steps of 0.1 m3/h) + // 6553.5 m3/h is invalid value - perhaps 'null' + + // Return 200.0 m3/h as MaxFlow + return 2000; +} + +int16_t PumpManager::GetMinConstPressure() +{ + // 1.6.4. MinConstPressure Attribute + // Range -3276.7 kPa to 3276.7 kPa (steps of 0.1 kPa) + // -3276.8 is invalid value - perhaps 'null' + + // Return -100.0 kPa as MinConstPressure + return -1000; +} + +int16_t PumpManager::GetMaxConstPressure() +{ + // 1.6.5. MaxConstPressure Attribute + // Range -3276.7 kPa to 3276.7 kPa (steps of 0.1 kPa) + // -3276.8 is invalid value - perhaps 'null' + + // Return 100.0 kPa as MaxConstPressure + return 1000; +} + +int16_t PumpManager::GetMinCompPressure() +{ + // 1.6.6. MinCompPressure Attribute + // Range -3276.7 kPa to 3276.7 kPa (steps of 0.1 kPa) + // -3276.8 is invalid value - perhaps 'null' + + // Return -20.0 kPa as MinCompPressure + return -200; +} + +int16_t PumpManager::GetMaxCompPressure() +{ + // 1.6.7. MaxCompPressure Attribute + // Range -3276.7 kPa to 3276.7 kPa (steps of 0.1 kPa) + // -3276.8 is invalid value - perhaps 'null' + + // Return 20.0 kPa as MaxCompPressure + return 200; +} + +uint16_t PumpManager::GetMinConstSpeed() +{ + // 1.6.8. MinConstSpeed Attribute + // Range 0 to 65534 RPM (steps of 1 RPM) + // 65535 RPM is invalid valud - perhaps 'null' + + // Return 200 RPM as MinConstSpeed + return 200; +} + +uint16_t PumpManager::GetMaxConstSpeed() +{ + // 1.6.9. MaxConstSpeed Attribute + // Range 0 to 65534 RPM (steps of 1 RPM) + // 65535 RPM is invalid valud - perhaps 'null' + + // Return 2000 RPM as MaxConstSpeed + return 2000; +} + +uint16_t PumpManager::GetMinConstFlow() +{ + // 1.6.10. MinConstFlow Attribute + // Range 0 m3/h to 6553.4 m3/h (steps of 0.1 m3/h) + // 6553.5 m3/h is invalid value - perhaps 'null' + + // Return 12.5 m3/h as MinConstFlow + return 125; +} + +uint16_t PumpManager::GetMaxConstFlow() +{ + // 1.6.11. MaxConstFlow Attribute + // Range 0 m3/h to 6553.4 m3/h (steps of 0.1 m3/h) + // 6553.5 m3/h is invalid value - perhaps 'null' + + // Return 655.7 m3/h as MaxConstFlow + return 6557; +} + +int16_t PumpManager::GetMinConstTemp() +{ + // 1.6.12. MinConstTemp Attribute + // Range -273.15 C to 327.67 C (steps of 0.01 C) + // All other values are invalid values - perhaps 'null' + + // Return 30.00 C as MinConstTemp + return 3000; +} + +int16_t PumpManager::GetMaxConstTemp() +{ + // 1.6.13. MaxConstTemp Attribute + // Range -273.15 C to 327.67 C (steps of 0.01 C) + // All other values are invalid values - perhaps 'null' + + // Return 56.00 C as MaxConstTemp + return 5600; +} diff --git a/examples/pump-app/cc13x4_26x4/main/ZclCallbacks.cpp b/examples/pump-app/cc13x4_26x4/main/ZclCallbacks.cpp new file mode 100644 index 00000000000000..54faa0db6e7314 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/ZclCallbacks.cpp @@ -0,0 +1,55 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "AppConfig.h" +#include "AppTask.h" +#include "PumpManager.h" + +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::app::Clusters; + +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. + * + */ +void emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + GetAppTask().InitOnOffClusterState(); +} + +void emberAfPumpConfigurationAndControlClusterInitCallback(chip::EndpointId endpoint) +{ + GetAppTask().InitPCCClusterState(); +} diff --git a/examples/pump-app/cc13x4_26x4/main/include/AppConfig.h b/examples/pump-app/cc13x4_26x4/main/include/AppConfig.h new file mode 100644 index 00000000000000..b925344ddb4c9a --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/AppConfig.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_CONFIG_H +#define APP_CONFIG_H + +// Logging +#ifdef __cplusplus +extern "C" { +#endif + +int cc13xx_26xxLogInit(void); +void cc13xx_26xxLog(const char * aFormat, ...); +#define PLAT_LOG(...) cc13xx_26xxLog(__VA_ARGS__); + +#ifdef __cplusplus +} +#endif +#endif // APP_CONFIG_H diff --git a/examples/pump-app/cc13x4_26x4/main/include/AppEvent.h b/examples/pump-app/cc13x4_26x4/main/include/AppEvent.h new file mode 100644 index 00000000000000..3a9c606e95c330 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/AppEvent.h @@ -0,0 +1,63 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_EVENT_H +#define APP_EVENT_H + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventType + { + kEventType_None = 0, + kEventType_ButtonLeft, + kEventType_ButtonRight, + kEventType_AppEvent, + kEventType_IdentifyStart, + kEventType_IdentifyStop, + }; + + enum AppEventButtonType + { + kAppEventButtonType_None = 0, + kAppEventButtonType_Clicked, + kAppEventButtonType_LongClicked, + kAppEventButtonType_LongPressed, + }; + + enum AppEventType Type; + + union + { + struct + { + enum AppEventButtonType Type; + } ButtonEvent; + + struct + { + void * Context; + } PumpStateEvent; + }; + + EventHandler Handler; +}; + +#endif // APP_EVENT_H diff --git a/examples/pump-app/cc13x4_26x4/main/include/AppTask.h b/examples/pump-app/cc13x4_26x4/main/include/AppTask.h new file mode 100644 index 00000000000000..7fd3f38ff6f0d5 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/AppTask.h @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_TASK_H +#define APP_TASK_H + +#include +#include + +#include "FreeRTOS.h" +#include "semphr.h" +#include "task.h" + +#include "AppEvent.h" +#include "PumpManager.h" + +#include + +struct Identify; + +class AppTask +{ +public: + int StartAppTask(); + static void AppTaskMain(void * pvParameter); + + void PostStartActionRequest(int32_t aActor, PumpManager::Action_t aAction); + void PostEvent(const AppEvent * event); + void UpdateClusterState(); + void InitOnOffClusterState(); + void InitPCCClusterState(); + + static void IdentifyStartHandler(::Identify *); + static void IdentifyStopHandler(::Identify *); + static void TriggerIdentifyEffectHandler(::Identify * identify); + +private: + friend AppTask & GetAppTask(void); + + int Init(); + + static void ActionInitiated(PumpManager::Action_t aAction, int32_t aActor); + static void ActionCompleted(PumpManager::Action_t aAction, int32_t aActor); + + static void UpdateCluster(intptr_t context); + + void DispatchEvent(AppEvent * event); + + static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); + static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); + static void TimerEventHandler(void * p_context); + static void PostEvents(intptr_t context); + + enum Function_t + { + kFunction_NoneSelected = 0, + kFunction_SoftwareUpdate = 0, + kFunction_FactoryReset, + + kFunction_Invalid + } Function; + + Function_t mFunction; + bool mFunctionTimerActive; + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} + +#endif // APP_TASK_H diff --git a/examples/pump-app/cc13x4_26x4/main/include/CHIPDeviceManager.h b/examples/pump-app/cc13x4_26x4/main/include/CHIPDeviceManager.h new file mode 100644 index 00000000000000..01703fe335b6af --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/CHIPDeviceManager.h @@ -0,0 +1,144 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file contains definitions for the CHIP DeviceManager Interface + * + * This object will co-ordinate multiple activities such as + * initialisation, rendezvous, session mgmt and other such + * activities within the CHIP stack. This is a singleton object. + */ + +#pragma once + +#include +#include +#include + +#include + +#include +#include + +#include + +namespace chip { +namespace DeviceManager { + +/** + * @brief + * This class provides a skeleton for all the callback functions. The functions will be + * called by other objects within the CHIP stack for specific events. + * Applications interested in receiving specific callbacks can specialize this class and handle + * these events in their implementation of this class. + */ +class DLL_EXPORT CHIPDeviceManagerCallbacks +{ +public: + /** + * @brief + * Called when CHIP Device events (PublicEventTypes) are triggered. + * + * @param event ChipDeviceEvent that occurred + * @param arg arguments specific to the event, if any + */ + virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); + /** + * @brief + * Called after an attribute has been changed + * + * @param endpoint endpoint id + * @param clusterID cluster id + * @param attributeId attribute id that was changed + * @param mask mask of the attribute + * @param manufacturerCode manufacturer code + * @param type attribute type + * @param size size of the attribute + * @param value pointer to the new value + */ + virtual void PostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t type, uint16_t size, uint8_t * value) + {} + /** + * @brief + * Called just before an attribute will be changed + * + * @param endpoint endpoint id + * @param clusterID cluster id + * @param attributeId attribute id that was changed + * @param mask mask of the attribute + * @param manufacturerCode manufacturer code + * @param type attribute type + * @param size size of the attribute + * @param value pointer to the new value + * + * @return Success if the attribute can be changed, otherwise Failed. + */ + virtual chip::Protocols::InteractionModel::Status PreAttributeChangeCallback(chip::EndpointId endpoint, + chip::ClusterId clusterId, + chip::AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value) + { + return chip::Protocols::InteractionModel::Status::Success; + } + virtual ~CHIPDeviceManagerCallbacks() {} +}; + +/** + * @brief + * A common class that drives other components of the CHIP stack + */ +class DLL_EXPORT CHIPDeviceManager +{ +public: + CHIPDeviceManager(const CHIPDeviceManager &) = delete; + CHIPDeviceManager(const CHIPDeviceManager &&) = delete; + CHIPDeviceManager & operator=(const CHIPDeviceManager &) = delete; + + static CHIPDeviceManager & GetInstance() + { + static CHIPDeviceManager instance; + return instance; + } + + /** + * @brief + * Initialise CHIPDeviceManager + * + * @param cb Application's instance of the CHIPDeviceManagerCallbacks for consuming events + */ + CHIP_ERROR Init(CHIPDeviceManagerCallbacks * cb); + /** + * @brief + * Fetch a pointer to the registered CHIPDeviceManagerCallbacks object. + * + */ + CHIPDeviceManagerCallbacks * GetCHIPDeviceManagerCallbacks() { return mCB; } + + /** + * Use internally for registration of the ChipDeviceEvents + */ + static void CommonDeviceEventHandler(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); + +private: + CHIPDeviceManagerCallbacks * mCB = nullptr; + CHIPDeviceManager() {} +}; + +} // namespace DeviceManager +} // namespace chip diff --git a/examples/pump-app/cc13x4_26x4/main/include/CHIPProjectConfig.h b/examples/pump-app/cc13x4_26x4/main/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..49a0e036a33181 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/CHIPProjectConfig.h @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#ifndef CHIP_PROJECT_CONFIG_H +#define CHIP_PROJECT_CONFIG_H + +// Security and Authentication always enabled +#define CHIP_CONFIG_SECURITY_TEST_MODE 0 + +#if BUILD_RELEASE // release build +// Note: Default Pairing/PIN/Serial Numbers being used. These should not be enabled for production builds +#endif // BUILD_RELEASE + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 + +/** + * Values set by args.gni: + * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID + * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + */ + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for CHIP-over-BLE (CHIPOBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC + * + * Enables synchronizing the device's real time clock with a remote CHIP Time service + * using the CHIP Time Sync protocol. + */ +// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1 + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) + +#define MATTER_CC13XX_26XX_PLATFORM_LOG_ENABLED 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT + * + * Enable the OpenThread SRP client to allow for CHIP device discovery. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 + +/** + * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE + * + * For a development build, set the default importance of events to be logged as Debug. + * Since debug is the lowest importance level, this means all standard, critical, info and + * debug importance level vi events get logged. + */ +#if BUILD_RELEASE +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production +#else +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug +#endif // BUILD_RELEASE + +#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 + +/** + * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER + * + * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. + * + * TODO: (#17080) 1 should be OK since almost all commands are synchronous, should be some larger number after we resolved the issue + * of the large memory footprint of ReadHandler. + */ +#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 1 + +/** + * @def CHIP_IM_MAX_NUM_WRITE_HANDLER + * + * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. + * + * TODO: (#17080) 1 should be OK since most write requests can be synchronous (not chunked), should be some larger number after we + * resolved the issue of the large memory footprint of ReadHandler. + */ +#define CHIP_IM_MAX_NUM_WRITE_HANDLER 1 + +#endif // CHIP_PROJECT_CONFIG_H diff --git a/examples/pump-app/cc13x4_26x4/main/include/DeviceCallbacks.h b/examples/pump-app/cc13x4_26x4/main/include/DeviceCallbacks.h new file mode 100644 index 00000000000000..7e2633b54bb9db --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/DeviceCallbacks.h @@ -0,0 +1,49 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file DeviceCallbacks.h + * + * Implementations for the DeviceManager callbacks for this application + * + **/ + +#pragma once + +#include "CHIPDeviceManager.h" +#include +#include + +class DeviceCallbacks : public chip::DeviceManager::CHIPDeviceManagerCallbacks +{ +public: + virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); + virtual chip::Protocols::InteractionModel::Status PreAttributeChangeCallback(chip::EndpointId endpointId, + chip::ClusterId clusterId, + chip::AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value); + virtual void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t type, uint16_t size, uint8_t * value); + +private: + void OnInternetConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); + void OnThreadConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnLevelControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); +}; diff --git a/examples/pump-app/cc13x4_26x4/main/include/OpenThreadConfig.h b/examples/pump-app/cc13x4_26x4/main/include/OpenThreadConfig.h new file mode 100644 index 00000000000000..7d227258b1eaae --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/OpenThreadConfig.h @@ -0,0 +1,29 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Overrides to default OpenThread configuration. + * + */ + +#pragma once + +// Use the TI-supplied default platform configuration for remainder +#include "openthread-core-cc13x4_26x4-config.h" diff --git a/examples/pump-app/cc13x4_26x4/main/include/PumpManager.h b/examples/pump-app/cc13x4_26x4/main/include/PumpManager.h new file mode 100644 index 00000000000000..ea742c22acb765 --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/include/PumpManager.h @@ -0,0 +1,102 @@ +/* + * + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef PUMP_MANAGER_H +#define PUMP_MANAGER_H + +#include +#include + +#include "AppEvent.h" + +#include +#include + +class PumpManager +{ +public: + enum Action_t + { + START_ACTION = 0, + STOP_ACTION, + + INVALID_ACTION + } Action; + + enum State_t + { + kState_StartInitiated = 0, + kState_StartCompleted, + kState_StopInitiated, + kState_StopCompleted, + } State; + + int Init(); + bool IsStopped(); + void EnableAutoRestart(bool aOn); + void SetAutoStartDuration(uint32_t aDurationInSecs); + bool IsActionInProgress(); + bool InitiateAction(int32_t aActor, Action_t aAction); + + int16_t GetMaxPressure(); + uint16_t GetMaxSpeed(); + uint16_t GetMaxFlow(); + int16_t GetMinConstPressure(); + int16_t GetMaxConstPressure(); + int16_t GetMinCompPressure(); + int16_t GetMaxCompPressure(); + uint16_t GetMinConstSpeed(); + uint16_t GetMaxConstSpeed(); + uint16_t GetMinConstFlow(); + uint16_t GetMaxConstFlow(); + int16_t GetMinConstTemp(); + int16_t GetMaxConstTemp(); + + typedef void (*Callback_fn_initiated)(Action_t, int32_t aActor); + typedef void (*Callback_fn_completed)(Action_t, int32_t aActor); + void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + +private: + friend PumpManager & PumpMgr(void); + State_t mState; + + Callback_fn_initiated mActionInitiated_CB; + Callback_fn_completed mActionCompleted_CB; + + bool mAutoRestart; + uint32_t mAutoStartDuration; + bool mAutoStartTimerArmed; + TimerHandle_t mTimerHandle; + int32_t mCurrentActor; + + void CancelTimer(void); + void PumpTimer(uint32_t aTimeoutMs); + + static void TimerEventHandler(TimerHandle_t aTimer); + static void AutoRestartTimerEventHandler(AppEvent * aEvent); + static void ActuatorMovementTimerEventHandler(AppEvent * aEvent); + + static PumpManager sPump; +}; + +inline PumpManager & PumpMgr(void) +{ + return PumpManager::sPump; +} + +#endif // PUMP_MANAGER_H diff --git a/examples/pump-app/cc13x4_26x4/main/main.cpp b/examples/pump-app/cc13x4_26x4/main/main.cpp new file mode 100644 index 00000000000000..ba98379ecc741a --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/main/main.cpp @@ -0,0 +1,104 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include +#include + +#include + +/* Driver Header files */ +#include +#include +#include + +#include +#include +#include +#include + +#include +#define TOTAL_ICALL_HEAP_SIZE (0xC700) + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; +uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationStackOverflowHook(void) +{ + while (true) + { + ; + } +} + +/* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ +extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +extern "C" void vQueueUnregisterQueueWrapper(QueueHandle_t xQueue) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + Board_init(); + bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); + + GPIO_init(); + + NVS_init(); + + ECDH_init(); + + ECDSA_init(); + + AESECB_init(); + + SHA2_init(); + + int ret = GetAppTask().StartAppTask(); + if (ret != 0) + { + // can't log until the kernel is started + // PLAT_LOG("GetAppTask().StartAppTask() failed"); + while (true) + ; + } + + vTaskStartScheduler(); + + // Should never get here. + while (true) + ; +} diff --git a/examples/pump-app/cc13x4_26x4/third_party/connectedhomeip b/examples/pump-app/cc13x4_26x4/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/pump-app/cc13x4_26x4/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/pump-controller-app/cc13x2x7_26x2x7/README.md b/examples/pump-controller-app/cc13x2x7_26x2x7/README.md index 5b17d395da1b47..90df4c9c7bd521 100644 --- a/examples/pump-controller-app/cc13x2x7_26x2x7/README.md +++ b/examples/pump-controller-app/cc13x2x7_26x2x7/README.md @@ -1,33 +1,29 @@ -# Matter CC1352 CC2652 Pump Controller Example Application +# Matter Pump Controller Example Application An example application showing the use of [Matter][matter] on the Texas Instruments CC13XX_26XX family of Wireless MCUs. --- -- [Matter CC1352 CC2652 Pump Controller Example Application](#matter-cc1352-cc2652-pump-controller-example-application) +- [Matter Pump Controller Example Application](#matter-pump-controller-example-application) - [Introduction](#introduction) - [Device UI](#device-ui) - [Building](#building) - [Preparation](#preparation) - [Compilation](#compilation) - [Programming](#programming) - - [UniFlash](#uniflash) - [Code Composer Studio](#code-composer-studio) - - [Viewing Logging Output](#viewing-logging-output) + - [UniFlash](#uniflash) - [Running the Example](#running-the-example) - [Provisioning](#provisioning) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - - [Matter Remote Commands](#matter-remote-commands) - [TI Support](#ti-support) --- ## Introduction -![CC1352R1_LAUNCHXL](doc/images/cc1352r1_launchxl.jpg) - The CC13XX_26XX pump controller example application provides a working demonstration of a connected pump controller device. This uses the open-source Matter implementation and the Texas Instruments SimpleLink™ CC13XX and CC26XX @@ -41,20 +37,14 @@ Instruments devices. ## Device UI -This example application has a simple User Interface to depict the state of the -pump and to control the state. The user LEDs on the LaunchPad are set on when -the pump is started, and are set off when stopped. The LEDs will flash when in -the transition state between started and stopped. - -Short presses (less than 1000ms) of the right user button (`BTN-2`) are used for -toggling the pump state. - -Short presses (less than 1000ms) of the left user button (`BTN-1`) are used for -toggling Matter BLE advertisements. - -Long presses (greater than 5000ms) of the left user button (`BTN-1`) will -initiate a factory reset of the device clearing all stored provisioning -information to allow for a new network setup. +| Action | Functionality | +| ------------------------------------------------ | -------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Left Button (`BTN-1`) Press (more than 5000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Toggle pump state | +| Red & Green LED Blinking State | Pump transition from either Start/Stop | +| Red & LED On State | Pump is started | +| Red & Green LED Off State | Pump stopped | ## Building @@ -64,15 +54,14 @@ Some initial setup is necessary for preparing the build environment. This section will need to be done when migrating to new versions of the SDK. This guide assumes that the environment is linux based, and recommends Ubuntu 20.04. -- Download and install [SysConfig][sysconfig] ([recommended - version][sysconfig_recommended]). This can be done simply with the following - commands. +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. ``` $ cd ~ - $ wget https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run - $ chmod +x sysconfig-1.11.0_2225-setup.run - $ ./sysconfig-1.11.0_2225-setup.run + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run ``` - Run the bootstrap script to setup the build environment. @@ -99,32 +88,95 @@ Ninja to build the executable. - Run the build to produce a default executable. By default on Linux both the TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's home directory, and you must provide the absolute path to them. For example - `/home/username/ti/sysconfig_1.11.0`. On Windows the default directory is + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is `C:\ti`. Take note of this install path, as it will be used in the next step. ``` $ cd ~/connectedhomeip/examples/pump-controller-app/cc13x2x7_26x2x7 - $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.11.0\"" + OR + $ cd ~/connectedhomeip/examples/pump-controller-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" $ ninja -C out/debug ``` + If you would like to define arguments on the command line you may add them + to the GN call. + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X2_26X2_ATTESTATION_CREDENTIALS=1\"]" + ``` + ## Programming Loading the built image onto a LaunchPad is supported through two methods; Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. Code Composer Studio can be used to load the image and debug the source code. +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + ### UniFlash -[Programming UniFlash](doc/programming-uniflash.md) +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. -### Code Composer Studio +Download and install [UniFlash][uniflash]. -[Programming and Debugging with CCS](doc/programming-ccs.md) +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. -## Viewing Logging Output +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Running the Example By default the log output will be sent to the Application/User UART. Open a terminal emulator to that port to see the output with the following options: @@ -140,68 +192,105 @@ terminal emulator to that port to see the output with the following options: ## Running the Example Once a device has been flashed with this example, it can now join and operate in -an existing Thread network. The following sections assume that a Thread network +an existing Matter network. The following sections assume that a Matter network is already active, and has at least one [OpenThread Border Router][ot_border_router_setup]. -### Provisioning +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. -The first step to bring the Matter device onto the network is to provision it. -Our example accomplishes this with Bluetooth Low Energy (BLE) and the -[CHIPTool](../../../examples/android/CHIPTool/README.md) mobile app. +The steps below should be followed to commission the device onto the network and +control it once it has been commissioned. -#### Bluetooth LE Advertising +**Step 0** -To provision this example onto a Thread network, the device must be discoverable -over Bluetooth LE. BLE advertising is started by pressing the right button (less -than 1000ms), labeled `BTN-2` on the silkscreen. Once the device is fully -provisioned, BLE advertising will stop. +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. -#### Bluetooth LE Rendezvous +**Step 1** + +Commission the device onto the Matter network. Run the following command on the +CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-1`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` -In this example, the provisioning procedure (called Rendezvous) is done over -Bluetooth LE between a Matter device (pump-controller-app) and the Matter -controller (CHIPTool), where the controller has the commissioner role. +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' -To start the rendezvous, the controller must get the commissioning information -from the Matter device. +``` -This is done by scanning a QR code. A URL will be displayed on the pump-app's -log ([UART terminal](#viewing-logging-output)). It will look like the following: +An accompanying message will be seen from the device: ``` -SetupQRCode: [MT:.81TM -00 0C9SS0] -Copy/paste the below URL in a browser to see the QR Code: -https://project-chip.github.io/connectedhomeip/qrcode.html?data=CH%3A.81TM%20-00%200C9SS0 + +Commissioning complete, notify platform driver to persist network credentials. + ``` -You can directly navigate to the webpage URL displayed (which has QR payload -pre-loaded). Alternatively, you can navigate to [the QR code -generator][qr_code_generator] and enter in the payload shown in `SetupQRCode` -(in this case `MT:.81TM -00 0C9SS0`). +**Step 2** Read generic vendor name from Basic cluster -### Matter Remote Commands +``` +./chip-tool basic read vendor-name 1 0 +``` + +### Provisioning -Once the Matter device is provisioned and operating on the network, CHIPTool can -be used to control the device. During the provisioning process, the Matter -device would have sent one of its newly assigned IPv6 addresses to the CHIPTool. +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. + +#### Bluetooth LE Advertising + +To provision this example onto a Thread network, the device must be discoverable +over Bluetooth LE. BLE advertising is started by long pressing the right button +(greater than 1000ms), labeled `BTN-1` on the silkscreen. Once the device is +fully provisioned, BLE advertising will stop. + +#### Bluetooth LE Rendezvous -In the app, you should see an On/Off cluster; this corresponds to the pump-app. -You can now control the pump-controller-app Matter device from the smartphone! +Pairing this application with `ble-thread` can be done with any of the enabled +[CHIP Controller](../../../src/controller/README.md) applications. Use the +information printed on the console to aide in pairing the device. The controller +application can also be used to control the example app with the cluster +commands. ## TI Support For technical support, please consider creating a post on TI's [E2E forum][e2e]. Additionally, we welcome any feedback. -[matter]: https://github.com/project-chip/connectedhomeip -[cc1352r1_launchxl]: https://www.ti.com/tool/LAUNCHXL-CC1352R1 -[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide [sysconfig]: https://www.ti.com/tool/SYSCONFIG -[sysconfig_recommended]: - https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run [ti_thread_dnd]: https://www.ti.com/wireless-connectivity/thread/design-development.html -[ot_border_router_setup]: - https://openthread.io/guides/border-router/beaglebone-black -[qr_code_generator]: https://project-chip.github.io/connectedhomeip/qrcode.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/pump-controller-app/cc13x4_26x4/.gn b/examples/pump-controller-app/cc13x4_26x4/.gn new file mode 100644 index 00000000000000..3d48789e30ab3d --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/.gn @@ -0,0 +1,28 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/pump-controller-app/cc13x4_26x4/BUILD.gn b/examples/pump-controller-app/cc13x4_26x4/BUILD.gn new file mode 100644 index 00000000000000..49fc1b270c7598 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/BUILD.gn @@ -0,0 +1,118 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/openthread.gni") +import("//build_overrides/ti_simplelink_sdk.gni") + +import("${build_root}/config/defaults.gni") + +import("${chip_root}/src/platform/device.gni") + +import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") +import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") + +assert(current_os == "freertos") + +project_dir = "${chip_root}/examples/pump-controller-app/cc13x4_26x4" + +ti_simplelink_sdk("sdk") { + include_dirs = [ "${project_dir}/main/include" ] + public_configs = [ ":pump_controller_app_config" ] +} + +ti_sysconfig("sysconfig") { + sources = [ "${project_dir}/chip.syscfg" ] + + outputs = [ + "ti_devices_config.c", + "ti_radio_config.c", + "ti_radio_config.h", + "ti_drivers_config.c", + "ti_drivers_config.h", + "ti_ble_config.c", + "ti_ble_config.h", + "ti_dmm_application_policy.c", + "ti_dmm_application_policy.h", + + # disabled until upstream generation is aligned + #"tiop_config.h", + #"tiop_config.c", + + # not traditional source files + #"ti_utils_build_linker.cmd.genlibs", + #"syscfg_c.rov.xs", + #"ti_utils_runtime_model.gv", + #"ti_utils_runtime_Makefile", + #"ti_ble_app_config.opt", + #"ti_build_config.opt", + ] + + public_configs = [ ":sdk_dmm_config" ] + + cflags = [ + "-Wno-comment", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", + root_build_dir), + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + root_build_dir), + ] +} + +ti_simplelink_executable("pump_controller_app") { + output_name = "chip-${ti_simplelink_board}-pump-controller-example.out" + + sources = [ + "${project_dir}/main/AppTask.cpp", + "${project_dir}/main/PumpManager.cpp", + "${project_dir}/main/ZclCallbacks.cpp", + "${project_dir}/main/main.cpp", + ] + + deps = [ + ":sdk", + ":sysconfig", + "${chip_root}/examples/platform/cc13x4_26x4:cc13x4_26x4-attestation-credentials", + "${chip_root}/examples/pump-controller-app/pump-controller-common", + "${chip_root}/src/lib", + ] + + if (chip_openthread_ftd) { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] + } else { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + } + + include_dirs = [ + "${project_dir}", + "${project_dir}/main", + ] + + cflags = [ + "-Wno-implicit-fallthrough", + "-Wno-sign-compare", + "-Wconversion", + ] + + output_dir = root_out_dir +} + +group("cc13x4_26x4") { + deps = [ ":pump_controller_app" ] +} + +group("default") { + deps = [ ":cc13x4_26x4" ] +} diff --git a/examples/pump-controller-app/cc13x4_26x4/README.md b/examples/pump-controller-app/cc13x4_26x4/README.md new file mode 100644 index 00000000000000..dc917f93c5544e --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/README.md @@ -0,0 +1,298 @@ +# Matter Pump Controller Example Application + +An example application showing the use of [Matter][matter] on the Texas +Instruments CC13XX_26XX family of Wireless MCUs. + +--- + +- [Matter Pump Controller Example Application](#matter-pump-controller-example-application) + - [Introduction](#introduction) + - [Device UI](#device-ui) + - [Building](#building) + - [Preparation](#preparation) + - [Compilation](#compilation) + - [Programming](#programming) + - [Code Composer Studio](#code-composer-studio) + - [UniFlash](#uniflash) + - [Running the Example](#running-the-example) + - [Provisioning](#provisioning) + - [Bluetooth LE Advertising](#bluetooth-le-advertising) + - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) + - [TI Support](#ti-support) + +--- + +## Introduction + +The CC13XX_26XX pump controller example application provides a working +demonstration of a connected pump controller device. This uses the open-source +Matter implementation and the Texas Instruments SimpleLink™ CC13XX and CC26XX +software development kit. + +This example is enabled to build for CC1354P10 devices. + +The pump example is intended to serve both as a means to explore the workings of +Matter, as well as a template for creating real products based on the Texas +Instruments devices. + +## Device UI + +| Action | Functionality | +| ------------------------------------------------ | -------------------------------------- | +| Left Button (`BTN-1`) Press (less than 1000 ms) | BLE Advertisement (Enable/Disable) | +| Left Button (`BTN-1`) Press (more than 5000 ms) | Factory Reset | +| Right Button (`BTN-2`) Press (less than 1000 ms) | Toggle pump state | +| Red & Green LED Blinking State | Pump transition from either Start/Stop | +| Red & LED On State | Pump is started | +| Red & Green LED Off State | Pump stopped | + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. + + ``` + $ cd ~ + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/pump-controller-app/cc13x2x7_26x2x7 + OR + $ cd ~/connectedhomeip/examples/pump-controller-app/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" + $ ninja -C out/debug + + ``` + + If you would like to define arguments on the command line you may add them + to the GN call. + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. The flag to enable or disable the OTA +feature is determined by "chip_enable_ota_requestor" in the application's +args.gni file. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Running the Example + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Matter network. The following sections assume that a Matter network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +The steps below should be followed to commission the device onto the network and +control it once it has been commissioned. + +**Step 0** + +Set up the CHIP tool by following the instructions outlined in our [Matter +Getting Started Guide][matter-e2e-faq]. + +**Step 1** + +Commission the device onto the Matter network. Run the following command on the +CHIP tool: + +``` + +./chip-tool pairing ble-thread hex: 20202021 3840 + +``` + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. To provision this example onto a +Matter network, the device must be discoverable over Bluetooth LE. + +On the LaunchPad, press and hold the right button, labeled `BTN-1`, for more +than 1 second. Upon release, the Bluetooth LE advertising will begin. Once the +device is fully provisioned, BLE advertising will stop. + +Once the device has been successfully commissioned, you will see the following +message on the CHIP tool output: + +``` + +[1677648218.370754][39785:39790] CHIP:CTL: Received CommissioningComplete response, errorCode=0 +[1677648218.370821][39785:39790] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + +``` + +An accompanying message will be seen from the device: + +``` + +Commissioning complete, notify platform driver to persist network credentials. + +``` + +**Step 2** + +Read generic vendor name from Basic cluster + +``` +./chip-tool basic read vendor-name 1 0 +``` + +### Provisioning + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. + +#### Bluetooth LE Advertising + +To provision this example onto a Thread network, the device must be discoverable +over Bluetooth LE. BLE advertising is started by long pressing the right button +(greater than 1000ms), labeled `BTN-1` on the silkscreen. Once the device is +fully provisioned, BLE advertising will stop. + +#### Bluetooth LE Rendezvous + +Pairing this application with `ble-thread` can be done with any of the enabled +[CHIP Controller](../../../src/controller/README.md) applications. Use the +information printed on the console to aide in pairing the device. The controller +application can also be used to control the example app with the cluster +commands. + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/pump-controller-app/cc13x4_26x4/args.gni b/examples/pump-controller-app/cc13x4_26x4/args.gni new file mode 100644 index 00000000000000..39b1c91806af19 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/args.gni @@ -0,0 +1,48 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/chip.gni") +import("${chip_root}/examples/platform/cc13x4_26x4/args.gni") + +ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") +ti_simplelink_sysconfig_target = + get_label_info(":sysconfig", "label_no_toolchain") + +ti_simplelink_board = "LP_EM_CC1354P10_6" + +# Size Optimizations +# use -Os instead of -Og, LWIP release build +optimize_debug_level = "s" +lwip_debug = false + +chip_enable_ota_requestor = false + +openthread_external_platform = "${chip_root}/third_party/openthread/platforms/cc13x4_26x4:libopenthread-cc13x4_cc26x4" + +# Disable CHIP Logging +#chip_progress_logging = false +#chip_detail_logging = false +#chip_automation_logging = false + +# BLE options +chip_config_network_layer_ble = true + +# Disable lock tracking, since our FreeRTOS configuration does not set +# INCLUDE_xSemaphoreGetMutexHolder +chip_stack_lock_tracking = "none" + +matter_device_vid = "0xFFF1" +matter_device_pid = "0x8011" +matter_software_ver = "0x0001" +matter_software_ver_str = "1.0d1" diff --git a/examples/pump-controller-app/cc13x4_26x4/build_overrides b/examples/pump-controller-app/cc13x4_26x4/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/pump-controller-app/cc13x4_26x4/chip.syscfg b/examples/pump-controller-app/cc13x4_26x4/chip.syscfg new file mode 100644 index 00000000000000..e9cb55c3e22f07 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/chip.syscfg @@ -0,0 +1,242 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* Modules */ +var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); +var AESECB = scripting.addModule("/ti/drivers/AESECB"); +var Button = scripting.addModule("/ti/drivers/apps/Button"); +var LED = scripting.addModule("/ti/drivers/apps/LED"); +var NVS = scripting.addModule("/ti/drivers/NVS"); +var RF = scripting.addModule("/ti/drivers/RF"); +var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); +var RFCustom = scripting.addModule("/ti/devices/radioconfig/custom"); +var TRNG = scripting.addModule("/ti/drivers/TRNG"); +var SHA2 = scripting.addModule("/ti/drivers/SHA2"); +var UART2 = scripting.addModule("/ti/drivers/UART2"); +var ble = scripting.addModule("/ti/ble5stack/ble"); +var dmm = scripting.addModule("/ti/dmm/dmm"); +var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); +var ECDH = scripting.addModule("/ti/drivers/ECDH"); + +/* Instances */ +var AESCCM1 = AESCCM.addInstance(); +var AESECB1 = AESECB.addInstance(); +var AESECB2 = AESECB.addInstance(); +var Button1 = Button.addInstance(); +var Button2 = Button.addInstance(); +var NVS1 = NVS.addInstance(); +var NVS2 = NVS.addInstance(); +var SHA21 = SHA2.addInstance(); +var LED1 = LED.addInstance(); +var LED2 = LED.addInstance(); +var TRNG1 = TRNG.addInstance(); +var TRNG2 = TRNG.addInstance(); +var TRNG3 = TRNG.addInstance(); +var UART2 = UART2.addInstance(); +var AESCTRDRBG1 = AESCTRDRBG.addInstance(); +var ECDH1 = ECDH.addInstance(); + +AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; + +AESCCM1.$name = "CONFIG_AESCCM0"; + +AESECB1.$name = "CONFIG_AESECB0"; +AESECB2.$name = "CONFIG_AESECB_1"; + +ECDH1.$name = "CONFIG_ECDH0"; + +/* Left Button */ +Button1.$name = "CONFIG_BTN_LEFT"; +Button1.$hardware = system.deviceData.board.components["BTN-1"]; +Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; +Button1.gpioPin.pull = "Pull Up"; +Button1.gpioPin.interruptTrigger = "Falling Edge"; + +/* Left Button */ +Button2.$name = "CONFIG_BTN_RIGHT"; +Button2.$hardware = system.deviceData.board.components["BTN-2"]; +Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; +Button2.gpioPin.pull = "Pull Up"; +Button2.gpioPin.interruptTrigger = "Falling Edge"; + +/* ======== CCFG ======== */ +var CCFG = scripting.addModule("/ti/devices/CCFG"); +const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; +for(var setting in ccfgSettings) +{ + CCFG[setting] = ccfgSettings[setting]; +} + +CCFG.enableCodeGeneration = true; + + +/* NVS */ +NVS1.$name = "CONFIG_NVSINTERNAL"; +NVS1.internalFlash.regionBase = 0xFB800; +NVS1.internalFlash.regionSize = 0x2800; + + +NVS2.$name = "CONFIG_NVSEXTERNAL"; +NVS2.nvsType = "External"; // NVS Region Type +NVS2.$hardware = system.deviceData.board.components.MX25R8035F; + +/* RF */ +/* if an antenna component exists, assign it to the rf instance */ +if (system.deviceData.board && system.deviceData.board.components.RF) { + RF.$hardware = system.deviceData.board.components.RF; +} + +const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; +for(var setting in rfDesignSettings) +{ + RFDesign[setting] = rfDesignSettings[setting]; +} + + + +/* Handling for RF frontend characterization */ +if(RFDesign.rfDesign.match(/LP_CC2652PSIP/)) +{ + RFCustom.ieee = ["ieee154p10"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154p10.codeExportConfig +} +else +{ + RFCustom.ieee = ["ieee154"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154.codeExportConfig +} + +var cmdList = [ + "cmdIeeeTx", + "cmdIeeeRx", + "cmdIeeeCsma", + "cmdIeeeEdScan", + "cmdIeeeRxAck", + "cmdTxTest" +]; + +rfCodeExportConfig.useConst = true; +rfCodeExportConfig.useMulti = true; +rfCodeExportConfig.symGenMethod = "Custom"; + +const deviceId = system.deviceData.deviceId; + +// Add high PA options if present +if(deviceId.match(/CC(265[12]R|2674R|1352R1|1354R)/)) +{ + cmdList.push("cmdRadioSetup"); + rfCodeExportConfig.cmdRadioSetup = "RF_cmdIeeeRadioSetup"; +} +else if(deviceId.match(/CC(265[12]P|2674P|1352P)/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + rfCodeExportConfig.paExport = "combined"; +} +else if(deviceId.match(/CC(265[34]|1354)P/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + // currently not characterized for high PA +} +else +{ + throw new Error("Could not match platform to any known platform types"); +} + +rfCodeExportConfig.cmdList_ieee_15_4 = cmdList; + +/* Red LED */ +LED1.$name = "CONFIG_LED_RED"; +LED1.$hardware = system.deviceData.board.components.LED_RED; +LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; +LED1.gpioPin.mode = "Output"; +LED1.gpioPin.callbackFunction = ""; + +/* Green LED */ +LED2.$name = "CONFIG_LED_GREEN"; +LED2.$hardware = system.deviceData.board.components.LED_GREEN; +LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; +LED2.gpioPin.mode = "Output"; +LED2.gpioPin.callbackFunction = ""; + +/* Debug UART */ +UART2.$hardware = system.deviceData.board.components.XDS110UART; +UART2.$name = "CONFIG_UART2_DEBUG"; + +/* TRNG */ +TRNG1.$name = "CONFIG_TRNG_0"; +TRNG2.$name = "CONFIG_TRNG_THREAD"; +TRNG3.$name = "CONFIG_TRNG_APP"; + +/* BLE */ +ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; +ble.maxConnNum = 1; +ble.numOfAdvSets = 1; +ble.lockProject = true; +ble.oneLibSizeOpt = true; +ble.maxPDUSize = 255; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; +ble.connUpdateParamsPeripheral.reqMinConnInt = 30; +ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + +ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; +ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; + +ble.rfDesign = "LP_EM_CC1354P10_6"; + +ble.thorPg = 2; +/* DMM */ +dmm.project = "ti_thread_thermostat_remote_display"; +dmm.stackRoles = ["blePeripheral","threadFTD"]; +dmm.lockStackRoles = true; +dmm.numApplicationStates = 10; +dmm.applicationState0 = "ANY"; +dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; +dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; +dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; +dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; +dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; +dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; +dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; +dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; +dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; +dmm.policyArray.create(4); +dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; +dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; +dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; +dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; +dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; +dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; +dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; +dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; +dmm.policyArray[1].blePeripheral.weight = 25; +dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; +dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; +dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; +dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; +dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; +dmm.policyArray[2].threadFTD.weight = 30; +dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; +dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; +dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; +dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; +dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; +dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/pump-controller-app/cc13x4_26x4/main/AppTask.cpp b/examples/pump-controller-app/cc13x4_26x4/main/AppTask.cpp new file mode 100644 index 00000000000000..e2470d3375ab45 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/AppTask.cpp @@ -0,0 +1,461 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" +#include + +#include "FreeRTOS.h" +#include +#include + +#include + +#include +#include + +#if defined(CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR) +#include +#include +#include +#include +#include +#endif +#include +#include +#include +#include +#include + +#include + +#include +#include + +/* syscfg */ +#include + +#define APP_TASK_STACK_SIZE (4096) +#define APP_TASK_PRIORITY 4 +#define APP_EVENT_QUEUE_SIZE 10 + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; + +static TaskHandle_t sAppTaskHandle; +static QueueHandle_t sAppEventQueue; + +static LED_Handle sAppRedHandle; +static LED_Handle sAppGreenHandle; +static Button_Handle sAppLeftHandle; +static Button_Handle sAppRightHandle; + +AppTask AppTask::sAppTask; + +#if defined(CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR) +static DefaultOTARequestor sRequestorCore; +static DefaultOTARequestorStorage sRequestorStorage; +static DefaultOTARequestorDriver sRequestorUser; +static BDXDownloader sDownloader; +static OTAImageProcessorImpl sImageProcessor; + +void InitializeOTARequestor(void) +{ + // Initialize and interconnect the Requestor and Image Processor objects + SetRequestorInstance(&sRequestorCore); + + sRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + sRequestorCore.Init(chip::Server::GetInstance(), sRequestorStorage, sRequestorUser, sDownloader); + sImageProcessor.SetOTADownloader(&sDownloader); + sDownloader.SetImageProcessorDelegate(&sImageProcessor); + sRequestorUser.Init(&sRequestorCore, &sImageProcessor); +} +#endif + +static const chip::EndpointId sIdentifyEndpointId = 0; +static const uint32_t sIdentifyBlinkRateMs = 500; + +::Identify stIdentify = { sIdentifyEndpointId, AppTask::IdentifyStartHandler, AppTask::IdentifyStopHandler, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, AppTask::TriggerIdentifyEffectHandler }; + +int AppTask::StartAppTask() +{ + int ret = 0; + + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + PLAT_LOG("Failed to allocate app event queue"); + while (true) + ; + } + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != + pdPASS) + { + PLAT_LOG("Failed to create app task"); + while (true) + ; + } + return ret; +} + +int AppTask::Init() +{ + LED_Params ledParams; + Button_Params buttonParams; + + cc13xx_26xxLogInit(); + + // Init Chip memory management before the stack + chip::Platform::MemoryInit(); + + CHIP_ERROR ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().InitChipStack() failed"); + while (true) + ; + } + + ret = ThreadStackMgr().InitThreadStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().InitThreadStack() failed"); + while (true) + ; + } + + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); + while (true) + ; + } + + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); + while (true) + ; + } + + ret = ThreadStackMgrImpl().StartThreadTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().StartThreadTask() failed"); + while (true) + ; + } + + // Init ZCL Data Model and start server + PLAT_LOG("Initialize Server"); + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + chip::Server::GetInstance().Init(initParams); + + // Initialize device attestation config +#ifdef CC13X4_26X4_ATTESTATION_CREDENTIALS + SetDeviceAttestationCredentialsProvider(CC13X4_26X4::GetCC13X4_26X4DacProvider()); +#else + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#endif + + // Initialize LEDs + PLAT_LOG("Initialize LEDs"); + LED_init(); + + LED_Params_init(&ledParams); // default PWM LED + sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); + LED_setOff(sAppRedHandle); + + LED_Params_init(&ledParams); // default PWM LED + sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + LED_setOff(sAppGreenHandle); + + // Initialize buttons + PLAT_LOG("Initialize buttons"); + Button_init(); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGPRESSED; + buttonParams.longPressDuration = 5000U; // ms + sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); + Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); + Button_setCallback(sAppRightHandle, ButtonRightEventHandler); + + // Initialize Pump module + PLAT_LOG("Initialize Pump"); + PumpMgr().Init(); + + PumpMgr().SetCallbacks(ActionInitiated, ActionCompleted); + + ConfigurationMgr().LogDeviceConfig(); + +#if defined(CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR) + InitializeOTARequestor(); +#endif + + // QR code will be used with CHIP Tool + PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); + + return 0; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + + sAppTask.Init(); + + while (true) + { + /* Task pend until we have stuff to do */ + if (xQueueReceive(sAppEventQueue, &event, portMAX_DELAY) == pdTRUE) + { + sAppTask.DispatchEvent(&event); + } + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (xQueueSend(sAppEventQueue, aEvent, 0) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonLeft; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGPRESSED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongPressed; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonRight; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ActionInitiated(PumpManager::Action_t aAction, int32_t aActor) +{ + // If the action has been initiated by the pump, update the pump trait + // and start flashing the LEDs rapidly to indicate action initiation. + if (aAction == PumpManager::START_ACTION) + { + PLAT_LOG("Pump start initiated"); + ; // TODO + } + else if (aAction == PumpManager::STOP_ACTION) + { + PLAT_LOG("Stop initiated"); + ; // TODO + } + + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, 50 /* ms */, LED_BLINK_FOREVER); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppRedHandle, 110 /* ms */, LED_BLINK_FOREVER); +} + +void AppTask::ActionCompleted(PumpManager::Action_t aAction, int32_t aActor) +{ + // if the action has been completed by the pump, update the pump trait. + // Turn on the pump state LED if in a STARTED state OR + // Turn off the pump state LED if in an STOPPED state. + if (aAction == PumpManager::START_ACTION) + { + PLAT_LOG("Pump start completed"); + LED_stopBlinking(sAppGreenHandle); + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_stopBlinking(sAppRedHandle); + LED_setOn(sAppRedHandle, LED_BRIGHTNESS_MAX); + } + else if (aAction == PumpManager::STOP_ACTION) + { + PLAT_LOG("Pump stop completed"); + LED_stopBlinking(sAppGreenHandle); + LED_setOff(sAppGreenHandle); + LED_stopBlinking(sAppRedHandle); + LED_setOff(sAppRedHandle); + } + if (aActor == AppEvent::kEventType_ButtonLeft) + { + sAppTask.UpdateClusterState(); + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + switch (aEvent->Type) + { + case AppEvent::kEventType_ButtonRight: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + // Toggle Pump state + if (!PumpMgr().IsStopped()) + { + PumpMgr().InitiateAction(0, PumpManager::STOP_ACTION); + } + else + { + PumpMgr().InitiateAction(0, PumpManager::START_ACTION); + } + } + break; + + case AppEvent::kEventType_ButtonLeft: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + // Toggle BLE advertisements + if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + if (chip::Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() == CHIP_NO_ERROR) + { + PLAT_LOG("Enabled BLE Advertisement"); + } + else + { + PLAT_LOG("OpenBasicCommissioningWindow() failed"); + } + } + else + { + // Disable BLE advertisements + ConnectivityMgr().SetBLEAdvertisingEnabled(false); + PLAT_LOG("Disabled BLE Advertisements"); + } + } + else if (AppEvent::kAppEventButtonType_LongPressed == aEvent->ButtonEvent.Type) + { + chip::Server::GetInstance().ScheduleFactoryReset(); + } + break; + + case AppEvent::kEventType_IdentifyStart: + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + LED_startBlinking(sAppGreenHandle, sIdentifyBlinkRateMs, LED_BLINK_FOREVER); + PLAT_LOG("Identify started"); + break; + + case AppEvent::kEventType_IdentifyStop: + LED_stopBlinking(sAppGreenHandle); + + if (!PumpMgr().IsStopped()) + { + LED_setOn(sAppGreenHandle, LED_BRIGHTNESS_MAX); + } + else + { + LED_setOff(sAppGreenHandle); + } + PLAT_LOG("Identify stopped"); + break; + + case AppEvent::kEventType_AppEvent: + if (NULL != aEvent->Handler) + { + aEvent->Handler(aEvent); + } + break; + + case AppEvent::kEventType_None: + default: + break; + } +} + +void AppTask::UpdateClusterState() {} + +void AppTask::IdentifyStartHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStart; + sAppTask.PostEvent(&event); +} + +void AppTask::IdentifyStopHandler(::Identify *) +{ + AppEvent event; + event.Type = AppEvent::kEventType_IdentifyStop; + sAppTask.PostEvent(&event); +} + +void AppTask::TriggerIdentifyEffectHandler(::Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + PLAT_LOG("Starting blink identifier effect"); + IdentifyStartHandler(identify); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + PLAT_LOG("Breathe identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + PLAT_LOG("Okay identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + PLAT_LOG("Channel Change identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_FINISH_EFFECT: + PLAT_LOG("Finish identifier effect not implemented"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT: + PLAT_LOG("Stop identifier effect"); + IdentifyStopHandler(identify); + break; + default: + PLAT_LOG("No identifier effect"); + } +} diff --git a/examples/pump-controller-app/cc13x4_26x4/main/PumpManager.cpp b/examples/pump-controller-app/cc13x4_26x4/main/PumpManager.cpp new file mode 100644 index 00000000000000..2afc7fd7b37ded --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/PumpManager.cpp @@ -0,0 +1,204 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "PumpManager.h" + +#include "AppConfig.h" +#include "AppTask.h" +#include "FreeRTOS.h" + +#define ACTUATOR_MOVEMENT_PERIOS_MS 500 + +PumpManager PumpManager::sPump; + +int PumpManager::Init() +{ + int ret = 0; + + mTimerHandle = xTimerCreate("BLT_TIMER", pdMS_TO_TICKS(ACTUATOR_MOVEMENT_PERIOS_MS), pdFALSE, this, TimerEventHandler); + if (NULL == mTimerHandle) + { + PLAT_LOG("failed to create pump timer"); + while (true) + ; + } + + mState = kState_StopCompleted; + mAutoStartTimerArmed = false; + mAutoRestart = false; + mAutoStartDuration = 0; + + return ret; +} + +void PumpManager::SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB) +{ + mActionInitiated_CB = aActionInitiated_CB; + mActionCompleted_CB = aActionCompleted_CB; +} + +bool PumpManager::IsActionInProgress() +{ + return (mState == kState_StartInitiated || mState == kState_StopInitiated); +} + +bool PumpManager::IsStopped() +{ + return (mState == kState_StopCompleted); +} + +void PumpManager::EnableAutoRestart(bool aOn) +{ + mAutoRestart = aOn; +} + +void PumpManager::SetAutoStartDuration(uint32_t aDurationInSecs) +{ + mAutoStartDuration = aDurationInSecs; +} + +bool PumpManager::InitiateAction(int32_t aActor, Action_t aAction) +{ + bool action_initiated = false; + State_t new_state; + + // Initiate Start/Stop Action only when the previous one is complete. + if (mState == kState_StartCompleted && aAction == STOP_ACTION) + { + action_initiated = true; + + new_state = kState_StopInitiated; + } + else if (mState == kState_StopCompleted && aAction == START_ACTION) + { + action_initiated = true; + mCurrentActor = aActor; + new_state = kState_StartInitiated; + } + + if (action_initiated) + { + if (mAutoStartTimerArmed && new_state == kState_StartInitiated) + { + // If auto start timer has been armed and someone initiates start, + // cancel the timer and continue as normal. + mAutoStartTimerArmed = false; + + CancelTimer(); + } + + PumpTimer(ACTUATOR_MOVEMENT_PERIOS_MS); + + // Since the timer started successfully, update the state and trigger callback + mState = new_state; + + if (mActionInitiated_CB) + { + mActionInitiated_CB(aAction, aActor); + } + } + + return action_initiated; +} + +void PumpManager::PumpTimer(uint32_t aTimeoutMs) +{ + xTimerChangePeriod(mTimerHandle, pdMS_TO_TICKS(aTimeoutMs), 100); + xTimerStart(mTimerHandle, 100); +} + +void PumpManager::CancelTimer(void) +{ + xTimerStop(mTimerHandle, 100); +} + +void PumpManager::TimerEventHandler(TimerHandle_t aTimer) +{ + PumpManager * pump = static_cast(pvTimerGetTimerID(aTimer)); + + // The timer event handler will be called in the context of the timer task + // once sPumpTimer expires. Post an event to apptask queue with the actual handler + // so that the event can be handled in the context of the apptask. + AppEvent event; + event.Type = AppEvent::kEventType_AppEvent; + event.PumpStateEvent.Context = static_cast(pump); + if (pump->mAutoStartTimerArmed) + { + event.Handler = AutoRestartTimerEventHandler; + } + else + { + event.Handler = ActuatorMovementTimerEventHandler; + } + GetAppTask().PostEvent(&event); +} + +void PumpManager::AutoRestartTimerEventHandler(AppEvent * aEvent) +{ + PumpManager * pump = static_cast(aEvent->PumpStateEvent.Context); + int32_t actor = 0; + + // Make sure auto start timer is still armed. + if (!pump->mAutoStartTimerArmed) + { + return; + } + + pump->mAutoStartTimerArmed = false; + + PLAT_LOG("Auto Re-Start has been triggered!"); + + pump->InitiateAction(actor, START_ACTION); +} + +void PumpManager::ActuatorMovementTimerEventHandler(AppEvent * aEvent) +{ + Action_t actionCompleted = INVALID_ACTION; + + PumpManager * pump = static_cast(aEvent->PumpStateEvent.Context); + + if (pump->mState == kState_StartInitiated) + { + pump->mState = kState_StartCompleted; + actionCompleted = START_ACTION; + } + else if (pump->mState == kState_StopInitiated) + { + pump->mState = kState_StopCompleted; + actionCompleted = STOP_ACTION; + } + + if (actionCompleted != INVALID_ACTION) + { + if (pump->mActionCompleted_CB) + { + pump->mActionCompleted_CB(actionCompleted, pump->mCurrentActor); + } + + if (pump->mAutoRestart && actionCompleted == STOP_ACTION) + { + // Start the timer for auto restart + pump->PumpTimer(pump->mAutoStartDuration * 1000); + + pump->mAutoStartTimerArmed = true; + + PLAT_LOG("Auto Re-start enabled. Will be triggered in %u seconds", pump->mAutoStartDuration); + } + } +} diff --git a/examples/pump-controller-app/cc13x4_26x4/main/ZclCallbacks.cpp b/examples/pump-controller-app/cc13x4_26x4/main/ZclCallbacks.cpp new file mode 100644 index 00000000000000..e450a4b233eddb --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/ZclCallbacks.cpp @@ -0,0 +1,69 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "AppConfig.h" +#include "AppTask.h" +#include "PumpManager.h" + +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::app::Clusters; + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + if (attributePath.mClusterId == OnOff::Id && attributePath.mAttributeId == OnOff::Attributes::OnOff::Id) + { + PumpMgr().InitiateAction(0, *value ? PumpManager::START_ACTION : PumpManager::STOP_ACTION); + } + else if (attributePath.mClusterId == LevelControl::Id && + attributePath.mAttributeId == LevelControl::Attributes::CurrentLevel::Id) + { + ChipLogProgress(Zcl, "[pump-app] Cluster LevelControl: attribute CurrentLevel set to %u", *value); + } + else + { + ChipLogProgress(Zcl, "Unknown attribute ID: " ChipLogFormatMEI, ChipLogValueMEI(attributePath.mAttributeId)); + return; + } +} + +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. + * + */ +void emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + GetAppTask().UpdateClusterState(); +} diff --git a/examples/pump-controller-app/cc13x4_26x4/main/include/AppConfig.h b/examples/pump-controller-app/cc13x4_26x4/main/include/AppConfig.h new file mode 100644 index 00000000000000..7e0d1716f89144 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/include/AppConfig.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_CONFIG_H +#define APP_CONFIG_H + +// Logging +#ifdef __cplusplus +extern "C" { +#endif + +int cc13xx_26xxLogInit(void); +void cc13xx_26xxLog(const char * aFormat, ...); +#define PLAT_LOG(...) cc13xx_26xxLog(__VA_ARGS__); + +#ifdef __cplusplus +} + +#endif +#endif // APP_CONFIG_H diff --git a/examples/pump-controller-app/cc13x4_26x4/main/include/AppEvent.h b/examples/pump-controller-app/cc13x4_26x4/main/include/AppEvent.h new file mode 100644 index 00000000000000..3a9c606e95c330 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/include/AppEvent.h @@ -0,0 +1,63 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_EVENT_H +#define APP_EVENT_H + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventType + { + kEventType_None = 0, + kEventType_ButtonLeft, + kEventType_ButtonRight, + kEventType_AppEvent, + kEventType_IdentifyStart, + kEventType_IdentifyStop, + }; + + enum AppEventButtonType + { + kAppEventButtonType_None = 0, + kAppEventButtonType_Clicked, + kAppEventButtonType_LongClicked, + kAppEventButtonType_LongPressed, + }; + + enum AppEventType Type; + + union + { + struct + { + enum AppEventButtonType Type; + } ButtonEvent; + + struct + { + void * Context; + } PumpStateEvent; + }; + + EventHandler Handler; +}; + +#endif // APP_EVENT_H diff --git a/examples/pump-controller-app/cc13x4_26x4/main/include/AppTask.h b/examples/pump-controller-app/cc13x4_26x4/main/include/AppTask.h new file mode 100644 index 00000000000000..bf13d20bca6ee6 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/include/AppTask.h @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_TASK_H +#define APP_TASK_H + +#include +#include + +#include "FreeRTOS.h" +#include "semphr.h" +#include "task.h" + +#include "AppEvent.h" +#include "PumpManager.h" + +#include + +struct Identify; + +class AppTask +{ +public: + int StartAppTask(); + static void AppTaskMain(void * pvParameter); + + void PostStartActionRequest(int32_t aActor, PumpManager::Action_t aAction); + void PostEvent(const AppEvent * event); + void UpdateClusterState(); + + static void IdentifyStartHandler(::Identify *); + static void IdentifyStopHandler(::Identify *); + static void TriggerIdentifyEffectHandler(::Identify * identify); + +private: + friend AppTask & GetAppTask(void); + + int Init(); + + static void ActionInitiated(PumpManager::Action_t aAction, int32_t aActor); + static void ActionCompleted(PumpManager::Action_t aAction, int32_t aActor); + + void DispatchEvent(AppEvent * event); + + static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); + static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); + static void TimerEventHandler(void * p_context); + + enum Function_t + { + kFunction_NoneSelected = 0, + kFunction_SoftwareUpdate = 0, + kFunction_FactoryReset, + + kFunction_Invalid + } Function; + + Function_t mFunction; + bool mFunctionTimerActive; + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} + +#endif // APP_TASK_H diff --git a/examples/pump-controller-app/cc13x4_26x4/main/include/CHIPProjectConfig.h b/examples/pump-controller-app/cc13x4_26x4/main/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..2b2c3370763af8 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/include/CHIPProjectConfig.h @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#ifndef CHIP_PROJECT_CONFIG_H +#define CHIP_PROJECT_CONFIG_H + +// Security and Authentication always enabled +#define CHIP_CONFIG_SECURITY_TEST_MODE 0 + +#if BUILD_RELEASE // release build +// Note: Default Pairing/PIN/Serial Numbers being used. These should not be enabled for production builds +#endif // BUILD_RELEASE + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 + +/** + * Values set by args.gni: + * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID + * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + */ + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for CHIP-over-BLE (CHIPOBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC + * + * Enables synchronizing the device's real time clock with a remote CHIP Time service + * using the CHIP Time Sync protocol. + */ +// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1 + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) + +#define MATTER_CC13XX_26XX_PLATFORM_LOG_ENABLED 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT + * + * Enable the OpenThread SRP client to allow for CHIP device discovery. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 + +/** + * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE + * + * For a development build, set the default importance of events to be logged as Debug. + * Since debug is the lowest importance level, this means all standard, critical, info and + * debug importance level vi events get logged. + */ +#if BUILD_RELEASE +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production +#else +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug +#endif // BUILD_RELEASE + +#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 + +/** + * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER + * + * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. + */ +#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 2 + +/** + * @def CHIP_IM_MAX_NUM_WRITE_HANDLER + * + * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. + */ +#define CHIP_IM_MAX_NUM_WRITE_HANDLER 2 + +#endif // CHIP_PROJECT_CONFIG_H diff --git a/examples/pump-controller-app/cc13x4_26x4/main/include/OpenThreadConfig.h b/examples/pump-controller-app/cc13x4_26x4/main/include/OpenThreadConfig.h new file mode 100644 index 00000000000000..7d227258b1eaae --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/include/OpenThreadConfig.h @@ -0,0 +1,29 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Overrides to default OpenThread configuration. + * + */ + +#pragma once + +// Use the TI-supplied default platform configuration for remainder +#include "openthread-core-cc13x4_26x4-config.h" diff --git a/examples/pump-controller-app/cc13x4_26x4/main/include/PumpManager.h b/examples/pump-controller-app/cc13x4_26x4/main/include/PumpManager.h new file mode 100644 index 00000000000000..40a3961dd09161 --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/include/PumpManager.h @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef PUMP_MANAGER_H +#define PUMP_MANAGER_H + +#include +#include + +#include "AppEvent.h" + +#include +#include + +class PumpManager +{ +public: + enum Action_t + { + START_ACTION = 0, + STOP_ACTION, + + INVALID_ACTION + } Action; + + enum State_t + { + kState_StartInitiated = 0, + kState_StartCompleted, + kState_StopInitiated, + kState_StopCompleted, + } State; + + int Init(); + bool IsStopped(); + void EnableAutoRestart(bool aOn); + void SetAutoStartDuration(uint32_t aDurationInSecs); + bool IsActionInProgress(); + bool InitiateAction(int32_t aActor, Action_t aAction); + + typedef void (*Callback_fn_initiated)(Action_t, int32_t aActor); + typedef void (*Callback_fn_completed)(Action_t, int32_t aActor); + void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + +private: + friend PumpManager & PumpMgr(void); + State_t mState; + + Callback_fn_initiated mActionInitiated_CB; + Callback_fn_completed mActionCompleted_CB; + + bool mAutoRestart; + uint32_t mAutoStartDuration; + bool mAutoStartTimerArmed; + TimerHandle_t mTimerHandle; + int32_t mCurrentActor; + + void CancelTimer(void); + void PumpTimer(uint32_t aTimeoutMs); + + static void TimerEventHandler(TimerHandle_t aTimer); + static void AutoRestartTimerEventHandler(AppEvent * aEvent); + static void ActuatorMovementTimerEventHandler(AppEvent * aEvent); + + static PumpManager sPump; +}; + +inline PumpManager & PumpMgr(void) +{ + return PumpManager::sPump; +} + +#endif // PUMP_MANAGER_H diff --git a/examples/pump-controller-app/cc13x4_26x4/main/main.cpp b/examples/pump-controller-app/cc13x4_26x4/main/main.cpp new file mode 100644 index 00000000000000..ba98379ecc741a --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/main/main.cpp @@ -0,0 +1,104 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include +#include + +#include + +/* Driver Header files */ +#include +#include +#include + +#include +#include +#include +#include + +#include +#define TOTAL_ICALL_HEAP_SIZE (0xC700) + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; +uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationStackOverflowHook(void) +{ + while (true) + { + ; + } +} + +/* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ +extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +extern "C" void vQueueUnregisterQueueWrapper(QueueHandle_t xQueue) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + Board_init(); + bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); + + GPIO_init(); + + NVS_init(); + + ECDH_init(); + + ECDSA_init(); + + AESECB_init(); + + SHA2_init(); + + int ret = GetAppTask().StartAppTask(); + if (ret != 0) + { + // can't log until the kernel is started + // PLAT_LOG("GetAppTask().StartAppTask() failed"); + while (true) + ; + } + + vTaskStartScheduler(); + + // Should never get here. + while (true) + ; +} diff --git a/examples/pump-controller-app/cc13x4_26x4/third_party/connectedhomeip b/examples/pump-controller-app/cc13x4_26x4/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/pump-controller-app/cc13x4_26x4/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/shell/cc13x2x7_26x2x7/README.md b/examples/shell/cc13x2x7_26x2x7/README.md index 4b42e5b6ac5eea..478e3dc8821bd7 100644 --- a/examples/shell/cc13x2x7_26x2x7/README.md +++ b/examples/shell/cc13x2x7_26x2x7/README.md @@ -1,6 +1,6 @@ -# Matter CC1352 CC2652 Shell Application +# Matter Shell Application -A [chip-shell](../README.md) project on the Texas Instruments CC13X2_26X2 family +A [chip-shell](../README.md) project on the Texas Instruments CC13XX_26XX family of Wireless MCUs. ## Building @@ -11,15 +11,14 @@ Some initial setup is necessary for preparing the build environment. This section will need to be done when migrating to new versions of the SDK. This guide assumes that the environment is linux based, and recommends Ubuntu 20.04. -- Download and install [SysConfig][sysconfig] ([recommended - version][sysconfig_recommended]). This can be done simply with the following - commands. +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. ``` $ cd ~ - $ wget https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run - $ chmod +x sysconfig-1.11.0_2225-setup.run - $ ./sysconfig-1.11.0_2225-setup.run + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run ``` - Run the bootstrap script to setup the build environment. @@ -46,17 +45,27 @@ Ninja to build the executable. - Run the build to produce a default executable. By default on Linux both the TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's home directory, and you must provide the absolute path to them. For example - `/home/username/ti/sysconfig_1.11.0`. On Windows the default directory is + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is `C:\ti`. Take note of this install path, as it will be used in the next step. ``` - $ cd ~/connectedhomeip/examples/all-clusters-app/cc13x2x7_26x2x7 - $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.11.0\"" + $ cd ~/connectedhomeip/examples/shell/cc13x2x7_26x2x7 + OR + $ cd ~/connectedhomeip/examples/shell/cc13x4_26x4 + + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\"" $ ninja -C out/debug ``` + If you would like to define arguments on the command line you may add them + to the GN call. + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" + ``` + ## Programming Loading the built image onto a LaunchPad is supported through two methods; @@ -137,7 +146,7 @@ terminal emulator to that port to see the output with the following options: ## Running the Example Once a device has been flashed with this example, it can now join and operate in -an existing Thread network. The following sections assume that a Thread network +an existing Matter network. The following sections assume that a Matter network is already active, and has at least one [OpenThread Border Router][ot_border_router_setup]. @@ -152,6 +161,7 @@ For help with the shell itself, refer to the For technical support, please consider creating a post on TI's [E2E forum][e2e]. Additionally, we welcome any feedback. +[matter]: https://csa-iot.org/all-solutions/matter/ [ccs]: https://www.ti.com/tool/CCSTUDIO [ccs_after_launch]: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch @@ -161,9 +171,12 @@ Additionally, we welcome any feedback. https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch [ccs_manual_method]: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method -[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide [sysconfig]: https://www.ti.com/tool/SYSCONFIG -[sysconfig_recommended]: - https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.10.0_2163-setup.run -[ti_cc13x2_26x2_r7_matter_request]: https://ti.com/chip_sdk +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build [uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/shell/cc13x4_26x4/.gn b/examples/shell/cc13x4_26x4/.gn new file mode 100644 index 00000000000000..540d01ce0b2bfd --- /dev/null +++ b/examples/shell/cc13x4_26x4/.gn @@ -0,0 +1,28 @@ +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/shell/cc13x4_26x4/BUILD.gn b/examples/shell/cc13x4_26x4/BUILD.gn new file mode 100644 index 00000000000000..1b950f20f1d9bc --- /dev/null +++ b/examples/shell/cc13x4_26x4/BUILD.gn @@ -0,0 +1,122 @@ +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/openthread.gni") +import("//build_overrides/ti_simplelink_sdk.gni") + +import("${build_root}/config/defaults.gni") + +import("${chip_root}/src/platform/device.gni") + +import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") +import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") + +assert(current_os == "freertos") + +ti_simplelink_sdk("sdk") { + include_dirs = [ "include" ] + + defines = [] +} + +ti_sysconfig("sysconfig") { + sources = [ "chip.syscfg" ] + + outputs = [ + "ti_devices_config.c", + "ti_radio_config.c", + "ti_radio_config.h", + "ti_drivers_config.c", + "ti_drivers_config.h", + "ti_ble_config.c", + "ti_ble_config.h", + "ti_dmm_application_policy.c", + "ti_dmm_application_policy.h", + + # disabled until upstream generation is aligned + #"tiop_config.h", + #"tiop_config.c", + + # not traditional source files + #"ti_utils_build_linker.cmd.genlibs", + #"syscfg_c.rov.xs", + #"ti_utils_runtime_model.gv", + #"ti_utils_runtime_Makefile", + #"ti_ble_app_config.opt", + #"ti_build_config.opt", + ] + + public_configs = [ ":sdk_dmm_config" ] + + cflags = [ + "-Wno-comment", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", + root_build_dir), + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + root_build_dir), + ] +} + +ti_simplelink_executable("shell_app") { + output_name = "chip-${ti_simplelink_board}-shell-example.out" + + sources = [ + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", + "main/AppTask.cpp", + "main/main.cpp", + ] + + deps = [ + ":sdk", + ":sysconfig", + "${chip_root}/examples/all-clusters-app/all-clusters-common", + "${chip_root}/examples/platform/cc13x4_26x4:cc13x4_26x4-attestation-credentials", + "${chip_root}/examples/shell/shell_common:shell_common", + "${chip_root}/src/lib", + "${chip_root}/src/lib/shell:shell", + "${chip_root}/src/setup_payload", + ] + + if (chip_openthread_ftd) { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] + } else { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + } + + include_dirs = [ + "include", + "main", + "${chip_root}/examples/all-clusters-app/all-clusters-common/include", + ] + + cflags = [ + "-Wno-implicit-fallthrough", + "-Wno-sign-compare", + "-Wconversion", + ] + + output_dir = root_out_dir +} + +group("cc13x4_26x4") { + deps = [ ":shell_app" ] +} + +group("default") { + deps = [ ":cc13x4_26x4" ] +} diff --git a/examples/shell/cc13x4_26x4/README.md b/examples/shell/cc13x4_26x4/README.md new file mode 100644 index 00000000000000..9145e19f58ad07 --- /dev/null +++ b/examples/shell/cc13x4_26x4/README.md @@ -0,0 +1,183 @@ +# Matter Shell Application + +A [chip-shell](../README.md) project on the Texas Instruments CC13XX_26XX family +of Wireless MCUs. + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig]. This can be done simply with + the following commands. + + ``` + $ cd ~ + $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.15.0.2826/sysconfig-1.15.0_2826-setup.run` + $ chmod +x sysconfig-1.15.0_2826-setup.run + $ ./sysconfig-1.15.0_2826-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.15.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/shell/cc13x2x7_26x2x7 + OR + $ cd ~/connectedhomeip/examples/shell/cc13x4_26x4 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15" + $ ninja -C out/debug + + ``` + + If you would like to define arguments on the command line you may add them + to the GN call. + + ``` + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.15.0\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. For OTA enabled applications, the standalone image will instead end +with the `*-bim.hex` file extension. This this is a combined image with +application and and `BIM` included. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Running the Example + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Matter network. The following sections assume that a Matter network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +For help with the shell itself, refer to the +[shell example README](../README.md). + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://csa-iot.org/all-solutions/matter/ +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[e2e]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/shell/cc13x4_26x4/args.gni b/examples/shell/cc13x4_26x4/args.gni new file mode 100644 index 00000000000000..9f1f28f24147df --- /dev/null +++ b/examples/shell/cc13x4_26x4/args.gni @@ -0,0 +1,51 @@ +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build_overrides/chip.gni") +import("${chip_root}/examples/platform/cc13x4_26x4/args.gni") + +ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") +ti_simplelink_sysconfig_target = + get_label_info(":sysconfig", "label_no_toolchain") + +ti_simplelink_board = "LP_EM_CC1354P10_6" + +# Size Optimizations +# use -Os instead of -Og, LWIP release build +is_debug = false + +chip_enable_ota_requestor = false + +# Disable FTD Build for all-clusters app to save Flash +chip_openthread_ftd = false +openthread_external_platform = "${chip_root}/third_party/openthread/platforms/cc13x4_26x4:libopenthread-cc13x4_cc26x4" + +# Disable CHIP Logging +chip_progress_logging = false +chip_detail_logging = false +chip_automation_logging = false + +# BLE options +chip_config_network_layer_ble = true + +chip_build_libshell = true + +# Disable lock tracking, since our FreeRTOS configuration does not set +# INCLUDE_xSemaphoreGetMutexHolder +chip_stack_lock_tracking = "none" + +matter_device_vid = "0xFFF1" +matter_device_pid = "0x8006" +matter_software_ver = "0x0001" +matter_software_ver_str = "1.0d1" diff --git a/examples/shell/cc13x4_26x4/build_overrides b/examples/shell/cc13x4_26x4/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/shell/cc13x4_26x4/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/shell/cc13x4_26x4/chip.syscfg b/examples/shell/cc13x4_26x4/chip.syscfg new file mode 100644 index 00000000000000..1648cae0ac4239 --- /dev/null +++ b/examples/shell/cc13x4_26x4/chip.syscfg @@ -0,0 +1,242 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* Modules */ +var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); +var AESECB = scripting.addModule("/ti/drivers/AESECB"); +var Button = scripting.addModule("/ti/drivers/apps/Button"); +var LED = scripting.addModule("/ti/drivers/apps/LED"); +var NVS = scripting.addModule("/ti/drivers/NVS"); +var RF = scripting.addModule("/ti/drivers/RF"); +var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); +var RFCustom = scripting.addModule("/ti/devices/radioconfig/custom"); +var TRNG = scripting.addModule("/ti/drivers/TRNG"); +var SHA2 = scripting.addModule("/ti/drivers/SHA2"); +var UART2 = scripting.addModule("/ti/drivers/UART2"); +var ble = scripting.addModule("/ti/ble5stack/ble"); +var dmm = scripting.addModule("/ti/dmm/dmm"); +var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); +var ECDH = scripting.addModule("/ti/drivers/ECDH"); + +/* Instances */ +var AESCCM1 = AESCCM.addInstance(); +var AESECB1 = AESECB.addInstance(); +var AESECB2 = AESECB.addInstance(); +var Button1 = Button.addInstance(); +var Button2 = Button.addInstance(); +var NVS1 = NVS.addInstance(); +var NVS2 = NVS.addInstance(); +var SHA21 = SHA2.addInstance(); +var LED1 = LED.addInstance(); +var LED2 = LED.addInstance(); +var TRNG1 = TRNG.addInstance(); +var TRNG2 = TRNG.addInstance(); +var TRNG3 = TRNG.addInstance(); +var UART2 = UART2.addInstance(); +var AESCTRDRBG1 = AESCTRDRBG.addInstance(); +var ECDH1 = ECDH.addInstance(); + +AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; + +AESCCM1.$name = "CONFIG_AESCCM0"; + +AESECB1.$name = "CONFIG_AESECB0"; +AESECB2.$name = "CONFIG_AESECB_1"; + +ECDH1.$name = "CONFIG_ECDH0"; + +/* Left Button */ +Button1.$name = "CONFIG_BTN_LEFT"; +Button1.$hardware = system.deviceData.board.components["BTN-1"]; +Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; +Button1.gpioPin.pull = "Pull Up"; +Button1.gpioPin.interruptTrigger = "Falling Edge"; + +/* Left Button */ +Button2.$name = "CONFIG_BTN_RIGHT"; +Button2.$hardware = system.deviceData.board.components["BTN-2"]; +Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; +Button2.gpioPin.pull = "Pull Up"; +Button2.gpioPin.interruptTrigger = "Falling Edge"; + +/* ======== CCFG ======== */ +var CCFG = scripting.addModule("/ti/devices/CCFG"); +const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; +for(var setting in ccfgSettings) +{ + CCFG[setting] = ccfgSettings[setting]; +} + +CCFG.enableCodeGeneration = true; + + +/* NVS */ +NVS1.$name = "CONFIG_NVSINTERNAL"; +NVS1.internalFlash.regionBase = 0xFB800; +NVS1.internalFlash.regionSize = 0x2800; + + +NVS2.$name = "CONFIG_NVSEXTERNAL"; +NVS2.nvsType = "External"; // NVS Region Type +NVS2.$hardware = system.deviceData.board.components.MX25R8035F; + +/* RF */ +/* if an antenna component exists, assign it to the rf instance */ +if (system.deviceData.board && system.deviceData.board.components.RF) { + RF.$hardware = system.deviceData.board.components.RF; +} + +const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; +for(var setting in rfDesignSettings) +{ + RFDesign[setting] = rfDesignSettings[setting]; +} + + + +/* Handling for RF frontend characterization */ +if(RFDesign.rfDesign.match(/LP_CC2652PSIP/)) +{ + RFCustom.ieee = ["ieee154p10"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154p10.codeExportConfig +} +else +{ + RFCustom.ieee = ["ieee154"]; + var rfCodeExportConfig = RFCustom.radioConfigieee154.codeExportConfig +} + +var cmdList = [ + "cmdIeeeTx", + "cmdIeeeRx", + "cmdIeeeCsma", + "cmdIeeeEdScan", + "cmdIeeeRxAck", + "cmdTxTest" +]; + +rfCodeExportConfig.useConst = true; +rfCodeExportConfig.useMulti = true; +rfCodeExportConfig.symGenMethod = "Custom"; + +const deviceId = system.deviceData.deviceId; + +// Add high PA options if present +if(deviceId.match(/CC(265[12]R|2674R|1352R1|1354R)/)) +{ + cmdList.push("cmdRadioSetup"); + rfCodeExportConfig.cmdRadioSetup = "RF_cmdIeeeRadioSetup"; +} +else if(deviceId.match(/CC(265[12]P|2674P|1352P)/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + rfCodeExportConfig.paExport = "combined"; +} +else if(deviceId.match(/CC(265[34]|1354)P/)) +{ + cmdList.push("cmdRadioSetupPa"); + rfCodeExportConfig.cmdRadioSetupPa = "RF_cmdIeeeRadioSetup"; + // currently not characterized for high PA +} +else +{ + throw new Error("Could not match platform to any known platform types"); +} + +rfCodeExportConfig.cmdList_ieee_15_4 = cmdList; + +/* Red LED */ +LED1.$name = "CONFIG_LED_RED"; +LED1.$hardware = system.deviceData.board.components.LED_RED; +LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; +LED1.gpioPin.mode = "Output"; +LED1.gpioPin.callbackFunction = ""; + +/* Green LED */ +LED2.$name = "CONFIG_LED_GREEN"; +LED2.$hardware = system.deviceData.board.components.LED_GREEN; +LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; +LED2.gpioPin.mode = "Output"; +LED2.gpioPin.callbackFunction = ""; + +/* Debug UART */ +UART2.$hardware = system.deviceData.board.components.XDS110UART; +UART2.$name = "CONFIG_UART_STREAMER"; + +/* TRNG */ +TRNG1.$name = "CONFIG_TRNG_0"; +TRNG2.$name = "CONFIG_TRNG_THREAD"; +TRNG3.$name = "CONFIG_TRNG_APP"; + +/* BLE */ +ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; +ble.maxConnNum = 1; +ble.numOfAdvSets = 1; +ble.lockProject = true; +ble.oneLibSizeOpt = true; +ble.maxPDUSize = 255; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; +ble.connUpdateParamsPeripheral.reqMinConnInt = 30; +ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + +ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; +ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; + +ble.rfDesign = "LP_EM_CC1354P10_6"; + +ble.thorPg = 2; +/* DMM */ +dmm.project = "ti_thread_thermostat_remote_display"; +dmm.stackRoles = ["blePeripheral","threadFTD"]; +dmm.lockStackRoles = true; +dmm.numApplicationStates = 10; +dmm.applicationState0 = "ANY"; +dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; +dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; +dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; +dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; +dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; +dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; +dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; +dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; +dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; +dmm.policyArray.create(4); +dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; +dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; +dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; +dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; +dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; +dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; +dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; +dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; +dmm.policyArray[1].blePeripheral.weight = 25; +dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; +dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; +dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; +dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; +dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; +dmm.policyArray[2].threadFTD.weight = 30; +dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; +dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; +dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; +dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; +dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; +dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/shell/cc13x4_26x4/include/AppTask.h b/examples/shell/cc13x4_26x4/include/AppTask.h new file mode 100644 index 00000000000000..3fe4f972427717 --- /dev/null +++ b/examples/shell/cc13x4_26x4/include/AppTask.h @@ -0,0 +1,47 @@ +/* + * + * Copyright (c) 2022 Texas Instruments Incorporated + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +#include "FreeRTOS.h" +#include "semphr.h" +#include "task.h" + +#include + +class AppTask +{ +public: + CHIP_ERROR StartAppTask(); + static void AppTaskMain(void * pvParameter); + +private: + friend AppTask & GetAppTask(void); + + CHIP_ERROR Init(); + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} diff --git a/examples/shell/cc13x4_26x4/include/CHIPProjectConfig.h b/examples/shell/cc13x4_26x4/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..bec2bc08625272 --- /dev/null +++ b/examples/shell/cc13x4_26x4/include/CHIPProjectConfig.h @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2022 Texas Instruments Incorporated + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#pragma once + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" + +/** + * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER + * + * Enables the use of a hard-coded default serial number if none + * is found in CHIP NV storage. + */ +#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN" + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#ifndef CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 +#endif + +/** + * Values set by args.gni: + * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID + * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + */ + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for CHIP-over-BLE (CHIPOBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC + * + * Enables synchronizing the device's real time clock with a remote CHIP Time service + * using the CHIP Time Sync protocol. + */ +//#define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1 + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) + +#define MATTER_CC13XX_26XX_PLATFORM_LOG_ENABLED 0 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT + * + * Enable the OpenThread SRP client to allow for CHIP device discovery. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 + +/** + * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE + * + * For a development build, set the default importance of events to be logged as Debug. + * Since debug is the lowest importance level, this means all standard, critical, info and + * debug importance level vi events get logged. + */ +#if BUILD_RELEASE +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production +#else +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug +#endif // BUILD_RELEASE + +#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 + +/** + * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER + * + * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. + */ +#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 2 + +/** + * @def CHIP_IM_MAX_NUM_WRITE_HANDLER + * + * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. + */ +#define CHIP_IM_MAX_NUM_WRITE_HANDLER 2 diff --git a/examples/shell/cc13x4_26x4/include/OpenThreadConfig.h b/examples/shell/cc13x4_26x4/include/OpenThreadConfig.h new file mode 100644 index 00000000000000..415c1e3d45e646 --- /dev/null +++ b/examples/shell/cc13x4_26x4/include/OpenThreadConfig.h @@ -0,0 +1,28 @@ +/* + * + * Copyright (c) 2022 Texas Instruments Incorporated + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * Overrides to default OpenThread configuration. + * + */ + +#pragma once + +// Use the TI-supplied default platform configuration for remainder +#include "openthread-core-cc13x4_26x4-config.h" diff --git a/examples/shell/cc13x4_26x4/main/AppTask.cpp b/examples/shell/cc13x4_26x4/main/AppTask.cpp new file mode 100644 index 00000000000000..302f8b8baf8c96 --- /dev/null +++ b/examples/shell/cc13x4_26x4/main/AppTask.cpp @@ -0,0 +1,181 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "AppTask.h" +#include +#include + +#include "FreeRTOS.h" + +#include +#include +#include +#include +#include +#include + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +#endif +#include +#include +#include + +#include + +/* syscfg */ +#include + +#define APP_TASK_STACK_SIZE (4096) +#define APP_TASK_PRIORITY 4 + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; +using chip::Shell::Engine; + +AppTask AppTask::sAppTask; + +static TaskHandle_t sAppTaskHandle; + +// Logging +extern "C" { +int cc13xx_26xxLogInit(void); +} + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +static DefaultOTARequestor sRequestorCore; +static DefaultOTARequestorStorage sRequestorStorage; +static DefaultOTARequestorDriver sRequestorUser; +static BDXDownloader sDownloader; +static OTAImageProcessorImpl sImageProcessor; + +void InitializeOTARequestor(void) +{ + // Initialize and interconnect the Requestor and Image Processor objects + SetRequestorInstance(&sRequestorCore); + + sRequestorStorage.Init(Server::GetInstance().GetPersistentStorage()); + sRequestorCore.Init(Server::GetInstance(), sRequestorStorage, sRequestorUser, sDownloader); + sImageProcessor.SetOTADownloader(&sDownloader); + sDownloader.SetImageProcessorDelegate(&sImageProcessor); + sRequestorUser.Init(&sRequestorCore, &sImageProcessor); +} +#endif + +CHIP_ERROR AppTask::StartAppTask() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != + pdPASS) + { + while (true) + ; + } + + return err; +} + +CHIP_ERROR AppTask::Init() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + cc13xx_26xxLogInit(); + + // Init Chip memory management before the stack + Platform::MemoryInit(); + + Engine::Root().Init(); + + CHIP_ERROR ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + while (true) + ; + } + + ret = ThreadStackMgr().InitThreadStack(); + if (ret != CHIP_NO_ERROR) + { + while (true) + ; + } + +#ifdef CONFIG_OPENTHREAD_MTD_SED + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_SleepyEndDevice); +#elif CONFIG_OPENTHREAD_MTD + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#else + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); +#endif + + if (ret != CHIP_NO_ERROR) + { + while (true) + ; + } + + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + while (true) + ; + } + + ret = ThreadStackMgrImpl().StartThreadTask(); + if (ret != CHIP_NO_ERROR) + { + while (true) + ; + } + + // Init ZCL Data Model and start server + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + chip::Server::GetInstance().Init(initParams); + + // Initialize device attestation config +#ifdef CC13X4_26X4_ATTESTATION_CREDENTIALS + SetDeviceAttestationCredentialsProvider(CC13X4_26X4::GetCC13X4_26X4DacProvider()); +#else + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#endif + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + InitializeOTARequestor(); +#endif + return err; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + CHIP_ERROR err = sAppTask.Init(); + if (err != CHIP_NO_ERROR) + { + while (true) + ; + } + + Engine::Root().RunMainLoop(); +} diff --git a/examples/shell/cc13x4_26x4/main/main.cpp b/examples/shell/cc13x4_26x4/main/main.cpp new file mode 100644 index 00000000000000..93b5f9115428be --- /dev/null +++ b/examples/shell/cc13x4_26x4/main/main.cpp @@ -0,0 +1,108 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include + +#include + +/* Driver Header files */ +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#define TOTAL_ICALL_HEAP_SIZE (0xc700) + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; +uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationStackOverflowHook(void) +{ + while (true) + { + ; + } +} + +/* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ +extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +extern "C" void vQueueUnregisterQueueWrapper(QueueHandle_t xQueue) +{ + /* This function is intentionally left empty as the Queue Registry is disabled */ +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + CHIP_ERROR err; + + Board_init(); + bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); + + GPIO_init(); + + NVS_init(); + + ECDH_init(); + + ECDSA_init(); + + ECJPAKE_init(); + + AESECB_init(); + + SHA2_init(); + + err = GetAppTask().StartAppTask(); + if (err != CHIP_NO_ERROR) + { + // can't log until the kernel is started + // PLAT_LOG("GetAppTask().StartAppTask() failed"); + while (true) + ; + } + + vTaskStartScheduler(); + + // Should never get here. + while (true) + ; +} diff --git a/examples/shell/cc13x4_26x4/third_party/connectedhomeip b/examples/shell/cc13x4_26x4/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/shell/cc13x4_26x4/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/src/platform/cc13xx_26xx/Logging.cpp b/src/platform/cc13xx_26xx/Logging.cpp index b7ba49ba784dd8..b467a56909c0b0 100644 --- a/src/platform/cc13xx_26xx/Logging.cpp +++ b/src/platform/cc13xx_26xx/Logging.cpp @@ -27,7 +27,7 @@ extern "C" int cc13xx_26xxLogInit(void) // Most params can be default because we only send data, we don't receive uartParams.baudRate = 115200; - sDebugUartHandle = UART2_open(CONFIG_UART_DEBUG, &uartParams); + sDebugUartHandle = UART2_open(CONFIG_UART2_DEBUG, &uartParams); return 0; } From 86267e68edf9e7447867002b76d7c8bc7226ee28 Mon Sep 17 00:00:00 2001 From: Karl Palsson Date: Wed, 24 May 2023 15:09:34 +0000 Subject: [PATCH 11/38] tests: add missing cstdint include for gcc13 (#26792) See also 853691dfe7 Signed-off-by: Karl Palsson --- src/app/tests/suites/pics/PICSBooleanExpressionParser.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/tests/suites/pics/PICSBooleanExpressionParser.h b/src/app/tests/suites/pics/PICSBooleanExpressionParser.h index a9ecd8b36713b5..162f55df1f1582 100644 --- a/src/app/tests/suites/pics/PICSBooleanExpressionParser.h +++ b/src/app/tests/suites/pics/PICSBooleanExpressionParser.h @@ -21,6 +21,7 @@ * implements PICS condition parsing for YAML tests. */ +#include #include #include #include From bf9596758f539c628c915940086e6d0f519573ee Mon Sep 17 00:00:00 2001 From: yunhanw-google Date: Wed, 24 May 2023 09:49:55 -0700 Subject: [PATCH 12/38] Revert "Use controller exception in Java controller (#26708)" (#26799) This reverts commit e022057aea58fee7f855d8994c7f971c5ac2c875. --- .../PairOnNetworkLongImSubscribeCommand.kt | 2 +- .../jni/com/chip/casting/MatterError.java | 8 +-- src/controller/java/AndroidCallbacks.cpp | 56 ++++++++----------- .../java/AndroidClusterExceptions.cpp | 8 +-- .../java/AndroidClusterExceptions.h | 4 +- .../java/AndroidControllerExceptions.cpp | 43 -------------- .../java/AndroidControllerExceptions.h | 45 --------------- src/controller/java/BUILD.gn | 2 - .../ChipDeviceControllerException.java | 4 +- .../ResubscriptionAttemptCallback.java | 2 +- .../GetConnectedDeviceCallbackJniTest.java | 4 +- 11 files changed, 40 insertions(+), 138 deletions(-) delete mode 100644 src/controller/java/AndroidControllerExceptions.cpp delete mode 100644 src/controller/java/AndroidControllerExceptions.h diff --git a/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt b/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt index b2faca8cf92b63..c4b870da4369c9 100644 --- a/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt +++ b/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt @@ -57,7 +57,7 @@ class PairOnNetworkLongImSubscribeCommand( } private inner class InternalResubscriptionAttemptCallback : ResubscriptionAttemptCallback { - override fun onResubscriptionAttempt(terminationCause: Long, nextResubscribeIntervalMsec: Long) { + override fun onResubscriptionAttempt(terminationCause: Int, nextResubscribeIntervalMsec: Int) { logger.log(Level.INFO, "ResubscriptionAttemptCallback"); } } diff --git a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java index ac12eaccd28977..e669a7b61bc56b 100644 --- a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java +++ b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java @@ -20,15 +20,15 @@ import java.util.Objects; public class MatterError { - private long errorCode; + private int errorCode; private String errorMessage; public static final MatterError DISCOVERY_SERVICE_LOST = - new MatterError(4L, "Discovery service was lost."); + new MatterError(4, "Discovery service was lost."); public static final MatterError NO_ERROR = new MatterError(0, null); - public MatterError(long errorCode, String errorMessage) { + public MatterError(int errorCode, String errorMessage) { this.errorCode = errorCode; this.errorMessage = errorMessage; } @@ -37,7 +37,7 @@ public boolean isNoError() { return this.equals(NO_ERROR); } - public long getErrorCode() { + public int getErrorCode() { return errorCode; } diff --git a/src/controller/java/AndroidCallbacks.cpp b/src/controller/java/AndroidCallbacks.cpp index a84bd92f65fdea..d004de149235cb 100644 --- a/src/controller/java/AndroidCallbacks.cpp +++ b/src/controller/java/AndroidCallbacks.cpp @@ -16,7 +16,6 @@ */ #include "AndroidCallbacks.h" #include -#include #include #include #include @@ -106,14 +105,16 @@ void GetConnectedDeviceCallback::OnDeviceConnectionFailureFn(void * context, con JniReferences::GetInstance().FindMethod(env, javaCallback, "onConnectionFailure", "(JLjava/lang/Exception;)V", &failureMethod); VerifyOrReturn(failureMethod != nullptr, ChipLogError(Controller, "Could not find onConnectionFailure method")); - jthrowable exception; - CHIP_ERROR err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, ErrorStr(error), - error.AsInteger(), exception); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Controller, - "Unable to create AndroidControllerException on GetConnectedDeviceCallback::OnDeviceConnectionFailureFn: %s", - ErrorStr(err))); + // Create the exception to return. + jclass controllerExceptionCls; + CHIP_ERROR err = JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipDeviceControllerException", + controllerExceptionCls); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Could not find exception type for onConnectionFailure")); + JniClass controllerExceptionJniCls(controllerExceptionCls); + + jmethodID exceptionConstructor = env->GetMethodID(controllerExceptionCls, "", "(ILjava/lang/String;)V"); + jobject exception = + env->NewObject(controllerExceptionCls, exceptionConstructor, error.AsInteger(), env->NewStringUTF(ErrorStr(error))); DeviceLayer::StackUnlock unlock; env->CallVoidMethod(javaCallback, failureMethod, peerId.GetNodeId(), exception); @@ -557,12 +558,12 @@ CHIP_ERROR ReportCallback::OnResubscriptionNeeded(app::ReadClient * apReadClient jmethodID onResubscriptionAttemptMethod; ReturnLogErrorOnFailure(JniReferences::GetInstance().FindMethod( - env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(JJ)V", &onResubscriptionAttemptMethod)); + env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(II)V", &onResubscriptionAttemptMethod)); DeviceLayer::StackUnlock unlock; env->CallVoidMethod(mResubscriptionAttemptCallbackRef, onResubscriptionAttemptMethod, - static_cast(aTerminationCause.AsInteger()), - static_cast(apReadClient->ComputeTimeTillNextSubscription())); + static_cast(aTerminationCause.AsInteger()), + static_cast(apReadClient->ComputeTimeTillNextSubscription())); VerifyOrReturnError(!env->ExceptionCheck(), CHIP_JNI_ERROR_EXCEPTION_THROWN); return CHIP_NO_ERROR; } @@ -584,10 +585,8 @@ void ReportCallback::ReportError(jobject attributePath, jobject eventPath, const JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); jthrowable exception; - err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Controller, "Unable to create AndroidControllerException on ReportCallback::ReportError: %s", ErrorStr(err))); + err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod( @@ -814,12 +813,12 @@ CHIP_ERROR ReportEventCallback::OnResubscriptionNeeded(app::ReadClient * apReadC jmethodID onResubscriptionAttemptMethod; ReturnLogErrorOnFailure(JniReferences::GetInstance().FindMethod( - env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(JJ)V", &onResubscriptionAttemptMethod)); + env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(II)V", &onResubscriptionAttemptMethod)); DeviceLayer::StackUnlock unlock; env->CallVoidMethod(mResubscriptionAttemptCallbackRef, onResubscriptionAttemptMethod, - static_cast(aTerminationCause.AsInteger()), - static_cast(apReadClient->ComputeTimeTillNextSubscription())); + static_cast(aTerminationCause.AsInteger()), + static_cast(apReadClient->ComputeTimeTillNextSubscription())); return CHIP_NO_ERROR; } @@ -840,10 +839,8 @@ void ReportEventCallback::ReportError(jobject eventPath, const char * message, C JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); jthrowable exception; - err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); - VerifyOrReturn(err == CHIP_NO_ERROR, - ChipLogError(Controller, "Unable to create AndroidControllerException: %s on eportEventCallback::ReportError", - ErrorStr(err))); + err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod( @@ -946,11 +943,8 @@ void WriteAttributesCallback::ReportError(jobject attributePath, const char * me ChipLogError(Controller, "WriteAttributesCallback ReportError is called"); jthrowable exception; - err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); - VerifyOrReturn(err == CHIP_NO_ERROR, - ChipLogError(Controller, - "Unable to create AndroidControllerException on WriteAttributesCallback::ReportError: %s", - ErrorStr(err))); + err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod(env, mJavaCallbackRef, "onError", @@ -1049,10 +1043,8 @@ void InvokeCallback::ReportError(const char * message, ChipError::StorageType er ChipLogError(Controller, "InvokeCallback ReportError is called"); jthrowable exception; - err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Controller, "Unable to create AndroidControllerException: %s on InvokeCallback::ReportError", ErrorStr(err))); + err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod(env, mJavaCallbackRef, "onError", "(Ljava/lang/Exception;)V", &onErrorMethod); diff --git a/src/controller/java/AndroidClusterExceptions.cpp b/src/controller/java/AndroidClusterExceptions.cpp index 4a757588b94414..a858a4b50fe948 100644 --- a/src/controller/java/AndroidClusterExceptions.cpp +++ b/src/controller/java/AndroidClusterExceptions.cpp @@ -1,6 +1,6 @@ /* * - * Copyright (c) 2021-2023 Project CHIP Authors + * Copyright (c) 2021 Project CHIP Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,7 @@ namespace chip { -CHIP_ERROR AndroidClusterExceptions::CreateChipClusterException(JNIEnv * env, uint32_t errorCode, jthrowable & outEx) +CHIP_ERROR AndroidClusterExceptions::CreateChipClusterException(JNIEnv * env, jint errorCode, jthrowable & outEx) { CHIP_ERROR err = CHIP_NO_ERROR; jmethodID exceptionConstructor; @@ -34,10 +34,10 @@ CHIP_ERROR AndroidClusterExceptions::CreateChipClusterException(JNIEnv * env, ui VerifyOrReturnError(err == CHIP_NO_ERROR, CHIP_JNI_ERROR_TYPE_NOT_FOUND); chip::JniClass clusterExceptionJniCls(clusterExceptionCls); - exceptionConstructor = env->GetMethodID(clusterExceptionCls, "", "(J)V"); + exceptionConstructor = env->GetMethodID(clusterExceptionCls, "", "(I)V"); VerifyOrReturnError(exceptionConstructor != nullptr, CHIP_JNI_ERROR_TYPE_NOT_FOUND); - outEx = (jthrowable) env->NewObject(clusterExceptionCls, exceptionConstructor, static_cast(errorCode)); + outEx = (jthrowable) env->NewObject(clusterExceptionCls, exceptionConstructor, errorCode); VerifyOrReturnError(outEx != nullptr, CHIP_JNI_ERROR_TYPE_NOT_FOUND); return err; diff --git a/src/controller/java/AndroidClusterExceptions.h b/src/controller/java/AndroidClusterExceptions.h index e0bdd07bab51e1..51a3638d3b39d8 100644 --- a/src/controller/java/AndroidClusterExceptions.h +++ b/src/controller/java/AndroidClusterExceptions.h @@ -1,6 +1,6 @@ /* * - * Copyright (c) 2021-2023 Project CHIP Authors + * Copyright (c) 2021 Project CHIP Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ class AndroidClusterExceptions /** * Creates a Java ChipClusterException object in outEx. */ - CHIP_ERROR CreateChipClusterException(JNIEnv * env, uint32_t errorCode, jthrowable & outEx); + CHIP_ERROR CreateChipClusterException(JNIEnv * env, jint errorCode, jthrowable & outEx); /** * Creates a Java IllegalStateException in outEx. diff --git a/src/controller/java/AndroidControllerExceptions.cpp b/src/controller/java/AndroidControllerExceptions.cpp deleted file mode 100644 index 0419ad2a9bf0ee..00000000000000 --- a/src/controller/java/AndroidControllerExceptions.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "AndroidControllerExceptions.h" - -#include -#include -#include -#include - -namespace chip { - -CHIP_ERROR AndroidControllerExceptions::CreateAndroidControllerException(JNIEnv * env, const char * message, uint32_t errorCode, - jthrowable & outEx) -{ - jclass controllerExceptionCls; - CHIP_ERROR err = JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipDeviceControllerException", - controllerExceptionCls); - VerifyOrReturnError(err == CHIP_NO_ERROR, CHIP_JNI_ERROR_TYPE_NOT_FOUND); - JniClass controllerExceptionJniCls(controllerExceptionCls); - - jmethodID exceptionConstructor = env->GetMethodID(controllerExceptionCls, "", "(Jjava/lang/String;)V"); - outEx = (jthrowable) env->NewObject(controllerExceptionCls, exceptionConstructor, static_cast(errorCode), - env->NewStringUTF(message)); - VerifyOrReturnError(outEx != nullptr, CHIP_JNI_ERROR_TYPE_NOT_FOUND); - return CHIP_NO_ERROR; -} - -} // namespace chip diff --git a/src/controller/java/AndroidControllerExceptions.h b/src/controller/java/AndroidControllerExceptions.h deleted file mode 100644 index 02ed39d4bbb447..00000000000000 --- a/src/controller/java/AndroidControllerExceptions.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include - -namespace chip { -class AndroidControllerExceptions -{ -public: - AndroidControllerExceptions(const AndroidControllerExceptions &) = delete; - AndroidControllerExceptions(const AndroidControllerExceptions &&) = delete; - AndroidControllerExceptions & operator=(const AndroidControllerExceptions &) = delete; - - static AndroidControllerExceptions & GetInstance() - { - static AndroidControllerExceptions androidControllerExceptions; - return androidControllerExceptions; - } - - /** - * Creates a Java AndroidControllerException object in outEx. - */ - CHIP_ERROR CreateAndroidControllerException(JNIEnv * env, const char * message, uint32_t errorCode, jthrowable & outEx); - -private: - AndroidControllerExceptions() {} -}; -} // namespace chip diff --git a/src/controller/java/BUILD.gn b/src/controller/java/BUILD.gn index ece7ed06d2e0dd..3d982bfa925e7d 100644 --- a/src/controller/java/BUILD.gn +++ b/src/controller/java/BUILD.gn @@ -41,8 +41,6 @@ shared_library("jni") { "AndroidClusterExceptions.h", "AndroidCommissioningWindowOpener.cpp", "AndroidCommissioningWindowOpener.h", - "AndroidControllerExceptions.cpp", - "AndroidControllerExceptions.h", "AndroidCurrentFabricRemover.cpp", "AndroidCurrentFabricRemover.h", "AndroidDeviceControllerWrapper.cpp", diff --git a/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java b/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java index ec7cfb7b3318ea..2d2d583e146665 100644 --- a/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java +++ b/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java @@ -21,11 +21,11 @@ public class ChipDeviceControllerException extends RuntimeException { private static final long serialVersionUID = 1L; - public long errorCode; + public int errorCode; public ChipDeviceControllerException() {} - public ChipDeviceControllerException(long errorCode, String message) { + public ChipDeviceControllerException(int errorCode, String message) { super(message != null ? message : String.format("Error Code %d", errorCode)); this.errorCode = errorCode; } diff --git a/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java b/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java index 01c6eaab8d5df3..cf029ffa54b593 100644 --- a/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java +++ b/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java @@ -18,5 +18,5 @@ package chip.devicecontroller; public interface ResubscriptionAttemptCallback { - void onResubscriptionAttempt(long terminationCause, long nextResubscribeIntervalMsec); + void onResubscriptionAttempt(int terminationCause, int nextResubscribeIntervalMsec); } diff --git a/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java b/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java index 56494b0efc20b7..f7f981483ba27c 100644 --- a/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java +++ b/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java @@ -48,10 +48,10 @@ public void deviceConnected() { public void connectionFailure() { var callback = new FakeGetConnectedDeviceCallback(); var jniCallback = new GetConnectedDeviceCallbackJni(callback); - callbackTestUtil.onDeviceConnectionFailure(jniCallback, 100L); + callbackTestUtil.onDeviceConnectionFailure(jniCallback, 100); assertThat(callback.error).isInstanceOf(ChipDeviceControllerException.class); - assertThat(((ChipDeviceControllerException) callback.error).errorCode).isEqualTo(100L); + assertThat(((ChipDeviceControllerException) callback.error).errorCode).isEqualTo(100); } class FakeGetConnectedDeviceCallback implements GetConnectedDeviceCallback { From f9731a8105069b0caf41b56285bf487510e74bc8 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 24 May 2023 15:08:53 -0400 Subject: [PATCH 13/38] Align Access Control cluster XML with the spec. (#26773) * Align Access Control cluster XML with the spec. Spec changes happened in https://github.com/CHIP-Specifications/connectedhomeip-spec/pull/6276 Fixes https://github.com/project-chip/connectedhomeip/issues/25340 * Regenerate generated code. --- docs/guides/access-control-guide.md | 6 +- docs/guides/repl/Matter_Access_Control.ipynb | 2 +- .../all-clusters-app.matter | 4 +- .../all-clusters-minimal-app.matter | 4 +- .../bridge-common/bridge-app.matter | 8 +- ...p_rootnode_dimmablelight_bCwGYSDpoe.matter | 4 +- ...de_colortemperaturelight_hbUnzYVeyn.matter | 4 +- .../rootnode_contactsensor_lFAGG1bfRO.matter | 4 +- .../rootnode_dimmablelight_bCwGYSDpoe.matter | 4 +- .../rootnode_doorlock_aNKYAreMXE.matter | 4 +- ...tnode_extendedcolorlight_8lcaaYJVAa.matter | 4 +- .../devices/rootnode_fan_7N2TobIlOX.matter | 4 +- .../rootnode_flowsensor_1zVxHedlaV.matter | 4 +- ...tnode_heatingcoolingunit_ncdGai1E5a.matter | 4 +- .../rootnode_humiditysensor_Xyj4gda6Hb.matter | 4 +- .../rootnode_lightsensor_lZQycTFcJK.matter | 4 +- ...rootnode_occupancysensor_iHyVgifZuo.matter | 4 +- .../rootnode_onofflight_bbs1b7IaOV.matter | 4 +- ...ootnode_onofflightswitch_FsPlMr090Q.matter | 4 +- ...rootnode_onoffpluginunit_Wtf8ss5EBY.matter | 4 +- .../rootnode_pressuresensor_s0qC9wLH4k.matter | 4 +- .../rootnode_speaker_RpzeXdimqA.matter | 4 +- ...otnode_temperaturesensor_Qy1zkNW7c3.matter | 4 +- .../rootnode_thermostat_bm3fb8dhYi.matter | 4 +- .../rootnode_windowcovering_RLCxaGi9Yx.matter | 4 +- .../contact-sensor-app.matter | 4 +- .../bridge-common/bridge-app.matter | 8 +- .../light-switch-app.matter | 4 +- .../data_model/lighting-app-thread.matter | 4 +- .../data_model/lighting-app-wifi.matter | 4 +- .../lighting-common/lighting-app.matter | 4 +- .../nxp/zap/lighting-on-off.matter | 4 +- examples/lighting-app/qpg/zap/light.matter | 4 +- .../data_model/lighting-thread-app.matter | 4 +- .../efr32/data_model/lighting-wifi-app.matter | 4 +- examples/lock-app/lock-common/lock-app.matter | 4 +- examples/lock-app/nxp/zap/lock-app.matter | 4 +- examples/lock-app/qpg/zap/lock.matter | 4 +- .../log-source-common/log-source-app.matter | 4 +- .../ota-provider-app.matter | 8 +- .../ota-requestor-app.matter | 4 +- .../placeholder/linux/apps/app1/config.matter | 4 +- .../placeholder/linux/apps/app2/config.matter | 4 +- examples/pump-app/pump-common/pump-app.matter | 4 +- .../pump-controller-app.matter | 4 +- .../temperature-measurement.matter | 4 +- .../thermostat-common/thermostat.matter | 4 +- examples/tv-app/tv-common/tv-app.matter | 4 +- .../tv-casting-common/tv-casting-app.matter | 4 +- examples/window-app/common/window-app.matter | 4 +- src/app/server/AclStorage.cpp | 2 +- src/app/server/AclStorage.h | 2 +- src/app/server/DefaultAclStorage.cpp | 2 +- .../chip/access-control-cluster.xml | 4 +- .../data_model/controller-clusters.matter | 4 +- .../CHIPAttributeTLVValueDecoder.cpp | 21 +- .../CHIPEventTLVValueDecoder.cpp | 21 +- .../java/zap-generated/CHIPReadCallbacks.cpp | 19 +- .../chip/devicecontroller/ChipStructs.java | 10 +- .../python/chip/clusters/Objects.py | 6 +- .../CHIP/templates/availability.yaml | 13 + .../MTRAttributeTLVValueDecoder.mm | 4 +- .../CHIP/zap-generated/MTRBaseClusters.mm | 6 +- .../CHIP/zap-generated/MTRCallbackBridge.mm | 4 +- .../zap-generated/MTREventTLVValueDecoder.mm | 4 +- .../CHIP/zap-generated/MTRStructsObjc.h | 14 +- .../CHIP/zap-generated/MTRStructsObjc.mm | 7 +- src/python_testing/TC_ACE_1_3.py | 30 +- src/python_testing/TC_ACE_1_4.py | 24 +- src/python_testing/TC_RR_1_1.py | 26 +- .../zap-generated/cluster-objects.cpp | 4 +- .../zap-generated/cluster-objects.h | 8 +- .../cluster/ComplexArgumentParser.cpp | 14 +- .../cluster/ComplexArgumentParser.h | 4 +- .../cluster/logging/DataModelLogger.cpp | 5 +- .../cluster/logging/DataModelLogger.h | 2 +- .../chip-tool/zap-generated/test/Commands.h | 282 +++--- .../zap-generated/cluster/Commands.h | 4 +- .../zap-generated/test/Commands.h | 958 +++++++++--------- 79 files changed, 895 insertions(+), 821 deletions(-) diff --git a/docs/guides/access-control-guide.md b/docs/guides/access-control-guide.md index 6aa20e032825d5..46878ab1cfca09 100644 --- a/docs/guides/access-control-guide.md +++ b/docs/guides/access-control-guide.md @@ -552,13 +552,13 @@ await devCtrl.WriteAttribute(1, [ (0, Clusters.AccessControl.Attributes.Acl( [ authMode = Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kGroup, subjects = [ 123, 456 ], targets = [ - Clusters.AccessControl.Structs.Target( + Clusters.AccessControl.Structs.AccessControlTargetStruct( cluster = Clusters.OnOff.id, ), - Clusters.AccessControl.Structs.Target( + Clusters.AccessControl.Structs.AccessControlTargetStruct( endpoint = 1, ), - Clusters.AccessControl.Structs.Target( + Clusters.AccessControl.Structs.AccessControlTargetStruct( cluster = Clusters.LevelControl.id, endpoint = 2, ), diff --git a/docs/guides/repl/Matter_Access_Control.ipynb b/docs/guides/repl/Matter_Access_Control.ipynb index 8bc0c44a72a5ac..4d0d1853af206e 100644 --- a/docs/guides/repl/Matter_Access_Control.ipynb +++ b/docs/guides/repl/Matter_Access_Control.ipynb @@ -733,7 +733,7 @@ " fabricIndex = 1,\n", " privilege = Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kOperate,\n", " authMode = Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase,\n", - " targets = [ Clusters.AccessControl.Structs.Target(\n", + " targets = [ Clusters.AccessControl.Structs.AccessControlTargetStruct(\n", " endpoint = 1,\n", " ) ] ) )\n", "acl" 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 946139ffd745b8..efb3595a682a07 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 @@ -565,7 +565,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -575,7 +575,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index a1c11bf2222ad3..352c979fdb45d0 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -437,7 +437,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -447,7 +447,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter index d124f8ac6d96a3..42522020a4ac25 100644 --- a/examples/bridge-app/bridge-common/bridge-app.matter +++ b/examples/bridge-app/bridge-common/bridge-app.matter @@ -272,7 +272,7 @@ client cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -282,7 +282,7 @@ client cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } @@ -345,7 +345,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -355,7 +355,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter index f877b18150cb75..209fab4eed6f9f 100644 --- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -338,7 +338,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter index 95535c1230eeb7..d0c664d461632c 100644 --- a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter +++ b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter @@ -327,7 +327,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -337,7 +337,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter index 0640defe3eaa8d..c8a31a267133bb 100644 --- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter +++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter @@ -179,7 +179,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -189,7 +189,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter index 3b2901c8a7a177..34e861f1c403d0 100644 --- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -338,7 +338,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter index 97343489973995..84b311674b00da 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter @@ -179,7 +179,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -189,7 +189,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter index da48fd8620215e..bd6fb19f08d653 100644 --- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter +++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -338,7 +338,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter index 27823b667a74b2..582bd4f96ce6e8 100644 --- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter +++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter @@ -166,7 +166,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -176,7 +176,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter index 4ecf95da1ebf9b..d49c8e7f5e9563 100644 --- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter +++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter @@ -250,7 +250,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -260,7 +260,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter index 63f51e5ea5ee6a..c7497fb1c97570 100644 --- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter +++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter @@ -322,7 +322,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -332,7 +332,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter index 5d6d52e5d51ee2..b88238c22b429f 100644 --- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter +++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter @@ -250,7 +250,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -260,7 +260,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter index a1d3bd0dbb437f..4a7bfc0b5da180 100644 --- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter +++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter @@ -250,7 +250,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -260,7 +260,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter index ac8a603b1269eb..4ed6d772f53b4f 100644 --- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter +++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter @@ -250,7 +250,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -260,7 +260,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter index d60e467378e6c8..6e0ec096b149cd 100644 --- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter +++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -338,7 +338,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter index 889f6dbe0895ed..f4b22d6633e7b1 100644 --- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter +++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter @@ -291,7 +291,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -301,7 +301,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter index a2334a9ac6fd6a..8f5974a3d71e54 100644 --- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter +++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter @@ -227,7 +227,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -237,7 +237,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter index e25f30f691fbf6..b38c45a2bd3477 100644 --- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter +++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter @@ -250,7 +250,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -260,7 +260,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter index 75b4b86c9f1443..4f34fdd41dae6d 100644 --- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter +++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter @@ -322,7 +322,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -332,7 +332,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter index 38b122b44ea457..fbb9233d5d9a9f 100644 --- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter +++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter @@ -250,7 +250,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -260,7 +260,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter index f45c4ad63689ec..1dc75f8abc6d55 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter @@ -179,7 +179,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -189,7 +189,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter index 4fb63ee98280f7..3995f242f0931b 100644 --- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter +++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter @@ -179,7 +179,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -189,7 +189,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter index 492e2d81c7fc67..18715acb6f5ec4 100644 --- a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter +++ b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter @@ -166,7 +166,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -176,7 +176,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/dynamic-bridge-app/bridge-common/bridge-app.matter b/examples/dynamic-bridge-app/bridge-common/bridge-app.matter index 1509a4b1a3e89c..81ee27dfd43ef9 100644 --- a/examples/dynamic-bridge-app/bridge-common/bridge-app.matter +++ b/examples/dynamic-bridge-app/bridge-common/bridge-app.matter @@ -272,7 +272,7 @@ client cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -282,7 +282,7 @@ client cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } @@ -345,7 +345,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -355,7 +355,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter index d6121d1d021e52..da4208b3f9b036 100644 --- a/examples/light-switch-app/light-switch-common/light-switch-app.matter +++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter @@ -474,7 +474,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -484,7 +484,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter b/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter index fb480cc02709f3..2dbd199b75aa36 100644 --- a/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter +++ b/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter @@ -336,7 +336,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -346,7 +346,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter b/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter index 1bd328d9902415..0716b734e7f564 100644 --- a/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter +++ b/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter @@ -336,7 +336,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -346,7 +346,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter index 95ebbc9ec993d4..c78228137c6bb1 100644 --- a/examples/lighting-app/lighting-common/lighting-app.matter +++ b/examples/lighting-app/lighting-common/lighting-app.matter @@ -336,7 +336,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -346,7 +346,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lighting-app/nxp/zap/lighting-on-off.matter b/examples/lighting-app/nxp/zap/lighting-on-off.matter index 387a168abe9443..34bf74292995e6 100644 --- a/examples/lighting-app/nxp/zap/lighting-on-off.matter +++ b/examples/lighting-app/nxp/zap/lighting-on-off.matter @@ -329,7 +329,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -339,7 +339,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lighting-app/qpg/zap/light.matter b/examples/lighting-app/qpg/zap/light.matter index a92a666f4710e9..40c423237c181a 100644 --- a/examples/lighting-app/qpg/zap/light.matter +++ b/examples/lighting-app/qpg/zap/light.matter @@ -332,7 +332,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -342,7 +342,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter b/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter index 250b1f18ebb39f..2f59d01d4fcbdd 100644 --- a/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter +++ b/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter @@ -336,7 +336,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -346,7 +346,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter index 20248c67383065..73d2de73ab4308 100644 --- a/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter +++ b/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter @@ -336,7 +336,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -346,7 +346,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index 805736e96c7bba..8c6c9a892e0cc0 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -143,7 +143,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -153,7 +153,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lock-app/nxp/zap/lock-app.matter b/examples/lock-app/nxp/zap/lock-app.matter index a417b7f3f53522..2d99894bcf4d4f 100644 --- a/examples/lock-app/nxp/zap/lock-app.matter +++ b/examples/lock-app/nxp/zap/lock-app.matter @@ -101,7 +101,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -111,7 +111,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/lock-app/qpg/zap/lock.matter b/examples/lock-app/qpg/zap/lock.matter index f77fed34c24f25..bf9b12ed538632 100644 --- a/examples/lock-app/qpg/zap/lock.matter +++ b/examples/lock-app/qpg/zap/lock.matter @@ -166,7 +166,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -176,7 +176,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/log-source-app/log-source-common/log-source-app.matter b/examples/log-source-app/log-source-common/log-source-app.matter index 28a4b171b81e71..101588c19c93f3 100644 --- a/examples/log-source-app/log-source-common/log-source-app.matter +++ b/examples/log-source-app/log-source-common/log-source-app.matter @@ -36,7 +36,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter index 4e61fd9904cffd..998567c2530fac 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter @@ -55,7 +55,7 @@ client cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -65,7 +65,7 @@ client cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } @@ -128,7 +128,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -138,7 +138,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter index e2b8ee36f81270..6f1a22ac175f81 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter @@ -228,7 +228,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -238,7 +238,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index c7a4d886fda5c1..1865188c3118af 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -512,7 +512,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -522,7 +522,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 7e3ce228e46058..7ae83770cc884a 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -512,7 +512,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -522,7 +522,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter index 295e3a28d25392..3bac4bf2a3e799 100644 --- a/examples/pump-app/pump-common/pump-app.matter +++ b/examples/pump-app/pump-common/pump-app.matter @@ -257,7 +257,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -267,7 +267,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter index a6569cfe537871..a28e9bb575af0b 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter @@ -182,7 +182,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -192,7 +192,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter index 80bcc673f64119..ebe168fb236915 100644 --- a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter +++ b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter @@ -55,7 +55,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -65,7 +65,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index 6e4528e50cffd7..2338de0db03649 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -350,7 +350,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -360,7 +360,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index ccec137cbe0382..c86d83ad658a8d 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -245,7 +245,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -255,7 +255,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index 679f0da2f11e81..ce145138afd91b 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -402,7 +402,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -412,7 +412,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter index 144b19bd761a57..95241b99403f68 100644 --- a/examples/window-app/common/window-app.matter +++ b/examples/window-app/common/window-app.matter @@ -283,7 +283,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -293,7 +293,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/src/app/server/AclStorage.cpp b/src/app/server/AclStorage.cpp index 62b90ebab3e98c..03ebc7a1341906 100644 --- a/src/app/server/AclStorage.cpp +++ b/src/app/server/AclStorage.cpp @@ -27,7 +27,7 @@ using Entry = AccessControl::Entry; using EntryListener = AccessControl::EntryListener; using StagingAuthMode = Clusters::AccessControl::AccessControlEntryAuthModeEnum; using StagingPrivilege = Clusters::AccessControl::AccessControlEntryPrivilegeEnum; -using StagingTarget = Clusters::AccessControl::Structs::Target::Type; +using StagingTarget = Clusters::AccessControl::Structs::AccessControlTargetStruct::Type; using Target = AccessControl::Entry::Target; namespace { diff --git a/src/app/server/AclStorage.h b/src/app/server/AclStorage.h index bb12737328375e..6300bb66a5fb60 100644 --- a/src/app/server/AclStorage.h +++ b/src/app/server/AclStorage.h @@ -94,7 +94,7 @@ class AclStorage { using Entry = Access::AccessControl::Entry; using StagingEntry = Clusters::AccessControl::Structs::AccessControlEntryStruct::Type; - using StagingTarget = Clusters::AccessControl::Structs::Target::Type; + using StagingTarget = Clusters::AccessControl::Structs::AccessControlTargetStruct::Type; public: EncodableEntry(const Entry & entry) : mEntry(entry) {} diff --git a/src/app/server/DefaultAclStorage.cpp b/src/app/server/DefaultAclStorage.cpp index d36aaca31b8c3d..58d0d18feedda6 100644 --- a/src/app/server/DefaultAclStorage.cpp +++ b/src/app/server/DefaultAclStorage.cpp @@ -28,7 +28,7 @@ using Entry = AccessControl::Entry; using EntryListener = AccessControl::EntryListener; using StagingAuthMode = Clusters::AccessControl::AccessControlEntryAuthModeEnum; using StagingPrivilege = Clusters::AccessControl::AccessControlEntryPrivilegeEnum; -using StagingTarget = Clusters::AccessControl::Structs::Target::Type; +using StagingTarget = Clusters::AccessControl::Structs::AccessControlTargetStruct::Type; using Target = AccessControl::Entry::Target; namespace { diff --git a/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml index ef1f55528ddf08..9dfca25814f008 100644 --- a/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml @@ -40,7 +40,7 @@ limitations under the License. - + @@ -52,7 +52,7 @@ limitations under the License. - + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 271670f7c03ac9..d5be767865f9ab 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -598,7 +598,7 @@ client cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -608,7 +608,7 @@ client cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp index 83f0c0b049b319..c3928fc61bab68 100644 --- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp +++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp @@ -2368,24 +2368,27 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR entry_3.deviceType.Value(), newElement_3_deviceType); } - jclass targetStructClass_4; + jclass accessControlTargetStructStructClass_4; err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$AccessControlClusterTarget", targetStructClass_4); + env, "chip/devicecontroller/ChipStructs$AccessControlClusterAccessControlTargetStruct", + accessControlTargetStructStructClass_4); if (err != CHIP_NO_ERROR) { - ChipLogError(Zcl, "Could not find class ChipStructs$AccessControlClusterTarget"); + ChipLogError(Zcl, "Could not find class ChipStructs$AccessControlClusterAccessControlTargetStruct"); return nullptr; } - jmethodID targetStructCtor_4 = env->GetMethodID(targetStructClass_4, "", - "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;)V"); - if (targetStructCtor_4 == nullptr) + jmethodID accessControlTargetStructStructCtor_4 = + env->GetMethodID(accessControlTargetStructStructClass_4, "", + "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;)V"); + if (accessControlTargetStructStructCtor_4 == nullptr) { - ChipLogError(Zcl, "Could not find ChipStructs$AccessControlClusterTarget constructor"); + ChipLogError(Zcl, + "Could not find ChipStructs$AccessControlClusterAccessControlTargetStruct constructor"); return nullptr; } - newElement_3 = env->NewObject(targetStructClass_4, targetStructCtor_4, newElement_3_cluster, - newElement_3_endpoint, newElement_3_deviceType); + newElement_3 = env->NewObject(accessControlTargetStructStructClass_4, accessControlTargetStructStructCtor_4, + newElement_3_cluster, newElement_3_endpoint, newElement_3_deviceType); chip::JniReferences::GetInstance().AddToList(newElement_0_targets, newElement_3); } } diff --git a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp index 698b243a3100d1..97e66071a4f163 100644 --- a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp +++ b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp @@ -277,24 +277,27 @@ jobject DecodeEventValue(const app::ConcreteEventPath & aPath, TLV::TLVReader & entry_3.deviceType.Value(), newElement_3_deviceType); } - jclass targetStructClass_4; + jclass accessControlTargetStructStructClass_4; err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$AccessControlClusterTarget", targetStructClass_4); + env, "chip/devicecontroller/ChipStructs$AccessControlClusterAccessControlTargetStruct", + accessControlTargetStructStructClass_4); if (err != CHIP_NO_ERROR) { - ChipLogError(Zcl, "Could not find class ChipStructs$AccessControlClusterTarget"); + ChipLogError(Zcl, "Could not find class ChipStructs$AccessControlClusterAccessControlTargetStruct"); return nullptr; } - jmethodID targetStructCtor_4 = env->GetMethodID(targetStructClass_4, "", - "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;)V"); - if (targetStructCtor_4 == nullptr) + jmethodID accessControlTargetStructStructCtor_4 = + env->GetMethodID(accessControlTargetStructStructClass_4, "", + "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;)V"); + if (accessControlTargetStructStructCtor_4 == nullptr) { - ChipLogError(Zcl, "Could not find ChipStructs$AccessControlClusterTarget constructor"); + ChipLogError(Zcl, + "Could not find ChipStructs$AccessControlClusterAccessControlTargetStruct constructor"); return nullptr; } - newElement_3 = env->NewObject(targetStructClass_4, targetStructCtor_4, newElement_3_cluster, - newElement_3_endpoint, newElement_3_deviceType); + newElement_3 = env->NewObject(accessControlTargetStructStructClass_4, accessControlTargetStructStructCtor_4, + newElement_3_cluster, newElement_3_endpoint, newElement_3_deviceType); chip::JniReferences::GetInstance().AddToList(value_latestValue_targets, newElement_3); } } diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp index 67b729f61bba45..1bc26a0625e228 100644 --- a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp +++ b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp @@ -4618,24 +4618,25 @@ void CHIPAccessControlAclAttributeCallback::CallbackFn( entry_3.deviceType.Value(), newElement_3_deviceType); } - jclass targetStructClass_4; + jclass accessControlTargetStructStructClass_4; err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$AccessControlClusterTarget", targetStructClass_4); + env, "chip/devicecontroller/ChipStructs$AccessControlClusterAccessControlTargetStruct", + accessControlTargetStructStructClass_4); if (err != CHIP_NO_ERROR) { - ChipLogError(Zcl, "Could not find class ChipStructs$AccessControlClusterTarget"); + ChipLogError(Zcl, "Could not find class ChipStructs$AccessControlClusterAccessControlTargetStruct"); return; } - jmethodID targetStructCtor_4 = - env->GetMethodID(targetStructClass_4, "", "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;)V"); - if (targetStructCtor_4 == nullptr) + jmethodID accessControlTargetStructStructCtor_4 = env->GetMethodID( + accessControlTargetStructStructClass_4, "", "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;)V"); + if (accessControlTargetStructStructCtor_4 == nullptr) { - ChipLogError(Zcl, "Could not find ChipStructs$AccessControlClusterTarget constructor"); + ChipLogError(Zcl, "Could not find ChipStructs$AccessControlClusterAccessControlTargetStruct constructor"); return; } - newElement_3 = env->NewObject(targetStructClass_4, targetStructCtor_4, newElement_3_cluster, newElement_3_endpoint, - newElement_3_deviceType); + newElement_3 = env->NewObject(accessControlTargetStructStructClass_4, accessControlTargetStructStructCtor_4, + newElement_3_cluster, newElement_3_endpoint, newElement_3_deviceType); chip::JniReferences::GetInstance().AddToList(newElement_0_targets, newElement_3); } } diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java index 2e3c03514c24b4..a039df15f6aa64 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java @@ -142,12 +142,12 @@ public String toString() { } } - public static class AccessControlClusterTarget { + public static class AccessControlClusterAccessControlTargetStruct { public @Nullable Long cluster; public @Nullable Integer endpoint; public @Nullable Long deviceType; - public AccessControlClusterTarget( + public AccessControlClusterAccessControlTargetStruct( @Nullable Long cluster, @Nullable Integer endpoint, @Nullable Long deviceType) { this.cluster = cluster; this.endpoint = endpoint; @@ -157,7 +157,7 @@ public AccessControlClusterTarget( @Override public String toString() { StringBuilder output = new StringBuilder(); - output.append("AccessControlClusterTarget {\n"); + output.append("AccessControlClusterAccessControlTargetStruct {\n"); output.append("\tcluster: "); output.append(cluster); output.append("\n"); @@ -176,14 +176,14 @@ public static class AccessControlClusterAccessControlEntryStruct { public Integer privilege; public Integer authMode; public @Nullable ArrayList subjects; - public @Nullable ArrayList targets; + public @Nullable ArrayList targets; public Integer fabricIndex; public AccessControlClusterAccessControlEntryStruct( Integer privilege, Integer authMode, @Nullable ArrayList subjects, - @Nullable ArrayList targets, + @Nullable ArrayList targets, Integer fabricIndex) { this.privilege = privilege; this.authMode = authMode; diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index 3a9e9e0ac2656a..be3f932adda39d 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -3164,7 +3164,7 @@ class ChangeTypeEnum(MatterIntEnum): class Structs: @dataclass - class Target(ClusterObject): + class AccessControlTargetStruct(ClusterObject): @ChipUtility.classproperty def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( @@ -3187,14 +3187,14 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="privilege", Tag=1, Type=AccessControl.Enums.AccessControlEntryPrivilegeEnum), ClusterObjectFieldDescriptor(Label="authMode", Tag=2, Type=AccessControl.Enums.AccessControlEntryAuthModeEnum), ClusterObjectFieldDescriptor(Label="subjects", Tag=3, Type=typing.Union[Nullable, typing.List[uint]]), - ClusterObjectFieldDescriptor(Label="targets", Tag=4, Type=typing.Union[Nullable, typing.List[AccessControl.Structs.Target]]), + ClusterObjectFieldDescriptor(Label="targets", Tag=4, Type=typing.Union[Nullable, typing.List[AccessControl.Structs.AccessControlTargetStruct]]), ClusterObjectFieldDescriptor(Label="fabricIndex", Tag=254, Type=uint), ]) privilege: 'AccessControl.Enums.AccessControlEntryPrivilegeEnum' = 0 authMode: 'AccessControl.Enums.AccessControlEntryAuthModeEnum' = 0 subjects: 'typing.Union[Nullable, typing.List[uint]]' = NullValue - targets: 'typing.Union[Nullable, typing.List[AccessControl.Structs.Target]]' = NullValue + targets: 'typing.Union[Nullable, typing.List[AccessControl.Structs.AccessControlTargetStruct]]' = NullValue fabricIndex: 'uint' = 0 @dataclass diff --git a/src/darwin/Framework/CHIP/templates/availability.yaml b/src/darwin/Framework/CHIP/templates/availability.yaml index 9e555f56a20f68..b879c185b19170 100644 --- a/src/darwin/Framework/CHIP/templates/availability.yaml +++ b/src/darwin/Framework/CHIP/templates/availability.yaml @@ -7410,6 +7410,8 @@ - targetTemperature - targetTemperatureLevel structs: + AccessControl: + - AccessControlTargetStruct BasicInformation: - ProductAppearanceStruct BridgedDeviceBasicInformation: @@ -7417,6 +7419,11 @@ TemperatureControl: - TemperatureLevelStruct struct fields: + AccessControl: + AccessControlTargetStruct: + - cluster + - endpoint + - deviceType BasicInformation: ProductAppearanceStruct: - finish @@ -7850,6 +7857,9 @@ # We apparently forgot to deprecate BridgedDeviceBasic when we # introduced BridgedDeviceBasicInformation. - BridgedDeviceBasic + structs: + AccessControl: + - Target bitmaps: Groups: - GroupClusterFeature @@ -7866,6 +7876,9 @@ commands: TimeSynchronization: SetUTCTime: SetUtcTime + structs: + AccessControl: + AccessControlTargetStruct: Target enum values: TimeSynchronization: TimeSourceEnum: diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm index a5027126bde65b..8b79ca995852f5 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm @@ -1939,8 +1939,8 @@ static id _Nullable DecodeAttributeValueForAccessControlCluster( auto iter_3 = entry_0.targets.Value().begin(); while (iter_3.Next()) { auto & entry_3 = iter_3.GetValue(); - MTRAccessControlClusterTarget * newElement_3; - newElement_3 = [MTRAccessControlClusterTarget new]; + MTRAccessControlClusterAccessControlTargetStruct * newElement_3; + newElement_3 = [MTRAccessControlClusterAccessControlTargetStruct new]; if (entry_3.cluster.IsNull()) { newElement_3.cluster = nil; } else { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm index 0d495ffe954171..4e311a758ad203 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm @@ -11192,11 +11192,13 @@ - (void)writeAttributeACLWithValue:(NSArray * _Nonnull)value } listFreer.add(listHolder_3); for (size_t i_3 = 0; i_3 < element_0.targets.count; ++i_3) { - if (![element_0.targets[i_3] isKindOfClass:[MTRAccessControlClusterTarget class]]) { + if (![element_0.targets[i_3] + isKindOfClass:[MTRAccessControlClusterAccessControlTargetStruct class]]) { // Wrong kind of value. return CHIP_ERROR_INVALID_ARGUMENT; } - auto element_3 = (MTRAccessControlClusterTarget *) element_0.targets[i_3]; + auto element_3 + = (MTRAccessControlClusterAccessControlTargetStruct *) element_0.targets[i_3]; if (element_3.cluster == nil) { listHolder_3->mList[i_3].cluster.SetNull(); } else { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm index 5062aff3ef13eb..425e075a3553cb 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm @@ -2388,8 +2388,8 @@ auto iter_3 = entry_0.targets.Value().begin(); while (iter_3.Next()) { auto & entry_3 = iter_3.GetValue(); - MTRAccessControlClusterTarget * newElement_3; - newElement_3 = [MTRAccessControlClusterTarget new]; + MTRAccessControlClusterAccessControlTargetStruct * newElement_3; + newElement_3 = [MTRAccessControlClusterAccessControlTargetStruct new]; if (entry_3.cluster.IsNull()) { newElement_3.cluster = nil; } else { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm index 3e1a0cb177f531..156a4ee0a0f14f 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm @@ -214,8 +214,8 @@ static id _Nullable DecodeEventPayloadForAccessControlCluster(EventId aEventId, auto iter_3 = cppValue.latestValue.Value().targets.Value().begin(); while (iter_3.Next()) { auto & entry_3 = iter_3.GetValue(); - MTRAccessControlClusterTarget * newElement_3; - newElement_3 = [MTRAccessControlClusterTarget new]; + MTRAccessControlClusterAccessControlTargetStruct * newElement_3; + newElement_3 = [MTRAccessControlClusterAccessControlTargetStruct new]; if (entry_3.cluster.IsNull()) { newElement_3.cluster = nil; } else { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h index fa0842de1b7f15..e4be21e114dba3 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h @@ -57,13 +57,17 @@ API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) @property (nonatomic, copy) NSNumber * _Nonnull fabricIndex API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); @end -API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) -@interface MTRAccessControlClusterTarget : NSObject -@property (nonatomic, copy) NSNumber * _Nullable cluster API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); -@property (nonatomic, copy) NSNumber * _Nullable endpoint API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); -@property (nonatomic, copy) NSNumber * _Nullable deviceType API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); +MTR_NEWLY_AVAILABLE +@interface MTRAccessControlClusterAccessControlTargetStruct : NSObject +@property (nonatomic, copy) NSNumber * _Nullable cluster MTR_NEWLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nullable endpoint MTR_NEWLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nullable deviceType MTR_NEWLY_AVAILABLE; @end +API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) +MTR_NEWLY_DEPRECATED("Please use MTRAccessControlClusterAccessControlTargetStruct") +@interface MTRAccessControlClusterTarget : MTRAccessControlClusterAccessControlTargetStruct +@end API_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) @interface MTRAccessControlClusterAccessControlEntryStruct : NSObject @property (nonatomic, copy) NSNumber * _Nonnull privilege API_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)); diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm index f34a16a25558db..a2f6fce25c9eee 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm @@ -185,7 +185,7 @@ - (NSString *)description @end -@implementation MTRAccessControlClusterTarget +@implementation MTRAccessControlClusterAccessControlTargetStruct - (instancetype)init { if (self = [super init]) { @@ -201,7 +201,7 @@ - (instancetype)init - (id)copyWithZone:(NSZone * _Nullable)zone { - auto other = [[MTRAccessControlClusterTarget alloc] init]; + auto other = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; other.cluster = self.cluster; other.endpoint = self.endpoint; @@ -219,6 +219,9 @@ - (NSString *)description @end +@implementation MTRAccessControlClusterTarget : MTRAccessControlClusterAccessControlTargetStruct +@end + @implementation MTRAccessControlClusterAccessControlEntryStruct - (instancetype)init { diff --git a/src/python_testing/TC_ACE_1_3.py b/src/python_testing/TC_ACE_1_3.py index 2d81b78230fe5f..3fa0383219be03 100644 --- a/src/python_testing/TC_ACE_1_3.py +++ b/src/python_testing/TC_ACE_1_3.py @@ -85,12 +85,12 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kAdminister, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH0_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0, cluster=0x001f)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0, cluster=0x001f)]) all_view = Clusters.AccessControl.Structs.AccessControlEntryStruct( privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, all_view] await self.write_acl(acl) @@ -108,7 +108,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH1_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, th1_view] await self.write_acl(acl) self.print_step(7, "TH1 reads EP0 descriptor - expect SUCCESS") @@ -125,7 +125,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH2_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, th2_view] await self.write_acl(acl) @@ -143,7 +143,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH3_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, th3_view] await self.write_acl(acl) @@ -161,7 +161,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH1_nodeid, TH2_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, th12_view] await self.write_acl(acl) @@ -179,7 +179,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH1_nodeid, TH3_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, th13_view] await self.write_acl(acl) @@ -197,7 +197,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH2_nodeid, TH3_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, th23_view] await self.write_acl(acl) @@ -215,7 +215,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[TH1_nodeid, TH2_nodeid, TH3_nodeid], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, th123_view] await self.write_acl(acl) @@ -233,7 +233,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[acl_subject(cat1v1)], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, cat1v1_view] await self.write_acl(acl) @@ -251,7 +251,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[acl_subject(cat1v2)], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, cat1v2_view] await self.write_acl(acl) @@ -270,7 +270,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[acl_subject(cat1v3)], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, cat1v3_view] await self.write_acl(acl) @@ -289,7 +289,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[acl_subject(cat2v1)], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, cat2v1_view] await self.write_acl(acl) @@ -308,7 +308,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[acl_subject(cat2v2)], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, cat2v2_view] await self.write_acl(acl) @@ -327,7 +327,7 @@ async def test_TC_ACE_1_3(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[acl_subject(cat2v3)], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0)]) acl = [TH0_admin_acl, cat2v3_view] await self.write_acl(acl) diff --git a/src/python_testing/TC_ACE_1_4.py b/src/python_testing/TC_ACE_1_4.py index 8091ee38926b32..0878e7d8e57395 100644 --- a/src/python_testing/TC_ACE_1_4.py +++ b/src/python_testing/TC_ACE_1_4.py @@ -110,7 +110,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kAdminister, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(endpoint=0, cluster=Clusters.AccessControl.id)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0, cluster=Clusters.AccessControl.id)]) all_view = Clusters.AccessControl.Structs.AccessControlEntryStruct( privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, @@ -133,7 +133,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(cluster=Clusters.Descriptor.id)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=Clusters.Descriptor.id)]) acl = [admin_acl, descriptor_view] await self.write_acl(acl) @@ -152,7 +152,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(cluster=self.cluster.id)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=self.cluster.id)]) acl = [admin_acl, appcluster_view] await self.write_acl(acl) @@ -171,7 +171,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(endpoint=self.endpoint, cluster=Clusters.Descriptor.id)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=self.endpoint, cluster=Clusters.Descriptor.id)]) acl = [admin_acl, descriptor_appendpoint_view] await self.write_acl(acl) @@ -190,7 +190,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(endpoint=self.endpoint, cluster=self.cluster.id)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=self.endpoint, cluster=self.cluster.id)]) acl = [admin_acl, appcluster_appendpoint_view] await self.write_acl(acl) @@ -209,7 +209,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(endpoint=self.endpoint)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=self.endpoint)]) acl = [admin_acl, allclusters_appendpoint_view] await self.write_acl(acl) @@ -228,7 +228,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(deviceType=0x0016)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(deviceType=0x0016)]) acl = [admin_acl, rootnode_view] await self.write_acl(acl) @@ -247,7 +247,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(deviceType=self.devtype)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(deviceType=self.devtype)]) acl = [admin_acl, appdevtype_view] await self.write_acl(acl) @@ -266,7 +266,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(cluster=0x001d, deviceType=self.devtype)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0x001d, deviceType=self.devtype)]) acl = [admin_acl, descriptor_appdevtype_view] await self.write_acl(acl) @@ -285,7 +285,7 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(cluster=self.cluster.id, deviceType=self.devtype)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=self.cluster.id, deviceType=self.devtype)]) acl = [admin_acl, appcluster_appdevtype_view] await self.write_acl(acl) @@ -304,8 +304,8 @@ async def test_TC_ACE_1_4(self): privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kView, authMode=Clusters.AccessControl.Enums.AccessControlEntryAuthModeEnum.kCase, subjects=[], - targets=[Clusters.AccessControl.Structs.Target(cluster=Clusters.Descriptor.id, endpoint=0), - Clusters.AccessControl.Structs.Target(cluster=self.cluster.id, endpoint=self.endpoint)]) + targets=[Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=Clusters.Descriptor.id, endpoint=0), + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=self.cluster.id, endpoint=self.endpoint)]) acl = [admin_acl, multitarget_view] await self.write_acl(acl) diff --git a/src/python_testing/TC_RR_1_1.py b/src/python_testing/TC_RR_1_1.py index 1028a8b4f27b84..895de247c22cb9 100644 --- a/src/python_testing/TC_RR_1_1.py +++ b/src/python_testing/TC_RR_1_1.py @@ -759,14 +759,14 @@ def build_acl(self, enable_access_to_group_cluster: bool): # Administer ACL entry admin_subjects = [0xFFFF_FFFD_0001_0001, 0x2000_0000_0000_0001, 0x2000_0000_0000_0002, 0x2000_0000_0000_0003] - admin_target_field_2 = Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC00, deviceType=0xFFF1_BC30) + admin_target_field_2 = Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC00, deviceType=0xFFF1_BC30) if enable_access_to_group_cluster: - admin_target_field_2 = Clusters.AccessControl.Structs.Target(cluster=0x0000_0004) + admin_target_field_2 = Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0x0000_0004) admin_targets = [ - Clusters.AccessControl.Structs.Target(endpoint=0), + Clusters.AccessControl.Structs.AccessControlTargetStruct(endpoint=0), admin_target_field_2, - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC01, deviceType=0xFFF1_BC31) + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC01, deviceType=0xFFF1_BC31) ] admin_acl_entry = Clusters.AccessControl.Structs.AccessControlEntryStruct( privilege=Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum.kAdminister, @@ -779,9 +779,9 @@ def build_acl(self, enable_access_to_group_cluster: bool): # Manage ACL entry manage_subjects = [0x1000_0000_0000_0001, 0x1000_0000_0000_0002, 0x1000_0000_0000_0003, 0x1000_0000_0000_0004] manage_targets = [ - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC00, deviceType=0xFFF1_BC20), - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC01, deviceType=0xFFF1_BC21), - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC02, deviceType=0xFFF1_BC22) + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC00, deviceType=0xFFF1_BC20), + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC01, deviceType=0xFFF1_BC21), + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC02, deviceType=0xFFF1_BC22) ] manage_acl_entry = Clusters.AccessControl.Structs.AccessControlEntryStruct( @@ -795,9 +795,9 @@ def build_acl(self, enable_access_to_group_cluster: bool): # Operate ACL entry operate_subjects = [0x3000_0000_0000_0001, 0x3000_0000_0000_0002, 0x3000_0000_0000_0003, 0x3000_0000_0000_0004] operate_targets = [ - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC40, deviceType=0xFFF1_BC20), - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC41, deviceType=0xFFF1_BC21), - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC42, deviceType=0xFFF1_BC42) + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC40, deviceType=0xFFF1_BC20), + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC41, deviceType=0xFFF1_BC21), + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC42, deviceType=0xFFF1_BC42) ] operate_acl_entry = Clusters.AccessControl.Structs.AccessControlEntryStruct( @@ -811,9 +811,9 @@ def build_acl(self, enable_access_to_group_cluster: bool): # View ACL entry view_subjects = [0x4000_0000_0000_0001, 0x4000_0000_0000_0002, 0x4000_0000_0000_0003, 0x4000_0000_0000_0004] view_targets = [ - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC80, deviceType=0xFFF1_BC20), - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC81, deviceType=0xFFF1_BC21), - Clusters.AccessControl.Structs.Target(cluster=0xFFF1_FC82, deviceType=0xFFF1_BC22) + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC80, deviceType=0xFFF1_BC20), + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC81, deviceType=0xFFF1_BC21), + Clusters.AccessControl.Structs.AccessControlTargetStruct(cluster=0xFFF1_FC82, deviceType=0xFFF1_BC22) ] view_acl_entry = Clusters.AccessControl.Structs.AccessControlEntryStruct( 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 dcb81394d725f3..ddada78c641ff2 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 @@ -2825,7 +2825,7 @@ namespace Events {} // namespace Events } // namespace Binding namespace AccessControl { namespace Structs { -namespace Target { +namespace AccessControlTargetStruct { CHIP_ERROR Type::Encode(TLV::TLVWriter & writer, TLV::Tag tag) const { TLV::TLVType outer; @@ -2872,7 +2872,7 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) return CHIP_NO_ERROR; } -} // namespace Target +} // namespace AccessControlTargetStruct namespace AccessControlEntryStruct { CHIP_ERROR Type::EncodeForWrite(TLV::TLVWriter & writer, TLV::Tag tag) const { 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 5b3532d8d28375..013a950074f6ff 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 @@ -3413,7 +3413,7 @@ struct TypeInfo } // namespace Binding namespace AccessControl { namespace Structs { -namespace Target { +namespace AccessControlTargetStruct { enum class Fields : uint8_t { kCluster = 0, @@ -3437,7 +3437,7 @@ struct Type using DecodableType = Type; -} // namespace Target +} // namespace AccessControlTargetStruct namespace AccessControlEntryStruct { enum class Fields : uint8_t { @@ -3454,7 +3454,7 @@ struct Type AccessControlEntryPrivilegeEnum privilege = static_cast(0); AccessControlEntryAuthModeEnum authMode = static_cast(0); DataModel::Nullable> subjects; - DataModel::Nullable> targets; + DataModel::Nullable> targets; chip::FabricIndex fabricIndex = static_cast(0); static constexpr bool kIsFabricScoped = true; @@ -3476,7 +3476,7 @@ struct DecodableType AccessControlEntryPrivilegeEnum privilege = static_cast(0); AccessControlEntryAuthModeEnum authMode = static_cast(0); DataModel::Nullable> subjects; - DataModel::Nullable> targets; + DataModel::Nullable> targets; chip::FabricIndex fabricIndex = static_cast(0); CHIP_ERROR Decode(TLV::TLVReader & reader); diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp index 677a212a03428d..2e5bea9e2fb698 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp @@ -171,7 +171,8 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::Binding::Structs::Targ ComplexArgumentParser::Finalize(request.fabricIndex); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::AccessControl::Structs::Target::Type & request, +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::AccessControl::Structs::AccessControlTargetStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -179,9 +180,12 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters: // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.cluster", "cluster", value.isMember("cluster"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.endpoint", "endpoint", value.isMember("endpoint"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.deviceType", "deviceType", value.isMember("deviceType"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("AccessControlTargetStruct.cluster", "cluster", value.isMember("cluster"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("AccessControlTargetStruct.endpoint", "endpoint", value.isMember("endpoint"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AccessControlTargetStruct.deviceType", "deviceType", + value.isMember("deviceType"))); char labelWithMember[kMaxLabelLength]; snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "cluster"); @@ -199,7 +203,7 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters: return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::AccessControl::Structs::Target::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::AccessControl::Structs::AccessControlTargetStruct::Type & request) { ComplexArgumentParser::Finalize(request.cluster); ComplexArgumentParser::Finalize(request.endpoint); diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h index 29b99ab6438648..a73e784a7dffd7 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h @@ -42,10 +42,10 @@ static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Binding::Struct static void Finalize(chip::app::Clusters::Binding::Structs::TargetStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AccessControl::Structs::Target::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AccessControl::Structs::AccessControlTargetStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::AccessControl::Structs::Target::Type & request); +static void Finalize(chip::app::Clusters::AccessControl::Structs::AccessControlTargetStruct::Type & request); static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type & request, Json::Value & value); diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp index 239d5d2d1c9660..500d0a370a863d 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -145,8 +145,9 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::AccessControl::Structs::Target::DecodableType & value) +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::AccessControl::Structs::AccessControlTargetStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h index 753b6f8ed99ea1..24df49586083b8 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h @@ -33,7 +33,7 @@ static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType & value); static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::AccessControl::Structs::Target::DecodableType & value); + const chip::app::Clusters::AccessControl::Structs::AccessControlTargetStruct::DecodableType & value); static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType & value); diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 483c1f2ea30cea..f0325c29f5e748 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -1262,7 +1262,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1282,8 +1283,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[0].fabricIndex = 0U; @@ -1305,7 +1306,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1325,8 +1327,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[1].fabricIndex = 0U; @@ -1348,7 +1350,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[2].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1368,8 +1371,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[2].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[2].fabricIndex = 0U; @@ -1391,7 +1394,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[3].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1411,8 +1415,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[3].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[3].fabricIndex = 0U; @@ -1455,7 +1459,7 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(); + chip::app::DataModel::List(); listHolder_0->mList[1].fabricIndex = 0U; value = chip::app::DataModel::List( @@ -1613,7 +1617,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1621,8 +1626,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = 0U; @@ -1726,7 +1731,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(20); + auto * listHolder_3 = + new ListHolder(20); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1830,8 +1836,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[19].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 20); + chip::app::DataModel::List( + listHolder_3->mList, 20); } listHolder_0->mList[1].fabricIndex = 0U; @@ -1864,7 +1870,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1884,8 +1891,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[0].fabricIndex = 0U; @@ -1907,7 +1914,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1927,8 +1935,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[1].fabricIndex = 0U; @@ -1950,7 +1958,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[2].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -1970,8 +1979,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[2].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[2].fabricIndex = 0U; @@ -1993,7 +2002,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[3].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -2013,8 +2023,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[3].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[3].fabricIndex = 0U; @@ -2036,7 +2046,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_0->mList[4].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(3); + auto * listHolder_3 = + new ListHolder(3); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -2056,8 +2067,8 @@ class TestAccessControlClusterSuite : public TestCommand listHolder_3->mList[2].deviceType.SetNull(); listHolder_0->mList[4].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 3); + chip::app::DataModel::List( + listHolder_3->mList, 3); } listHolder_0->mList[4].fabricIndex = 0U; @@ -4153,7 +4164,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4163,8 +4175,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -4186,7 +4198,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[2].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4196,8 +4209,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[2].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[2].fabricIndex = CurrentFabricIndex; @@ -4263,7 +4276,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4273,8 +4287,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -4296,7 +4310,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[2].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4306,8 +4321,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[2].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[2].fabricIndex = CurrentFabricIndex; @@ -4373,7 +4388,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(2); + auto * listHolder_3 = + new ListHolder(2); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4389,8 +4405,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[1].deviceType.Value() = 44UL; listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 2); + chip::app::DataModel::List( + listHolder_3->mList, 2); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -4412,7 +4428,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[2].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(2); + auto * listHolder_3 = + new ListHolder(2); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4428,8 +4445,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[1].deviceType.Value() = 88UL; listHolder_0->mList[2].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 2); + chip::app::DataModel::List( + listHolder_3->mList, 2); } listHolder_0->mList[2].fabricIndex = CurrentFabricIndex; @@ -4485,7 +4502,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(2); + auto * listHolder_3 = + new ListHolder(2); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4501,8 +4519,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[1].deviceType.Value() = 44UL; listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 2); + chip::app::DataModel::List( + listHolder_3->mList, 2); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -4514,7 +4532,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[2].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(2); + auto * listHolder_3 = + new ListHolder(2); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -4530,8 +4549,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[1].deviceType.Value() = 88UL; listHolder_0->mList[2].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 2); + chip::app::DataModel::List( + listHolder_3->mList, 2); } listHolder_0->mList[2].fabricIndex = CurrentFabricIndex; @@ -5330,7 +5349,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -5338,8 +5358,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -5387,7 +5407,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -5396,8 +5417,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -5445,7 +5466,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -5454,8 +5476,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -5503,7 +5525,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -5512,8 +5535,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.Value() = 4294967295UL; listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -5561,7 +5584,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -5571,8 +5595,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.Value() = 33UL; listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -5620,7 +5644,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -5631,8 +5656,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand listHolder_3->mList[0].deviceType.Value() = 33UL; listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = CurrentFabricIndex; @@ -8076,7 +8101,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -8085,8 +8111,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[0].fabricIndex = 1U; @@ -8168,7 +8194,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -8178,8 +8205,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[0].fabricIndex = 1U; @@ -8198,7 +8225,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -8207,8 +8235,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = 1U; @@ -8290,7 +8318,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -8300,8 +8329,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[0].fabricIndex = 1U; @@ -8320,7 +8349,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -8329,8 +8359,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = 1U; @@ -8412,7 +8442,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -8422,8 +8453,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[0].fabricIndex = 1U; @@ -8442,7 +8473,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -8451,8 +8483,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = 1U; @@ -8534,7 +8566,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -8544,8 +8577,8 @@ class Test_TC_ACE_1_1Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[0].fabricIndex = 1U; @@ -8903,7 +8936,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -8913,8 +8947,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[0].fabricIndex = th1FabricIndex; @@ -8926,7 +8960,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -8936,8 +8971,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = th1FabricIndex; @@ -8978,7 +9013,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_0->mList[0].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -8988,8 +9024,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[0].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[0].fabricIndex = th2FabricIndex; @@ -9001,7 +9037,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -9011,8 +9048,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = th2FabricIndex; @@ -39338,7 +39375,8 @@ class OTA_SuccessfulTransferSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNonNull(); @@ -39347,8 +39385,8 @@ class OTA_SuccessfulTransferSuite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = 1U; @@ -77530,7 +77568,8 @@ class TestAccessControlConstraintsSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -77538,8 +77577,8 @@ class TestAccessControlConstraintsSuite : public TestCommand listHolder_3->mList[0].deviceType.SetNull(); listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = 1U; @@ -77582,7 +77621,8 @@ class TestAccessControlConstraintsSuite : public TestCommand listHolder_0->mList[1].targets.SetNonNull(); { - auto * listHolder_3 = new ListHolder(1); + auto * listHolder_3 = + new ListHolder(1); listFreer.add(listHolder_3); listHolder_3->mList[0].cluster.SetNull(); @@ -77592,8 +77632,8 @@ class TestAccessControlConstraintsSuite : public TestCommand listHolder_3->mList[0].deviceType.Value() = 33UL; listHolder_0->mList[1].targets.Value() = - chip::app::DataModel::List(listHolder_3->mList, - 1); + chip::app::DataModel::List( + listHolder_3->mList, 1); } listHolder_0->mList[1].fabricIndex = 1U; diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h index a7411f0d9f3ec5..0b0fe0fc2522a7 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h @@ -9617,8 +9617,8 @@ class WriteAccessControlAcl : public WriteAttribute { { // Scope for our temporary variables auto * array_3 = [NSMutableArray new]; for (auto & entry_3 : entry_0.targets.Value()) { - MTRAccessControlClusterTarget * newElement_3; - newElement_3 = [MTRAccessControlClusterTarget new]; + MTRAccessControlClusterAccessControlTargetStruct * newElement_3; + newElement_3 = [MTRAccessControlClusterAccessControlTargetStruct new]; if (entry_3.cluster.IsNull()) { newElement_3.cluster = nil; } else { diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h index 7a8e4717a769af..b104e9c8a0430b 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -517,20 +517,20 @@ class TestAccessControlCluster : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:1UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:1UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:2UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:3U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:2UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:3U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -549,20 +549,20 @@ class TestAccessControlCluster : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:8U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:8U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:9UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:9UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:10UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:11U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:10UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:11U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -581,20 +581,20 @@ class TestAccessControlCluster : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:16U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:16U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:17UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:17UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:18UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:19U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:18UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:19U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[2]).targets = temp_3; } @@ -613,20 +613,20 @@ class TestAccessControlCluster : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:24U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:24U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:25UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:25UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:26UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:27U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:26UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:27U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[3]).targets = temp_3; } @@ -677,72 +677,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[0]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .endpoint, 0U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .cluster, 1UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .cluster, 2UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .endpoint, 3U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -770,72 +770,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[1]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .endpoint, 8U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .cluster, 9UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .cluster, 10UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .endpoint, 11U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -863,72 +863,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[2]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .endpoint, 16U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .cluster, 17UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .cluster, 18UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .endpoint, 19U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -956,72 +956,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[3]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .endpoint, 24U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .cluster, 25UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .cluster, 26UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .endpoint, 27U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -1382,10 +1382,10 @@ class TestAccessControlCluster : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -1567,105 +1567,105 @@ class TestAccessControlCluster : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:1U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; - - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = [NSNumber numberWithUnsignedShort:2U]; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; - - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:3U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; - - temp_3[3] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[3]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[3]).endpoint = [NSNumber numberWithUnsignedShort:4U]; - ((MTRAccessControlClusterTarget *) temp_3[3]).deviceType = nil; - - temp_3[4] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[4]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[4]).endpoint = [NSNumber numberWithUnsignedShort:5U]; - ((MTRAccessControlClusterTarget *) temp_3[4]).deviceType = nil; - - temp_3[5] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[5]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[5]).endpoint = [NSNumber numberWithUnsignedShort:6U]; - ((MTRAccessControlClusterTarget *) temp_3[5]).deviceType = nil; - - temp_3[6] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[6]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[6]).endpoint = [NSNumber numberWithUnsignedShort:7U]; - ((MTRAccessControlClusterTarget *) temp_3[6]).deviceType = nil; - - temp_3[7] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[7]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[7]).endpoint = [NSNumber numberWithUnsignedShort:8U]; - ((MTRAccessControlClusterTarget *) temp_3[7]).deviceType = nil; - - temp_3[8] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[8]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[8]).endpoint = [NSNumber numberWithUnsignedShort:9U]; - ((MTRAccessControlClusterTarget *) temp_3[8]).deviceType = nil; - - temp_3[9] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[9]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[9]).endpoint = [NSNumber numberWithUnsignedShort:10U]; - ((MTRAccessControlClusterTarget *) temp_3[9]).deviceType = nil; - - temp_3[10] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[10]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[10]).endpoint = [NSNumber numberWithUnsignedShort:11U]; - ((MTRAccessControlClusterTarget *) temp_3[10]).deviceType = nil; - - temp_3[11] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[11]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[11]).endpoint = [NSNumber numberWithUnsignedShort:12U]; - ((MTRAccessControlClusterTarget *) temp_3[11]).deviceType = nil; - - temp_3[12] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[12]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[12]).endpoint = [NSNumber numberWithUnsignedShort:13U]; - ((MTRAccessControlClusterTarget *) temp_3[12]).deviceType = nil; - - temp_3[13] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[13]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[13]).endpoint = [NSNumber numberWithUnsignedShort:14U]; - ((MTRAccessControlClusterTarget *) temp_3[13]).deviceType = nil; - - temp_3[14] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[14]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[14]).endpoint = [NSNumber numberWithUnsignedShort:15U]; - ((MTRAccessControlClusterTarget *) temp_3[14]).deviceType = nil; - - temp_3[15] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[15]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[15]).endpoint = [NSNumber numberWithUnsignedShort:16U]; - ((MTRAccessControlClusterTarget *) temp_3[15]).deviceType = nil; - - temp_3[16] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[16]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[16]).endpoint = [NSNumber numberWithUnsignedShort:17U]; - ((MTRAccessControlClusterTarget *) temp_3[16]).deviceType = nil; - - temp_3[17] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[17]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[17]).endpoint = [NSNumber numberWithUnsignedShort:18U]; - ((MTRAccessControlClusterTarget *) temp_3[17]).deviceType = nil; - - temp_3[18] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[18]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[18]).endpoint = [NSNumber numberWithUnsignedShort:19U]; - ((MTRAccessControlClusterTarget *) temp_3[18]).deviceType = nil; - - temp_3[19] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[19]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[19]).endpoint = [NSNumber numberWithUnsignedShort:20U]; - ((MTRAccessControlClusterTarget *) temp_3[19]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:1U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; + + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = [NSNumber numberWithUnsignedShort:2U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; + + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:3U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; + + temp_3[3] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[3]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[3]).endpoint = [NSNumber numberWithUnsignedShort:4U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[3]).deviceType = nil; + + temp_3[4] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[4]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[4]).endpoint = [NSNumber numberWithUnsignedShort:5U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[4]).deviceType = nil; + + temp_3[5] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[5]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[5]).endpoint = [NSNumber numberWithUnsignedShort:6U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[5]).deviceType = nil; + + temp_3[6] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[6]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[6]).endpoint = [NSNumber numberWithUnsignedShort:7U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[6]).deviceType = nil; + + temp_3[7] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[7]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[7]).endpoint = [NSNumber numberWithUnsignedShort:8U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[7]).deviceType = nil; + + temp_3[8] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[8]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[8]).endpoint = [NSNumber numberWithUnsignedShort:9U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[8]).deviceType = nil; + + temp_3[9] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[9]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[9]).endpoint = [NSNumber numberWithUnsignedShort:10U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[9]).deviceType = nil; + + temp_3[10] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[10]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[10]).endpoint = [NSNumber numberWithUnsignedShort:11U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[10]).deviceType = nil; + + temp_3[11] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[11]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[11]).endpoint = [NSNumber numberWithUnsignedShort:12U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[11]).deviceType = nil; + + temp_3[12] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[12]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[12]).endpoint = [NSNumber numberWithUnsignedShort:13U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[12]).deviceType = nil; + + temp_3[13] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[13]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[13]).endpoint = [NSNumber numberWithUnsignedShort:14U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[13]).deviceType = nil; + + temp_3[14] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[14]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[14]).endpoint = [NSNumber numberWithUnsignedShort:15U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[14]).deviceType = nil; + + temp_3[15] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[15]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[15]).endpoint = [NSNumber numberWithUnsignedShort:16U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[15]).deviceType = nil; + + temp_3[16] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[16]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[16]).endpoint = [NSNumber numberWithUnsignedShort:17U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[16]).deviceType = nil; + + temp_3[17] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[17]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[17]).endpoint = [NSNumber numberWithUnsignedShort:18U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[17]).deviceType = nil; + + temp_3[18] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[18]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[18]).endpoint = [NSNumber numberWithUnsignedShort:19U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[18]).deviceType = nil; + + temp_3[19] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[19]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[19]).endpoint = [NSNumber numberWithUnsignedShort:20U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[19]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -1740,20 +1740,20 @@ class TestAccessControlCluster : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:1UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:1UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:2UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:3U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:2UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:3U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -1772,20 +1772,20 @@ class TestAccessControlCluster : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:8U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:8U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:9UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:9UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:10UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:11U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:10UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:11U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -1804,20 +1804,20 @@ class TestAccessControlCluster : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:16U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:16U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:17UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:17UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:18UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:19U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:18UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:19U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[2]).targets = temp_3; } @@ -1836,20 +1836,20 @@ class TestAccessControlCluster : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:24U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:24U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:25UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:25UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:26UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:27U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:26UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:27U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[3]).targets = temp_3; } @@ -1868,20 +1868,20 @@ class TestAccessControlCluster : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:32U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:32U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; - temp_3[1] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:33UL]; - ((MTRAccessControlClusterTarget *) temp_3[1]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[1]).deviceType = nil; + temp_3[1] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).cluster = [NSNumber numberWithUnsignedInt:33UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[1]).deviceType = nil; - temp_3[2] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:34UL]; - ((MTRAccessControlClusterTarget *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:35U]; - ((MTRAccessControlClusterTarget *) temp_3[2]).deviceType = nil; + temp_3[2] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).cluster = [NSNumber numberWithUnsignedInt:34UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).endpoint = [NSNumber numberWithUnsignedShort:35U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[2]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[4]).targets = temp_3; } @@ -1935,72 +1935,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[0]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .endpoint, 0U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .cluster, 1UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .cluster, 2UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .endpoint, 3U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[0]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[0]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -2028,72 +2028,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[1]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .endpoint, 8U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .cluster, 9UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .cluster, 10UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .endpoint, 11U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[1]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[1]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -2121,72 +2121,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[2]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .endpoint, 16U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .cluster, 17UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .cluster, 18UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .endpoint, 19U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[2]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[2]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -2214,72 +2214,72 @@ class TestAccessControlCluster : public TestCommandBridge { [((MTRAccessControlClusterAccessControlEntryStruct *) actualValue[3]).targets count], static_cast(3))); VerifyOrReturn(CheckValueNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .cluster)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .endpoint, 24U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[0]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .cluster, 25UL)); VerifyOrReturn(CheckValueNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .endpoint)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[1]) .deviceType)); VerifyOrReturn(CheckValueNonNull("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .cluster)); VerifyOrReturn(CheckValue("Cluster", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .cluster, 26UL)); VerifyOrReturn(CheckValueNonNull("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .endpoint)); VerifyOrReturn(CheckValue("Endpoint", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .endpoint, 27U)); VerifyOrReturn(CheckValueNull("DeviceType", - ((MTRAccessControlClusterTarget *) ((MTRAccessControlClusterAccessControlEntryStruct *) - actualValue[3]) + ((MTRAccessControlClusterAccessControlTargetStruct *) ((MTRAccessControlClusterAccessControlEntryStruct *) + actualValue[3]) .targets[2]) .deviceType)); VerifyOrReturn(CheckValue("FabricIndex", @@ -4608,10 +4608,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -4792,10 +4792,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -4811,10 +4811,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -5003,10 +5003,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -5022,10 +5022,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -5217,10 +5217,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -5236,10 +5236,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -5432,10 +5432,10 @@ class Test_TC_ACE_1_1 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -6031,10 +6031,10 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -6046,10 +6046,10 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:29UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:29UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -6102,10 +6102,10 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { } { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:31UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = temp_3; } @@ -6117,10 +6117,10 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:40UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:40UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:0U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -53587,10 +53587,10 @@ class OTA_SuccessfulTransfer : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:41UL]; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = [NSNumber numberWithUnsignedInt:41UL]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -114534,10 +114534,10 @@ class TestAccessControlConstraints : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = nil; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = nil; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } @@ -114587,10 +114587,10 @@ class TestAccessControlConstraints : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init]; - temp_3[0] = [[MTRAccessControlClusterTarget alloc] init]; - ((MTRAccessControlClusterTarget *) temp_3[0]).cluster = nil; - ((MTRAccessControlClusterTarget *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:22U]; - ((MTRAccessControlClusterTarget *) temp_3[0]).deviceType = [NSNumber numberWithUnsignedInt:33UL]; + temp_3[0] = [[MTRAccessControlClusterAccessControlTargetStruct alloc] init]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).cluster = nil; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).endpoint = [NSNumber numberWithUnsignedShort:22U]; + ((MTRAccessControlClusterAccessControlTargetStruct *) temp_3[0]).deviceType = [NSNumber numberWithUnsignedInt:33UL]; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = temp_3; } From 9562ce812a4669d5d3d9a2f93dc0d27e357aa8d5 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 24 May 2023 15:40:03 -0400 Subject: [PATCH 14/38] Fix ZAP ci. (#26813) Merge conflict between new device being added and XML rename. --- examples/chef/devices/rootnode_pump_a811bb33a0.matter | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/chef/devices/rootnode_pump_a811bb33a0.matter b/examples/chef/devices/rootnode_pump_a811bb33a0.matter index 8859b11d79c201..8903b51e06c287 100644 --- a/examples/chef/devices/rootnode_pump_a811bb33a0.matter +++ b/examples/chef/devices/rootnode_pump_a811bb33a0.matter @@ -145,7 +145,7 @@ server cluster AccessControl = 31 { kRemoved = 2; } - struct Target { + struct AccessControlTargetStruct { nullable cluster_id cluster = 0; nullable endpoint_no endpoint = 1; nullable devtype_id deviceType = 2; @@ -155,7 +155,7 @@ server cluster AccessControl = 31 { fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; nullable fabric_sensitive int64u subjects[] = 3; - nullable fabric_sensitive Target targets[] = 4; + nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; fabric_idx fabricIndex = 254; } From 6ce2412af122fb20386cf13e967064587751d5d0 Mon Sep 17 00:00:00 2001 From: Jeff Tung <100387939+jtung-apple@users.noreply.github.com> Date: Wed, 24 May 2023 13:17:21 -0700 Subject: [PATCH 15/38] [Darwin] MTRAsyncCallbackWorkQueue tsan fix and API strengthening (#26800) --- .../CHIP/MTRAsyncCallbackWorkQueue.h | 3 + .../CHIP/MTRAsyncCallbackWorkQueue.mm | 75 ++++++++++++++++--- .../CHIP/MTRAsyncCallbackWorkQueue_Internal.h | 3 - 3 files changed, 68 insertions(+), 13 deletions(-) diff --git a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h index bad4ded93833b0..acb6da8053327c 100644 --- a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h +++ b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h @@ -54,6 +54,7 @@ typedef void (^MTRAsyncCallbackReadyHandler)(id context, NSUInteger retryCount); - (void)invalidate; // Work items may be enqueued from any queue or thread +// Note: Once a work item is enqueued, its handlers cannot be modified - (void)enqueueWorkItem:(MTRAsyncCallbackQueueWorkItem *)item; // TODO: Add a "set concurrency width" method to allow for more than 1 work item at a time @@ -71,10 +72,12 @@ typedef void (^MTRAsyncCallbackReadyHandler)(id context, NSUInteger retryCount); // Called by the creater of the work item when async work is done and should // be removed from the queue. The work queue will run the next work item. +// Note: This must only be called from within the readyHandler - (void)endWork; // Called by the creater of the work item when async work should be retried. // The work queue will call this workItem's readyHandler again. +// Note: This must only be called from within the readyHandler - (void)retryWork; @end diff --git a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm index e97ee154022cf6..2b31d07f004ec9 100644 --- a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm +++ b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm @@ -41,10 +41,13 @@ - (void)retryWork:(MTRAsyncCallbackQueueWorkItem *)workItem; @end @interface MTRAsyncCallbackQueueWorkItem () +@property (nonatomic, readonly) os_unfair_lock lock; @property (nonatomic, strong, readonly) dispatch_queue_t queue; @property (nonatomic, readwrite) NSUInteger retryCount; @property (nonatomic, strong) MTRAsyncCallbackWorkQueue * workQueue; +@property (nonatomic, readonly) BOOL enqueued; // Called by the queue +- (void)markedEnqueued; - (void)callReadyHandlerWithContext:(id)context; - (void)cancel; @end @@ -72,6 +75,13 @@ - (NSString *)description - (void)enqueueWorkItem:(MTRAsyncCallbackQueueWorkItem *)item { + if (item.enqueued) { + MTR_LOG_ERROR("MTRAsyncCallbackWorkQueue enqueueWorkItem: item cannot be enqueued twice"); + return; + } + + [item markedEnqueued]; + os_unfair_lock_lock(&_lock); item.workQueue = self; [self.items addObject:item]; @@ -163,12 +173,14 @@ @implementation MTRAsyncCallbackQueueWorkItem - (instancetype)initWithQueue:(dispatch_queue_t)queue { if (self = [super init]) { + _lock = OS_UNFAIR_LOCK_INIT; _queue = queue; } return self; } -- (void)invalidate +// assume lock is held +- (void)_invalidate { // Make sure we don't leak via handlers that close over us, as ours must. // This is a bit odd, since these are supposed to be non-nullable @@ -181,6 +193,38 @@ - (void)invalidate _cancelHandler = nil; } +- (void)invalidate +{ + os_unfair_lock_lock(&_lock); + [self _invalidate]; + os_unfair_lock_unlock(&_lock); +} + +- (void)markedEnqueued +{ + os_unfair_lock_lock(&_lock); + _enqueued = YES; + os_unfair_lock_unlock(&_lock); +} + +- (void)setReadyHandler:(MTRAsyncCallbackReadyHandler)readyHandler +{ + os_unfair_lock_lock(&_lock); + if (!_enqueued) { + _readyHandler = readyHandler; + } + os_unfair_lock_unlock(&_lock); +} + +- (void)setCancelHandler:(dispatch_block_t)cancelHandler +{ + os_unfair_lock_lock(&_lock); + if (!_enqueued) { + _cancelHandler = cancelHandler; + } + os_unfair_lock_unlock(&_lock); +} + - (void)endWork { [self.workQueue endWork:self]; @@ -196,12 +240,19 @@ - (void)retryWork - (void)callReadyHandlerWithContext:(id)context { dispatch_async(self.queue, ^{ - if (self.readyHandler == nil) { + os_unfair_lock_lock(&self->_lock); + MTRAsyncCallbackReadyHandler readyHandler = self->_readyHandler; + NSUInteger retryCount = self->_retryCount; + if (readyHandler) { + self->_retryCount++; + } + os_unfair_lock_unlock(&self->_lock); + + if (readyHandler == nil) { // Nothing to do here. [self endWork]; } else { - self.readyHandler(context, self.retryCount); - self.retryCount++; + readyHandler(context, retryCount); } }); } @@ -209,11 +260,15 @@ - (void)callReadyHandlerWithContext:(id)context // Called by the work queue - (void)cancel { - dispatch_async(self.queue, ^{ - if (self.cancelHandler != nil) { - self.cancelHandler(); - } - [self invalidate]; - }); + os_unfair_lock_lock(&self->_lock); + dispatch_block_t cancelHandler = self->_cancelHandler; + [self _invalidate]; + os_unfair_lock_unlock(&self->_lock); + + if (cancelHandler) { + dispatch_async(self.queue, ^{ + cancelHandler(); + }); + } } @end diff --git a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue_Internal.h b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue_Internal.h index 35eb765c3914ce..49e6343355a6d5 100644 --- a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue_Internal.h +++ b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue_Internal.h @@ -26,9 +26,6 @@ NS_ASSUME_NONNULL_BEGIN @interface MTRAsyncCallbackWorkQueue () // The MTRDevice object is only held and passed back as a reference and is opaque to the queue - (instancetype)initWithContext:(id _Nullable)context queue:(dispatch_queue_t)queue; - -// Called by DeviceController at device clean up time -- (void)invalidate; @end NS_ASSUME_NONNULL_END From 7e5267bcb544f7834c2e311c705d0efe000a690d Mon Sep 17 00:00:00 2001 From: manjunath-grl <102359958+manjunath-grl@users.noreply.github.com> Date: Thu, 25 May 2023 04:03:42 +0530 Subject: [PATCH 16/38] Test modified May 23 (#26758) * Modified tests app1/ciTests.json app1/config.zap app2/config.zap TC_ACL_2_10 TC_ACL_2_7 TC_ACL_2_8 TC_BIND_1_1 TC_CADMIN_1_10 TC_CADMIN_1_16 TC_CADMIN_1_21 TC_CADMIN_1_23 TC_CADMIN_1_4 TC_CADMIN_1_6 TC_CC_1_1 TC_CC_2_2 TC_DA_1_2 TC_DA_1_3 TC_DA_1_4 TC_DD_1_12 TC_DD_1_13 TC_DD_1_14 TC_DD_1_15 TC_DD_1_7 TC_DD_1_8 TC_DD_1_9 TC_DD_3_11 TC_DD_3_12 TC_DD_3_13 TC_DD_3_14 TC_DD_3_15 TC_DD_3_16 TC_DD_3_17 TC_DESC_1_1 TC_DGETH_1_1 TC_DGETH_2_1 TC_DGETH_2_2 TC_DGGEN_1_1 TC_DGGEN_2_1 TC_DGGEN_2_2 TC_DGGEN_2_3 TC_DGGEN_3_1 TC_DGSW_1_1 TC_DLOG_1_1 TC_FLW_2_2 TC_G_2_2 TC_G_2_3 TC_G_3_2 TC_MOD_1_1 TC_OO_2_4 TC_SC_3_2 TC_SC_4_1 TC_SC_5_1 TC_SC_5_2 TC_SC_6_1 TC_SU_2_1 TC_SU_2_7 TC_SWTCH_2_2 TC_ULABEL_1_1 TC_WNCV_3_1 TC_WNCV_3_2 TC_FLABEL_3_1_Simulated New simulated testcases TC_CC_3_4_Simulated TC_CC_4_5_Simulated TC_CC_5_4_Simulated TC_CC_6_4_Simulated TC_CC_7_5_Simulated TC_CC_9_4_Simulated TC_WNCV_6_1_Simulated TC_WNCV_7_1_Simulated TC_TMP_3_1_Simulated TC_TSUIC_3_1_Simulated TC_OO_3_1_Simulated TC_OO_3_2_Simulated TC_PCC_3_1_Simulated TC_ILL_3_1_Simulated TC_LVL_2_3_Simulated TC_DGSW_3_2_Simulated TC_DGTHREAD_3_2_Simulated TC_DGTHREAD_3_3_Simulated TC_DGTHREAD_3_4_Simulated TC_DGWIFI_3_2_Simulated TC_DGETH_3_2_Simulated * Auto generated files * Restyled by whitespace * Commented out the commission step from simulated tests * Modified test TC-ACL-2.7 TC-ACL-2.8 TC-ACL-2.10 TC-ULABEL-1.1 TC-TSTAT-2.2 TC-WNCV-3.1 TC-WNCV-3.2 * Auto generated files * Modified media cluster Feature PICS PICS.yaml Ci-pics-value TC-APPLAUNCHER-1.3 TC-AUDIOOUTPUT-1.8 TC-CHANNEL-1.6 TC-CONTENTLAUNCHER-1.11 TC-KEYPADINPUT-1.2 TC-KEYPADINPUT-3.2 TC-KEYPADINPUT-3.3 TC-MC-11.1 TC-MC-11.2 TC-MEDIAINPUT-1.4 TC-MEDIAPLAYBACK-1.7 * Modified tests TC-IDM-2.1 TC-IDM-7.1 TC-TSTAT-2.1 * Restyled by whitespace * Auto generated files --------- Co-authored-by: Restyled.io --- .../placeholder/linux/apps/app1/ciTests.json | 23 +- .../placeholder/linux/apps/app1/config.matter | 3357 ++++- .../placeholder/linux/apps/app1/config.zap | 11617 +++++++++++----- .../placeholder/linux/apps/app2/config.matter | 3353 ++++- .../placeholder/linux/apps/app2/config.zap | 10973 ++++++++++----- src/app/tests/suites/certification/PICS.yaml | 28 +- .../certification/Test_TC_ACL_2_10.yaml | 282 +- .../suites/certification/Test_TC_ACL_2_7.yaml | 157 +- .../suites/certification/Test_TC_ACL_2_8.yaml | 249 +- .../Test_TC_APPLAUNCHER_1_3.yaml | 4 +- .../Test_TC_AUDIOOUTPUT_1_8.yaml | 13 +- .../certification/Test_TC_BIND_1_1.yaml | 2 +- .../certification/Test_TC_CADMIN_1_10.yaml | 3 - .../certification/Test_TC_CADMIN_1_16.yaml | 3 - .../certification/Test_TC_CADMIN_1_21.yaml | 3 - .../certification/Test_TC_CADMIN_1_23.yaml | 3 - .../certification/Test_TC_CADMIN_1_4.yaml | 3 - .../certification/Test_TC_CADMIN_1_6.yaml | 3 - .../suites/certification/Test_TC_CC_1_1.yaml | 273 + .../suites/certification/Test_TC_CC_2_2.yaml | 686 +- .../suites/certification/Test_TC_CC_3_4.yaml | 375 - .../Test_TC_CC_3_4_Simulated.yaml | 123 + .../suites/certification/Test_TC_CC_4_5.yaml | 486 - .../Test_TC_CC_4_5_Simulated.yaml | 157 + .../suites/certification/Test_TC_CC_5_4.yaml | 494 - .../Test_TC_CC_5_4_Simulated.yaml | 166 + .../suites/certification/Test_TC_CC_6_4.yaml | 445 - .../Test_TC_CC_6_4_Simulated.yaml | 151 + .../suites/certification/Test_TC_CC_7_5.yaml | 478 - .../Test_TC_CC_7_5_Simulated.yaml | 180 + .../suites/certification/Test_TC_CC_9_4.yaml | 286 - .../Test_TC_CC_9_4_Simulated.yaml | 147 + .../certification/Test_TC_CHANNEL_1_6.yaml | 15 +- .../Test_TC_CONTENTLAUNCHER_1_11.yaml | 12 +- .../suites/certification/Test_TC_DA_1_2.yaml | 14 +- .../suites/certification/Test_TC_DA_1_3.yaml | 4 +- .../suites/certification/Test_TC_DA_1_4.yaml | 139 +- .../suites/certification/Test_TC_DD_1_12.yaml | 5 +- .../suites/certification/Test_TC_DD_1_13.yaml | 3 +- .../suites/certification/Test_TC_DD_1_14.yaml | 4 +- .../suites/certification/Test_TC_DD_1_15.yaml | 2 +- .../suites/certification/Test_TC_DD_1_7.yaml | 12 +- .../suites/certification/Test_TC_DD_1_8.yaml | 30 +- .../suites/certification/Test_TC_DD_1_9.yaml | 14 +- .../suites/certification/Test_TC_DD_3_11.yaml | 18 +- .../suites/certification/Test_TC_DD_3_12.yaml | 18 +- .../suites/certification/Test_TC_DD_3_13.yaml | 6 +- .../suites/certification/Test_TC_DD_3_14.yaml | 6 +- .../suites/certification/Test_TC_DD_3_15.yaml | 18 +- .../suites/certification/Test_TC_DD_3_16.yaml | 8 +- .../suites/certification/Test_TC_DD_3_17.yaml | 26 +- .../certification/Test_TC_DESC_1_1.yaml | 2 +- .../certification/Test_TC_DGETH_1_1.yaml | 58 +- .../certification/Test_TC_DGETH_2_1.yaml | 2 +- .../certification/Test_TC_DGETH_2_2.yaml | 2 +- .../certification/Test_TC_DGETH_3_2.yaml | 70 - .../Test_TC_DGETH_3_2_Simulated.yaml | 32 + .../certification/Test_TC_DGGEN_1_1.yaml | 2 +- .../certification/Test_TC_DGGEN_2_1.yaml | 2 +- .../certification/Test_TC_DGGEN_2_2.yaml | 106 +- .../certification/Test_TC_DGGEN_2_3.yaml | 2 +- .../certification/Test_TC_DGGEN_3_1.yaml | 8 +- .../certification/Test_TC_DGSW_1_1.yaml | 2 +- .../certification/Test_TC_DGSW_3_2.yaml | 120 - .../Test_TC_DGSW_3_2_Simulated.yaml | 32 + .../certification/Test_TC_DGTHREAD_3_2.yaml | 343 - .../Test_TC_DGTHREAD_3_2_Simulated.yaml | 113 + .../certification/Test_TC_DGTHREAD_3_3.yaml | 334 - .../Test_TC_DGTHREAD_3_3_Simulated.yaml | 113 + .../certification/Test_TC_DGTHREAD_3_4.yaml | 85 - .../Test_TC_DGTHREAD_3_4_Simulated.yaml | 37 + .../certification/Test_TC_DGWIFI_3_2.yaml | 121 - .../Test_TC_DGWIFI_3_2_Simulated.yaml | 32 + .../certification/Test_TC_DLOG_1_1.yaml | 2 +- .../Test_TC_FLABEL_3_1_Simulated.yaml | 2 +- .../suites/certification/Test_TC_FLW_2_2.yaml | 2 +- .../suites/certification/Test_TC_G_2_2.yaml | 1046 +- .../suites/certification/Test_TC_G_2_3.yaml | 568 +- .../suites/certification/Test_TC_G_3_2.yaml | 62 +- .../suites/certification/Test_TC_IDM_2_1.yaml | 30 +- .../suites/certification/Test_TC_IDM_7_1.yaml | 2267 +-- ..._1.yaml => Test_TC_ILL_3_1_Simulated.yaml} | 214 +- .../Test_TC_KEYPADINPUT_1_2.yaml | 14 +- .../Test_TC_KEYPADINPUT_3_2.yaml | 6 +- .../Test_TC_KEYPADINPUT_3_3.yaml | 20 +- .../suites/certification/Test_TC_LVL_2_3.yaml | 955 -- .../Test_TC_LVL_2_3_Simulated.yaml | 584 + .../suites/certification/Test_TC_MC_11_1.yaml | 2 +- .../suites/certification/Test_TC_MC_11_2.yaml | 2 +- .../certification/Test_TC_MEDIAINPUT_1_4.yaml | 7 +- .../Test_TC_MEDIAPLAYBACK_1_7.yaml | 12 +- .../suites/certification/Test_TC_MOD_1_1.yaml | 8 + .../suites/certification/Test_TC_OO_2_4.yaml | 2 +- .../suites/certification/Test_TC_OO_3_1.yaml | 578 - .../Test_TC_OO_3_1_Simulated.yaml | 374 + .../suites/certification/Test_TC_OO_3_2.yaml | 295 - .../Test_TC_OO_3_2_Simulated.yaml | 52 + .../suites/certification/Test_TC_PCC_3_1.yaml | 1012 -- .../Test_TC_PCC_3_1_Simulated.yaml | 494 + .../suites/certification/Test_TC_SC_3_2.yaml | 116 +- .../suites/certification/Test_TC_SC_4_1.yaml | 18 +- .../suites/certification/Test_TC_SC_5_1.yaml | 12 +- .../suites/certification/Test_TC_SC_6_1.yaml | 120 +- .../suites/certification/Test_TC_SU_2_1.yaml | 4 +- .../suites/certification/Test_TC_SU_2_7.yaml | 15 +- .../certification/Test_TC_SWTCH_2_2.yaml | 22 +- ..._1.yaml => Test_TC_TMP_3_1_Simulated.yaml} | 368 +- .../certification/Test_TC_TSTAT_2_1.yaml | 28 +- .../certification/Test_TC_TSTAT_2_2.yaml | 44 +- ....yaml => Test_TC_TSUIC_3_1_Simulated.yaml} | 492 +- .../certification/Test_TC_ULABEL_1_1.yaml | 2 +- .../certification/Test_TC_WNCV_3_1.yaml | 29 +- .../certification/Test_TC_WNCV_3_2.yaml | 31 +- .../certification/Test_TC_WNCV_6_1.yaml | 161 - .../Test_TC_WNCV_6_1_Simulated.yaml | 40 + .../certification/Test_TC_WNCV_7_1.yaml | 124 - .../Test_TC_WNCV_7_1_Simulated.yaml | 40 + .../tests/suites/certification/ci-pics-values | 28 +- src/app/tests/suites/ciTests.json | 1 - src/app/tests/suites/manualTests.json | 35 +- .../chip-tool/zap-generated/test/Commands.h | 5099 ++++--- .../zap-generated/test/Commands.h | 1849 ++- .../app1/zap-generated/test/Commands.h | 2903 ++++ .../app2/zap-generated/test/Commands.h | 2903 ++++ 124 files changed, 38780 insertions(+), 20809 deletions(-) delete mode 100644 src/app/tests/suites/certification/Test_TC_CC_3_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_CC_3_4_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_CC_4_5.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_CC_4_5_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_CC_5_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_CC_5_4_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_CC_6_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_CC_6_4_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_CC_7_5.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_CC_7_5_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_CC_9_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_CC_9_4_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml rename src/app/tests/suites/certification/{Test_TC_ILL_3_1.yaml => Test_TC_ILL_3_1_Simulated.yaml} (50%) delete mode 100644 src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_LVL_2_3_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_OO_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_OO_3_1_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_OO_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_OO_3_2_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_PCC_3_1_Simulated.yaml rename src/app/tests/suites/certification/{Test_TC_TMP_3_1.yaml => Test_TC_TMP_3_1_Simulated.yaml} (66%) rename src/app/tests/suites/certification/{Test_TC_TSUIC_3_1.yaml => Test_TC_TSUIC_3_1_Simulated.yaml} (57%) delete mode 100644 src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml diff --git a/examples/placeholder/linux/apps/app1/ciTests.json b/examples/placeholder/linux/apps/app1/ciTests.json index 2a505b5fa74961..f86e8b6d8e1e64 100644 --- a/examples/placeholder/linux/apps/app1/ciTests.json +++ b/examples/placeholder/linux/apps/app1/ciTests.json @@ -23,7 +23,28 @@ "Test_TC_OCC_2_4_Simulated", "Test_TC_ULABEL_3_1_Simulated", "Test_TC_FLABEL_3_1_Simulated", - "Test_TC_LTIME_1_1_Simulated" + "Test_TC_LTIME_1_1_Simulated", + "Test_TC_ILL_3_1_Simulated", + "Test_TC_DGSW_3_2_Simulated", + "Test_TC_DGETH_3_2_Simulated", + "Test_TC_DGWIFI_3_2_Simulated", + "Test_TC_WNCV_6_1_Simulated", + "Test_TC_WNCV_7_1_Simulated", + "Test_TC_CC_3_4_Simulated", + "Test_TC_CC_4_5_Simulated", + "Test_TC_CC_5_4_Simulated", + "Test_TC_CC_6_4_Simulated", + "Test_TC_CC_7_5_Simulated", + "Test_TC_CC_9_4_Simulated", + "Test_TC_DGTHREAD_3_2_Simulated", + "Test_TC_DGTHREAD_3_3_Simulated", + "Test_TC_DGTHREAD_3_4_Simulated", + "Test_TC_LVL_2_3_Simulated", + "Test_TC_OO_3_1_Simulated", + "Test_TC_OO_3_2_Simulated", + "Test_TC_TSUIC_3_1_Simulated", + "Test_TC_PCC_3_1_Simulated", + "Test_TC_TMP_3_1_Simulated" ], "collection": ["Test"] } diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index 1865188c3118af..2d73876882f721 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -369,6 +369,129 @@ server cluster OnOff = 6 { command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } +/** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ +client cluster LevelControl = 8 { + enum MoveMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + enum StepMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + bitmap Feature : BITMAP32 { + kOnOff = 0x1; + kLighting = 0x2; + kFrequency = 0x4; + } + + bitmap LevelControlOptions : BITMAP8 { + kExecuteIfOff = 0x1; + kCoupleColorTempToLevel = 0x2; + } + + readonly attribute nullable int8u currentLevel = 0; + readonly attribute optional int16u remainingTime = 1; + readonly attribute optional int8u minLevel = 2; + readonly attribute optional int8u maxLevel = 3; + readonly attribute optional int16u currentFrequency = 4; + readonly attribute optional int16u minFrequency = 5; + readonly attribute optional int16u maxFrequency = 6; + attribute LevelControlOptions options = 15; + attribute optional int16u onOffTransitionTime = 16; + attribute nullable int8u onLevel = 17; + attribute optional nullable int16u onTransitionTime = 18; + attribute optional nullable int16u offTransitionTime = 19; + attribute optional nullable int8u defaultMoveRate = 20; + attribute access(write: manage) optional nullable int8u startUpCurrentLevel = 16384; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToLevelRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToLevelWithOnOffRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveWithOnOffRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepWithOnOffRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopWithOnOffRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToClosestFrequencyRequest { + INT16U frequency = 0; + } + + /** Command description for MoveToLevel */ + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; + /** Command description for Move */ + command Move(MoveRequest): DefaultSuccess = 1; + /** Command description for Step */ + command Step(StepRequest): DefaultSuccess = 2; + /** Command description for Stop */ + command Stop(StopRequest): DefaultSuccess = 3; + /** Command description for MoveToLevelWithOnOff */ + command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4; + /** Command description for MoveWithOnOff */ + command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; + /** Command description for StepWithOnOff */ + command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; + /** Command description for StopWithOnOff */ + command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; + /** Change the currrent frequency to the provided one, or a close + approximation if the exact provided one is not possible. */ + command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8; +} + /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { enum MoveMode : ENUM8 { @@ -394,8 +517,17 @@ server cluster LevelControl = 8 { readonly attribute nullable int8u currentLevel = 0; readonly attribute int16u remainingTime = 1; + readonly attribute int8u minLevel = 2; + readonly attribute int8u maxLevel = 3; + readonly attribute int16u currentFrequency = 4; + readonly attribute int16u minFrequency = 5; + readonly attribute int16u maxFrequency = 6; attribute LevelControlOptions options = 15; + attribute int16u onOffTransitionTime = 16; attribute nullable int8u onLevel = 17; + attribute nullable int16u onTransitionTime = 18; + attribute nullable int16u offTransitionTime = 19; + attribute nullable int8u defaultMoveRate = 20; attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; @@ -1524,6 +1656,333 @@ server cluster SoftwareDiagnostics = 52 { command ResetWatermarks(): DefaultSuccess = 0; } +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +client cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute optional int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute optional int16u detachedRoleCount = 14; + readonly attribute optional int16u childRoleCount = 15; + readonly attribute optional int16u routerRoleCount = 16; + readonly attribute optional int16u leaderRoleCount = 17; + readonly attribute optional int16u attachAttemptCount = 18; + readonly attribute optional int16u partitionIdChangeCount = 19; + readonly attribute optional int16u betterPartitionAttachAttemptCount = 20; + readonly attribute optional int16u parentChangeCount = 21; + readonly attribute optional int32u txTotalCount = 22; + readonly attribute optional int32u txUnicastCount = 23; + readonly attribute optional int32u txBroadcastCount = 24; + readonly attribute optional int32u txAckRequestedCount = 25; + readonly attribute optional int32u txAckedCount = 26; + readonly attribute optional int32u txNoAckRequestedCount = 27; + readonly attribute optional int32u txDataCount = 28; + readonly attribute optional int32u txDataPollCount = 29; + readonly attribute optional int32u txBeaconCount = 30; + readonly attribute optional int32u txBeaconRequestCount = 31; + readonly attribute optional int32u txOtherCount = 32; + readonly attribute optional int32u txRetryCount = 33; + readonly attribute optional int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute optional int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute optional int32u txErrCcaCount = 36; + readonly attribute optional int32u txErrAbortCount = 37; + readonly attribute optional int32u txErrBusyChannelCount = 38; + readonly attribute optional int32u rxTotalCount = 39; + readonly attribute optional int32u rxUnicastCount = 40; + readonly attribute optional int32u rxBroadcastCount = 41; + readonly attribute optional int32u rxDataCount = 42; + readonly attribute optional int32u rxDataPollCount = 43; + readonly attribute optional int32u rxBeaconCount = 44; + readonly attribute optional int32u rxBeaconRequestCount = 45; + readonly attribute optional int32u rxOtherCount = 46; + readonly attribute optional int32u rxAddressFilteredCount = 47; + readonly attribute optional int32u rxDestAddrFilteredCount = 48; + readonly attribute optional int32u rxDuplicatedCount = 49; + readonly attribute optional int32u rxErrNoFrameCount = 50; + readonly attribute optional int32u rxErrUnknownNeighborCount = 51; + readonly attribute optional int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute optional int32u rxErrSecCount = 53; + readonly attribute optional int32u rxErrFcsCount = 54; + readonly attribute optional int32u rxErrOtherCount = 55; + readonly attribute optional nullable int64u activeTimestamp = 56; + readonly attribute optional nullable int64u pendingTimestamp = 57; + readonly attribute optional nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** Reception of this command SHALL reset the OverrunCount attributes to 0 */ + command ResetCounts(): DefaultSuccess = 0; +} + +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +server cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute int16u detachedRoleCount = 14; + readonly attribute int16u childRoleCount = 15; + readonly attribute int16u routerRoleCount = 16; + readonly attribute int16u leaderRoleCount = 17; + readonly attribute int16u attachAttemptCount = 18; + readonly attribute int16u partitionIdChangeCount = 19; + readonly attribute int16u betterPartitionAttachAttemptCount = 20; + readonly attribute int16u parentChangeCount = 21; + readonly attribute int32u txTotalCount = 22; + readonly attribute int32u txUnicastCount = 23; + readonly attribute int32u txBroadcastCount = 24; + readonly attribute int32u txAckRequestedCount = 25; + readonly attribute int32u txAckedCount = 26; + readonly attribute int32u txNoAckRequestedCount = 27; + readonly attribute int32u txDataCount = 28; + readonly attribute int32u txDataPollCount = 29; + readonly attribute int32u txBeaconCount = 30; + readonly attribute int32u txBeaconRequestCount = 31; + readonly attribute int32u txOtherCount = 32; + readonly attribute int32u txRetryCount = 33; + readonly attribute int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute int32u txErrCcaCount = 36; + readonly attribute int32u txErrAbortCount = 37; + readonly attribute int32u txErrBusyChannelCount = 38; + readonly attribute int32u rxTotalCount = 39; + readonly attribute int32u rxUnicastCount = 40; + readonly attribute int32u rxBroadcastCount = 41; + readonly attribute int32u rxDataCount = 42; + readonly attribute int32u rxDataPollCount = 43; + readonly attribute int32u rxBeaconCount = 44; + readonly attribute int32u rxBeaconRequestCount = 45; + readonly attribute int32u rxOtherCount = 46; + readonly attribute int32u rxAddressFilteredCount = 47; + readonly attribute int32u rxDestAddrFilteredCount = 48; + readonly attribute int32u rxDuplicatedCount = 49; + readonly attribute int32u rxErrNoFrameCount = 50; + readonly attribute int32u rxErrUnknownNeighborCount = 51; + readonly attribute int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute int32u rxErrSecCount = 53; + readonly attribute int32u rxErrFcsCount = 54; + readonly attribute int32u rxErrOtherCount = 55; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; +} + /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { enum AssociationFailureCauseEnum : ENUM8 { @@ -1636,6 +2095,86 @@ server cluster EthernetNetworkDiagnostics = 55 { command ResetCounts(): DefaultSuccess = 0; } +/** This Cluster serves two purposes towards a Node communicating with a Bridge: indicate that the functionality on + the Endpoint where it is placed (and its Parts) is bridged from a non-CHIP technology; and provide a centralized + collection of attributes that the Node MAY collect to aid in conveying information regarding the Bridged Device to a user, + such as the vendor name, the model name, or user-assigned name. */ +server cluster BridgedDeviceBasicInformation = 57 { + enum ColorEnum : ENUM8 { + kBlack = 0; + kNavy = 1; + kGreen = 2; + kTeal = 3; + kMaroon = 4; + kPurple = 5; + kOlive = 6; + kGray = 7; + kBlue = 8; + kLime = 9; + kAqua = 10; + kRed = 11; + kFuchsia = 12; + kYellow = 13; + kWhite = 14; + kNickel = 15; + kChrome = 16; + kBrass = 17; + kCopper = 18; + kSilver = 19; + kGold = 20; + } + + enum ProductFinishEnum : ENUM8 { + kOther = 0; + kMatte = 1; + kSatin = 2; + kPolished = 3; + kRugged = 4; + kFabric = 5; + } + + struct ProductAppearanceStruct { + ProductFinishEnum finish = 0; + nullable ColorEnum primaryColor = 1; + } + + critical event StartUp = 0 { + INT32U softwareVersion = 0; + } + + critical event ShutDown = 1 { + } + + info event Leave = 2 { + } + + info event ReachableChanged = 3 { + boolean reachableNewValue = 0; + } + + readonly attribute char_string<32> vendorName = 1; + readonly attribute vendor_id vendorID = 2; + readonly attribute char_string<32> productName = 3; + attribute char_string<32> nodeLabel = 5; + readonly attribute int16u hardwareVersion = 7; + readonly attribute char_string<64> hardwareVersionString = 8; + readonly attribute int32u softwareVersion = 9; + readonly attribute char_string<64> softwareVersionString = 10; + readonly attribute char_string<16> manufacturingDate = 11; + readonly attribute char_string<32> partNumber = 12; + readonly attribute long_char_string<256> productURL = 13; + readonly attribute char_string<64> productLabel = 14; + readonly attribute char_string<32> serialNumber = 15; + readonly attribute char_string<32> uniqueID = 18; + readonly attribute ProductAppearanceStruct productAppearance = 20; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster exposes interactions with a switch device, for the purpose of using those interactions by other devices. Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ @@ -2161,34 +2700,1094 @@ server cluster ModeSelect = 80 { command ChangeToMode(ChangeToModeRequest): DefaultSuccess = 0; } -/** Provides an interface for controlling and adjusting automatic window coverings. */ -server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { - kRollerShade = 0; - kRomanShade = 1; - kBalloonShade = 2; - kWovenWood = 3; - kPleatedShade = 4; - kCellularShade = 5; - kLayeredShade = 6; - kLayeredShade2D = 7; - kSheerShade = 8; - kTiltOnlyInteriorBlind = 9; - kInteriorBlind = 10; - kVerticalBlindStripCurtain = 11; - kInteriorVenetianBlind = 12; - kExteriorVenetianBlind = 13; - kLateralLeftCurtain = 14; - kLateralRightCurtain = 15; - kCentralCurtain = 16; - kRollerShutter = 17; - kExteriorVerticalScreen = 18; - kAwningTerracePatio = 19; - kAwningVerticalScreen = 20; - kTiltOnlyPergola = 21; - kSwingingShutter = 22; - kSlidingShutter = 23; - kUnknown = 255; +/** An interface to a generic way to secure a door */ +client cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute optional nullable DoorStateEnum doorState = 3; + attribute access(write: manage) optional int32u doorOpenEvents = 4; + attribute access(write: manage) optional int32u doorClosedEvents = 5; + attribute access(write: manage) optional int16u openPeriod = 6; + readonly attribute optional int16u numberOfTotalUsersSupported = 17; + readonly attribute optional int16u numberOfPINUsersSupported = 18; + readonly attribute optional int16u numberOfRFIDUsersSupported = 19; + readonly attribute optional int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute optional int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute optional int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute optional int8u maxPINCodeLength = 23; + readonly attribute optional int8u minPINCodeLength = 24; + readonly attribute optional int8u maxRFIDCodeLength = 25; + readonly attribute optional int8u minRFIDCodeLength = 26; + readonly attribute optional DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) optional char_string<3> language = 33; + attribute access(write: manage) optional int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) optional int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute optional DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) optional boolean enableLocalProgramming = 40; + attribute access(write: manage) optional boolean enableOneTouchLocking = 41; + attribute access(write: manage) optional boolean enableInsideStatusLED = 42; + attribute access(write: manage) optional boolean enablePrivacyModeButton = 43; + attribute access(write: administer) optional DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) optional int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) optional int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) optional boolean sendPINOverTheAir = 50; + attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) optional int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + request struct SetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DaysMaskMap daysMask = 2; + INT8U startHour = 3; + INT8U startMinute = 4; + INT8U endHour = 5; + INT8U endMinute = 6; + } + + request struct GetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetWeekDayScheduleResponse = 12 { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional DaysMaskMap daysMask = 3; + optional INT8U startHour = 4; + optional INT8U startMinute = 5; + optional INT8U endHour = 6; + optional INT8U endMinute = 7; + } + + request struct ClearWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + epoch_s localStartTime = 2; + epoch_s localEndTime = 3; + } + + request struct GetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetYearDayScheduleResponse = 15 { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional epoch_s localStartTime = 3; + optional epoch_s localEndTime = 4; + } + + request struct ClearYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetHolidayScheduleRequest { + INT8U holidayIndex = 0; + epoch_s localStartTime = 1; + epoch_s localEndTime = 2; + OperatingModeEnum operatingMode = 3; + } + + request struct GetHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + response struct GetHolidayScheduleResponse = 18 { + INT8U holidayIndex = 0; + DlStatus status = 1; + optional epoch_s localStartTime = 2; + optional epoch_s localEndTime = 3; + optional OperatingModeEnum operatingMode = 4; + } + + request struct ClearHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + request struct SetUserRequest { + DataOperationTypeEnum operationType = 0; + INT16U userIndex = 1; + nullable CHAR_STRING userName = 2; + nullable INT32U userUniqueID = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + nullable CredentialRuleEnum credentialRule = 6; + } + + request struct GetUserRequest { + INT16U userIndex = 0; + } + + response struct GetUserResponse = 28 { + INT16U userIndex = 0; + nullable CHAR_STRING userName = 1; + nullable INT32U userUniqueID = 2; + nullable UserStatusEnum userStatus = 3; + nullable UserTypeEnum userType = 4; + nullable CredentialRuleEnum credentialRule = 5; + nullable CredentialStruct credentials[] = 6; + nullable fabric_idx creatorFabricIndex = 7; + nullable fabric_idx lastModifiedFabricIndex = 8; + nullable INT16U nextUserIndex = 9; + } + + request struct ClearUserRequest { + INT16U userIndex = 0; + } + + request struct SetCredentialRequest { + DataOperationTypeEnum operationType = 0; + CredentialStruct credential = 1; + LONG_OCTET_STRING credentialData = 2; + nullable INT16U userIndex = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + } + + response struct SetCredentialResponse = 35 { + DlStatus status = 0; + nullable INT16U userIndex = 1; + nullable INT16U nextCredentialIndex = 2; + } + + request struct GetCredentialStatusRequest { + CredentialStruct credential = 0; + } + + response struct GetCredentialStatusResponse = 37 { + boolean credentialExists = 0; + nullable INT16U userIndex = 1; + nullable fabric_idx creatorFabricIndex = 2; + nullable fabric_idx lastModifiedFabricIndex = 3; + nullable INT16U nextCredentialIndex = 4; + } + + request struct ClearCredentialRequest { + nullable CredentialStruct credential = 0; + } + + request struct UnboltDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + /** This command causes the lock device to lock the door. */ + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + /** This command causes the lock device to unlock the door. */ + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + /** This command causes the lock device to unlock the door with a timeout parameter. */ + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; + /** Set a weekly repeating schedule for a specified user. */ + command access(invoke: administer) SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; + /** Retrieve the specific weekly schedule for the specific user. */ + command access(invoke: administer) GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; + /** Clear the specific weekly schedule or all weekly schedules for the specific user. */ + command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; + /** Set a time-specific schedule ID for a specified user. */ + command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; + /** Returns the year day schedule data for the specified schedule and user indexes. */ + command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; + /** Clears the specific year day schedule or all year day schedules for the specific user. */ + command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; + /** Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. */ + command access(invoke: administer) SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; + /** Get the holiday schedule for the specified index. */ + command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; + /** Clears the holiday schedule or all holiday schedules. */ + command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; + /** Set User into the lock. */ + timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; + /** Retrieve User. */ + command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; + /** Clears a User or all Users. */ + timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; + /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ + timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; + /** Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index. */ + command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; + /** Clear one, one type, or all credentials except ProgrammingPIN credential. */ + timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; + /** This command causes the lock device to unlock the door without pulling the latch. */ + timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; +} + +/** An interface to a generic way to secure a door */ +server cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute nullable DoorStateEnum doorState = 3; + attribute access(write: manage) int32u doorOpenEvents = 4; + attribute access(write: manage) int32u doorClosedEvents = 5; + attribute access(write: manage) int16u openPeriod = 6; + readonly attribute int16u numberOfTotalUsersSupported = 17; + readonly attribute int16u numberOfPINUsersSupported = 18; + readonly attribute int16u numberOfRFIDUsersSupported = 19; + readonly attribute int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute int8u maxPINCodeLength = 23; + readonly attribute int8u minPINCodeLength = 24; + readonly attribute int8u maxRFIDCodeLength = 25; + readonly attribute int8u minRFIDCodeLength = 26; + readonly attribute DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) char_string<3> language = 33; + attribute access(write: manage) int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) boolean enableLocalProgramming = 40; + attribute access(write: manage) boolean enableOneTouchLocking = 41; + attribute access(write: manage) boolean enableInsideStatusLED = 42; + attribute access(write: manage) boolean enablePrivacyModeButton = 43; + attribute access(write: administer) DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) boolean sendPINOverTheAir = 50; + attribute access(write: administer) boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; +} + +/** Provides an interface for controlling and adjusting automatic window coverings. */ +server cluster WindowCovering = 258 { + enum EndProductType : ENUM8 { + kRollerShade = 0; + kRomanShade = 1; + kBalloonShade = 2; + kWovenWood = 3; + kPleatedShade = 4; + kCellularShade = 5; + kLayeredShade = 6; + kLayeredShade2D = 7; + kSheerShade = 8; + kTiltOnlyInteriorBlind = 9; + kInteriorBlind = 10; + kVerticalBlindStripCurtain = 11; + kInteriorVenetianBlind = 12; + kExteriorVenetianBlind = 13; + kLateralLeftCurtain = 14; + kLateralRightCurtain = 15; + kCentralCurtain = 16; + kRollerShutter = 17; + kExteriorVerticalScreen = 18; + kAwningTerracePatio = 19; + kAwningVerticalScreen = 20; + kTiltOnlyPergola = 21; + kSwingingShutter = 22; + kSlidingShutter = 23; + kUnknown = 255; } enum Type : ENUM8 { @@ -2423,6 +4022,163 @@ server cluster PumpConfigurationAndControl = 512 { readonly attribute int16u clusterRevision = 65533; } +/** An interface for configuring and controlling the functionality of a thermostat. */ +client cluster Thermostat = 513 { + enum SetpointAdjustMode : ENUM8 { + kHeat = 0; + kCool = 1; + kBoth = 2; + } + + enum ThermostatControlSequence : ENUM8 { + kCoolingOnly = 0; + kCoolingWithReheat = 1; + kHeatingOnly = 2; + kHeatingWithReheat = 3; + kCoolingAndHeating = 4; + kCoolingAndHeatingWithReheat = 5; + } + + enum ThermostatRunningMode : ENUM8 { + kOff = 0; + kCool = 3; + kHeat = 4; + } + + enum ThermostatSystemMode : ENUM8 { + kOff = 0; + kAuto = 1; + kCool = 3; + kHeat = 4; + kEmergencyHeat = 5; + kPrecooling = 6; + kFanOnly = 7; + kDry = 8; + kSleep = 9; + } + + bitmap DayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + kAway = 0x80; + } + + bitmap Feature : BITMAP32 { + kHeating = 0x1; + kCooling = 0x2; + kOccupancy = 0x4; + kScheduleConfiguration = 0x8; + kSetback = 0x10; + kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; + } + + bitmap ModeForSequence : BITMAP8 { + kHeatSetpointPresent = 0x1; + kCoolSetpointPresent = 0x2; + } + + struct ThermostatScheduleTransition { + int16u transitionTime = 0; + nullable int16s heatSetpoint = 1; + nullable int16s coolSetpoint = 2; + } + + readonly attribute nullable int16s localTemperature = 0; + readonly attribute optional nullable int16s outdoorTemperature = 1; + readonly attribute optional bitmap8 occupancy = 2; + readonly attribute optional int16s absMinHeatSetpointLimit = 3; + readonly attribute optional int16s absMaxHeatSetpointLimit = 4; + readonly attribute optional int16s absMinCoolSetpointLimit = 5; + readonly attribute optional int16s absMaxCoolSetpointLimit = 6; + readonly attribute optional int8u PICoolingDemand = 7; + readonly attribute optional int8u PIHeatingDemand = 8; + attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9; + attribute access(write: manage) optional int8s localTemperatureCalibration = 16; + attribute optional int16s occupiedCoolingSetpoint = 17; + attribute optional int16s occupiedHeatingSetpoint = 18; + attribute optional int16s unoccupiedCoolingSetpoint = 19; + attribute optional int16s unoccupiedHeatingSetpoint = 20; + attribute access(write: manage) optional int16s minHeatSetpointLimit = 21; + attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) optional int16s minCoolSetpointLimit = 23; + attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) optional int8s minSetpointDeadBand = 25; + attribute access(write: manage) optional bitmap8 remoteSensing = 26; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; + readonly attribute optional enum8 thermostatRunningMode = 30; + readonly attribute optional enum8 startOfWeek = 32; + readonly attribute optional int8u numberOfWeeklyTransitions = 33; + readonly attribute optional int8u numberOfDailyTransitions = 34; + attribute access(write: manage) optional enum8 temperatureSetpointHold = 35; + attribute access(write: manage) optional nullable int16u temperatureSetpointHoldDuration = 36; + attribute access(write: manage) optional bitmap8 thermostatProgrammingOperationMode = 37; + readonly attribute optional bitmap16 thermostatRunningState = 41; + readonly attribute optional enum8 setpointChangeSource = 48; + readonly attribute optional nullable int16s setpointChangeAmount = 49; + readonly attribute optional epoch_s setpointChangeSourceTimestamp = 50; + attribute access(write: manage) optional nullable int8u occupiedSetback = 52; + readonly attribute optional nullable int8u occupiedSetbackMin = 53; + readonly attribute optional nullable int8u occupiedSetbackMax = 54; + attribute access(write: manage) optional nullable int8u unoccupiedSetback = 55; + readonly attribute optional nullable int8u unoccupiedSetbackMin = 56; + readonly attribute optional nullable int8u unoccupiedSetbackMax = 57; + attribute access(write: manage) optional int8u emergencyHeatDelta = 58; + attribute access(write: manage) optional enum8 ACType = 64; + attribute access(write: manage) optional int16u ACCapacity = 65; + attribute access(write: manage) optional enum8 ACRefrigerantType = 66; + attribute access(write: manage) optional enum8 ACCompressorType = 67; + attribute access(write: manage) optional bitmap32 ACErrorCode = 68; + attribute access(write: manage) optional enum8 ACLouverPosition = 69; + readonly attribute optional nullable int16s ACCoilTemperature = 70; + attribute access(write: manage) optional enum8 ACCapacityformat = 71; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SetpointRaiseLowerRequest { + SetpointAdjustMode mode = 0; + INT8S amount = 1; + } + + response struct GetWeeklyScheduleResponse = 0 { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct SetWeeklyScheduleRequest { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct GetWeeklyScheduleRequest { + DayOfWeek daysToReturn = 0; + ModeForSequence modeToReturn = 1; + } + + /** Command description for SetpointRaiseLower */ + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; + /** Command description for SetWeeklySchedule */ + command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; + /** Command description for GetWeeklySchedule */ + command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; + /** The Clear Weekly Schedule command is used to clear the weekly schedule. */ + command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; +} + /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { enum SetpointAdjustMode : ENUM8 { @@ -2491,21 +4247,53 @@ server 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) 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; @@ -2540,6 +4328,324 @@ server cluster ThermostatUserInterfaceConfiguration = 516 { readonly attribute int16u clusterRevision = 65533; } +/** Attributes and commands for controlling the color properties of a color-capable light. */ +client cluster ColorControl = 768 { + enum ColorLoopAction : ENUM8 { + kDeactivate = 0; + kActivateFromColorLoopStartEnhancedHue = 1; + kActivateFromEnhancedCurrentHue = 2; + } + + enum ColorLoopDirection : ENUM8 { + kDecrementHue = 0; + kIncrementHue = 1; + } + + enum ColorMode : ENUM8 { + kCurrentHueAndCurrentSaturation = 0; + kCurrentXAndCurrentY = 1; + kColorTemperature = 2; + } + + enum HueDirection : ENUM8 { + kShortestDistance = 0; + kLongestDistance = 1; + kUp = 2; + kDown = 3; + } + + enum HueMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum HueStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + enum SaturationMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum SaturationStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + bitmap ColorCapabilities : BITMAP16 { + kHueSaturationSupported = 0x1; + kEnhancedHueSupported = 0x2; + kColorLoopSupported = 0x4; + kXYAttributesSupported = 0x8; + kColorTemperatureSupported = 0x10; + } + + bitmap ColorLoopUpdateFlags : BITMAP8 { + kUpdateAction = 0x1; + kUpdateDirection = 0x2; + kUpdateTime = 0x4; + kUpdateStartHue = 0x8; + } + + bitmap Feature : BITMAP32 { + kHueAndSaturation = 0x1; + kEnhancedHue = 0x2; + kColorLoop = 0x4; + kXy = 0x8; + kColorTemperature = 0x10; + } + + readonly attribute optional int8u currentHue = 0; + readonly attribute optional int8u currentSaturation = 1; + readonly attribute optional int16u remainingTime = 2; + readonly attribute optional int16u currentX = 3; + readonly attribute optional int16u currentY = 4; + readonly attribute optional enum8 driftCompensation = 5; + readonly attribute optional char_string<254> compensationText = 6; + readonly attribute optional int16u colorTemperatureMireds = 7; + readonly attribute enum8 colorMode = 8; + attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute optional int16u primary1X = 17; + readonly attribute optional int16u primary1Y = 18; + readonly attribute optional nullable int8u primary1Intensity = 19; + readonly attribute optional int16u primary2X = 21; + readonly attribute optional int16u primary2Y = 22; + readonly attribute optional nullable int8u primary2Intensity = 23; + readonly attribute optional int16u primary3X = 25; + readonly attribute optional int16u primary3Y = 26; + readonly attribute optional nullable int8u primary3Intensity = 27; + readonly attribute optional int16u primary4X = 32; + readonly attribute optional int16u primary4Y = 33; + readonly attribute optional nullable int8u primary4Intensity = 34; + readonly attribute optional int16u primary5X = 36; + readonly attribute optional int16u primary5Y = 37; + readonly attribute optional nullable int8u primary5Intensity = 38; + readonly attribute optional int16u primary6X = 40; + readonly attribute optional int16u primary6Y = 41; + readonly attribute optional nullable int8u primary6Intensity = 42; + attribute access(write: manage) optional int16u whitePointX = 48; + attribute access(write: manage) optional int16u whitePointY = 49; + attribute access(write: manage) optional int16u colorPointRX = 50; + attribute access(write: manage) optional int16u colorPointRY = 51; + attribute access(write: manage) optional nullable int8u colorPointRIntensity = 52; + attribute access(write: manage) optional int16u colorPointGX = 54; + attribute access(write: manage) optional int16u colorPointGY = 55; + attribute access(write: manage) optional nullable int8u colorPointGIntensity = 56; + attribute access(write: manage) optional int16u colorPointBX = 58; + attribute access(write: manage) optional int16u colorPointBY = 59; + attribute access(write: manage) optional nullable int8u colorPointBIntensity = 60; + readonly attribute optional int16u enhancedCurrentHue = 16384; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute optional int8u colorLoopActive = 16386; + readonly attribute optional int8u colorLoopDirection = 16387; + readonly attribute optional int16u colorLoopTime = 16388; + readonly attribute optional int16u colorLoopStartEnhancedHue = 16389; + readonly attribute optional int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute optional int16u colorTempPhysicalMinMireds = 16395; + readonly attribute optional int16u colorTempPhysicalMaxMireds = 16396; + readonly attribute optional int16u coupleColorTempToLevelMinMireds = 16397; + attribute access(write: manage) optional nullable int16u startUpColorTemperatureMireds = 16400; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorRequest { + INT16U colorX = 0; + INT16U colorY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveColorRequest { + INT16S rateX = 0; + INT16S rateY = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepColorRequest { + INT16S stepX = 0; + INT16S stepY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + /** Move to specified hue. */ + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + /** Move hue up or down at specified rate. */ + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + /** Step hue up or down by specified size at specified rate. */ + command StepHue(StepHueRequest): DefaultSuccess = 2; + /** Move to specified saturation. */ + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + /** Move saturation up or down at specified rate. */ + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + /** Step saturation up or down by specified size at specified rate. */ + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + /** Move to hue and saturation. */ + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; + /** Move to specified color. */ + command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; + /** Moves the color. */ + command MoveColor(MoveColorRequest): DefaultSuccess = 8; + /** Steps the lighting to a specific color. */ + command StepColor(StepColorRequest): DefaultSuccess = 9; + /** Move to a specific color temperature. */ + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + /** Command description for EnhancedMoveToHue */ + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + /** Command description for EnhancedMoveHue */ + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + /** Command description for EnhancedStepHue */ + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + /** Command description for EnhancedMoveToHueAndSaturation */ + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + /** Command description for ColorLoopSet */ + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + /** Command description for StopMoveStep */ + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + /** Command description for MoveColorTemperature */ + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + /** Command description for StepColorTemperature */ + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; +} + /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { enum ColorLoopAction : ENUM8 { @@ -2611,9 +4717,56 @@ server cluster ColorControl = 768 { kColorTemperature = 0x10; } + readonly attribute int8u currentHue = 0; + readonly attribute int8u currentSaturation = 1; + 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; + readonly attribute int8u colorLoopDirection = 16387; + readonly attribute int16u colorLoopTime = 16388; + readonly attribute int16u colorLoopStartEnhancedHue = 16389; + readonly attribute int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute int16u colorTempPhysicalMinMireds = 16395; + readonly attribute int16u colorTempPhysicalMaxMireds = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; attribute access(write: manage) nullable int16u startUpColorTemperatureMireds = 16400; readonly attribute command_id generatedCommandList[] = 65528; @@ -2623,6 +4776,59 @@ server cluster ColorControl = 768 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + request struct MoveToColorRequest { INT16U colorX = 0; INT16U colorY = 1; @@ -2646,9 +4852,97 @@ server cluster ColorControl = 768 { BITMAP8 optionsOverride = 4; } + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + command StepHue(StepHueRequest): DefaultSuccess = 2; + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; command MoveColor(MoveColorRequest): DefaultSuccess = 8; command StepColor(StepColorRequest): DefaultSuccess = 9; + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; } /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ @@ -2803,21 +5097,378 @@ server cluster OccupancySensing = 1030 { readonly attribute int16u clusterRevision = 65533; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -client cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the current Channel on a device. */ +client cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute optional ChannelInfoStruct channelList[] = 0; + readonly attribute optional nullable LineupInfoStruct lineup = 1; + readonly attribute optional nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + response struct ChangeChannelResponse = 1 { + ChannelStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + /** Change the channel on the media player to the channel case-insensitive exact matching the value passed as an argument. */ + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + /** Change the channel on the media plaeyer to the channel with the given Number in the ChannelList attribute. */ + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + /** This command provides channel up and channel down functionality, but allows channel index jumps of size Count. When the value of the increase or decrease is larger than the number of channels remaining in the given direction, then the behavior SHALL be to return to the beginning (or end) of the channel list and continue. For example, if the current channel is at index 0 and count value of -1 is given, then the current channel should change to the last channel. */ + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for controlling the current Channel on a device. */ +server cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute ChannelInfoStruct channelList[] = 0; + readonly attribute nullable LineupInfoStruct lineup = 1; + readonly attribute nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +client cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute optional int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct NavigateTargetRequest { + INT8U target = 0; + optional CHAR_STRING data = 1; + } + + response struct NavigateTargetResponse = 1 { + TargetNavigatorStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + /** Upon receipt, this SHALL navigation the UX to the target identified. */ + command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +server cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +client cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute optional nullable epoch_us startTime = 1; + readonly attribute optional nullable int64u duration = 2; + readonly attribute optional nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute optional single playbackSpeed = 4; + readonly attribute optional nullable int64u seekRangeEnd = 5; + readonly attribute optional nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct SeekRequest { + INT64U position = 0; + } + + /** Upon receipt, this SHALL play media. */ + command Play(): PlaybackResponse = 0; + /** Upon receipt, this SHALL pause media. */ + command Pause(): PlaybackResponse = 1; + /** Upon receipt, this SHALL stop media. User experience is context-specific. This will often navigate the user back to the location where media was originally launched. */ + command Stop(): PlaybackResponse = 2; + /** Upon receipt, this SHALL Start Over with the current media playback item. */ + command StartOver(): PlaybackResponse = 3; + /** Upon receipt, this SHALL cause the handler to be invoked for "Previous". User experience is context-specific. This will often Go back to the previous media playback item. */ + command Previous(): PlaybackResponse = 4; + /** Upon receipt, this SHALL cause the handler to be invoked for "Next". User experience is context-specific. This will often Go forward to the next media playback item. */ + command Next(): PlaybackResponse = 5; + /** Upon receipt, this SHALL Rewind through media. Different Rewind speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command Rewind(): PlaybackResponse = 6; + /** Upon receipt, this SHALL Advance through media. Different FF speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command FastForward(): PlaybackResponse = 7; + /** Upon receipt, this SHALL Skip forward in the media by the given number of seconds, using the data as follows: */ + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +server cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute nullable epoch_us startTime = 1; + readonly attribute nullable int64u duration = 2; + readonly attribute nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute single playbackSpeed = 4; + readonly attribute nullable int64u seekRangeEnd = 5; + readonly attribute nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SeekRequest { + INT64U position = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + command Play(): PlaybackResponse = 0; + command Pause(): PlaybackResponse = 1; + command Stop(): PlaybackResponse = 2; + command StartOver(): PlaybackResponse = 3; + command Previous(): PlaybackResponse = 4; + command Next(): PlaybackResponse = 5; + command Rewind(): PlaybackResponse = 6; + command FastForward(): PlaybackResponse = 7; + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +client cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute optional int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2825,35 +5476,55 @@ client cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - /** Upon receipt, this SHALL navigation the UX to the target identified. */ - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + /** Upon receipt, this SHALL change the input on the media device to the input at a specific index in the Input List. */ + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL display the active status of the input list on screen. */ + command ShowInputStatus(): DefaultSuccess = 1; + /** Upon receipt, this SHALL hide the input list from the screen. */ + command HideInputStatus(): DefaultSuccess = 2; + /** Upon receipt, this SHALL rename the input at a specific index in the Input List. Updates to the input name SHALL appear in the TV settings menus. */ + command RenameInput(RenameInputRequest): DefaultSuccess = 3; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -server cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +server cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2861,17 +5532,32 @@ server cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + command ShowInputStatus(): DefaultSuccess = 1; + command HideInputStatus(): DefaultSuccess = 2; + command RenameInput(RenameInputRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for managing low power mode on a device. */ +client cluster LowPower = 1288 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** This command shall put the device into low power mode. */ + command Sleep(): DefaultSuccess = 0; } /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ @@ -3105,16 +5791,6 @@ server cluster KeypadInput = 1289 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - - request struct SendKeyRequest { - CecKeyCode keyCode = 0; - } - - response struct SendKeyResponse = 1 { - KeypadInputStatusEnum status = 0; - } - - command SendKey(SendKeyRequest): SendKeyResponse = 0; } /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ @@ -3331,6 +6007,183 @@ server cluster ContentLauncher = 1290 { command LaunchURL(LaunchURLRequest): LauncherResponse = 1; } +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +client cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute optional int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + /** Upon receipt, this SHALL change the output on the media device to the output at a specific index in the Output List. */ + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL rename the output at a specific index in the Output List. Updates to the output name SHALL appear in the TV settings menus. */ + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +server cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +client cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute optional INT16U catalogList[] = 0; + attribute optional nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LaunchAppRequest { + optional ApplicationStruct application = 0; + optional OCTET_STRING data = 1; + } + + request struct StopAppRequest { + optional ApplicationStruct application = 0; + } + + request struct HideAppRequest { + optional ApplicationStruct application = 0; + } + + response struct LauncherResponse = 3 { + ApplicationLauncherStatusEnum status = 0; + optional OCTET_STRING data = 1; + } + + /** Upon receipt, this SHALL launch the specified app with optional data. The TV Device SHALL launch and bring to foreground the identified application in the command if the application is not already launched and in foreground. The TV Device SHALL update state attribute on the Application Basic cluster of the Endpoint corresponding to the launched application. This command returns a Launch Response. */ + command LaunchApp(LaunchAppRequest): LauncherResponse = 0; + /** Upon receipt on a Video Player endpoint this SHALL stop the specified application if it is running. */ + command StopApp(StopAppRequest): LauncherResponse = 1; + /** Upon receipt on a Video Player endpoint this SHALL hide the specified application if it is running and visible. */ + command HideApp(HideAppRequest): LauncherResponse = 2; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +server cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute INT16U catalogList[] = 0; + attribute nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ client cluster ApplicationBasic = 1293 { enum ApplicationStatusEnum : ENUM8 { @@ -3391,30 +6244,86 @@ server cluster ApplicationBasic = 1293 { readonly attribute int16u clusterRevision = 65533; } +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +client cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ + timed command Login(LoginRequest): DefaultSuccess = 2; + /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ + timed command Logout(): DefaultSuccess = 3; +} + +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +server cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + timed command Login(LoginRequest): DefaultSuccess = 2; + timed command Logout(): DefaultSuccess = 3; +} + endpoint 0 { device type anonymousEndpointType = 65280, version 1; - binding cluster OnOff; binding cluster GeneralCommissioning; + binding cluster ThreadNetworkDiagnostics; binding cluster Switch; binding cluster OperationalCredentials; binding cluster ModeSelect; + binding cluster DoorLock; + binding cluster Thermostat; binding cluster ThermostatUserInterfaceConfiguration; binding cluster TemperatureMeasurement; binding cluster RelativeHumidityMeasurement; + binding cluster Channel; binding cluster TargetNavigator; + binding cluster MediaPlayback; + binding cluster MediaInput; + binding cluster LowPower; binding cluster KeypadInput; binding cluster ContentLauncher; + binding cluster AudioOutput; + binding cluster ApplicationLauncher; binding cluster ApplicationBasic; - - server cluster OnOff { - ram attribute onOff default = 0x00; - ram attribute globalSceneControl default = 0x01; - ram attribute onTime default = 0x0000; - ram attribute offWaitTime default = 0x0000; - ram attribute startUpOnOff default = 0xFF; - ram attribute featureMap default = 0x0001; - ram attribute clusterRevision default = 4; - } + binding cluster AccountLogin; server cluster Descriptor { callback attribute deviceTypeList; @@ -3574,6 +6483,73 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster ThreadNetworkDiagnostics { + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount default = 0; + callback attribute neighborTable default = 0; + callback attribute routeTable default = 0; + callback attribute partitionId default = 0; + callback attribute weighting default = 0; + callback attribute dataVersion default = 0; + callback attribute stableDataVersion default = 0; + callback attribute leaderRouterId default = 0; + callback attribute detachedRoleCount default = 0; + callback attribute childRoleCount default = 0; + callback attribute routerRoleCount default = 0; + callback attribute leaderRoleCount default = 0; + callback attribute attachAttemptCount default = 0; + callback attribute partitionIdChangeCount default = 0; + callback attribute betterPartitionAttachAttemptCount default = 0; + callback attribute parentChangeCount default = 0; + callback attribute txTotalCount default = 0; + callback attribute txUnicastCount default = 0; + callback attribute txBroadcastCount default = 0; + callback attribute txAckRequestedCount default = 0; + callback attribute txAckedCount default = 0; + callback attribute txNoAckRequestedCount default = 0; + callback attribute txDataCount default = 0; + callback attribute txDataPollCount default = 0; + callback attribute txBeaconCount default = 0; + callback attribute txBeaconRequestCount default = 0; + callback attribute txOtherCount default = 0; + callback attribute txRetryCount default = 0; + callback attribute txDirectMaxRetryExpiryCount default = 0; + callback attribute txIndirectMaxRetryExpiryCount default = 0; + callback attribute txErrCcaCount default = 0; + callback attribute txErrAbortCount default = 0; + callback attribute txErrBusyChannelCount default = 0; + callback attribute rxTotalCount default = 0; + callback attribute rxUnicastCount default = 0; + callback attribute rxBroadcastCount default = 0; + callback attribute rxDataCount default = 0; + callback attribute rxDataPollCount default = 0; + callback attribute rxBeaconCount default = 0; + callback attribute rxBeaconRequestCount default = 0; + callback attribute rxOtherCount default = 0; + callback attribute rxAddressFilteredCount default = 0; + callback attribute rxDestAddrFilteredCount default = 0; + callback attribute rxDuplicatedCount default = 0; + callback attribute rxErrNoFrameCount default = 0; + callback attribute rxErrUnknownNeighborCount default = 0; + callback attribute rxErrInvalidSrcAddrCount default = 0; + callback attribute rxErrSecCount default = 0; + callback attribute rxErrFcsCount default = 0; + callback attribute rxErrOtherCount default = 0; + callback attribute activeTimestamp default = 0; + callback attribute pendingTimestamp default = 0; + callback attribute delay default = 0; + callback attribute securityPolicy; + callback attribute channelPage0Mask; + callback attribute operationalDatasetComponents; + callback attribute activeNetworkFaultsList; + ram attribute clusterRevision default = 1; + } + server cluster WiFiNetworkDiagnostics { emits event Disconnection; emits event AssociationFailure; @@ -3609,6 +6585,29 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster BridgedDeviceBasicInformation { + emits event StartUp; + emits event ShutDown; + emits event Leave; + callback attribute vendorName; + callback attribute vendorID; + callback attribute productName; + persist attribute nodeLabel; + callback attribute hardwareVersion; + callback attribute hardwareVersionString; + callback attribute softwareVersion; + callback attribute softwareVersionString; + callback attribute manufacturingDate; + callback attribute partNumber; + callback attribute productURL; + callback attribute productLabel; + callback attribute serialNumber; + callback attribute uniqueID; + callback attribute productAppearance; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 2; + } + server cluster Switch { ram attribute numberOfPositions default = 2; ram attribute currentPosition; @@ -3657,6 +6656,46 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster DoorLock { + callback attribute lockState; + callback attribute lockType; + ram attribute actuatorEnabled; + callback attribute doorState; + callback attribute doorOpenEvents; + callback attribute doorClosedEvents; + callback attribute openPeriod; + callback attribute numberOfTotalUsersSupported default = 0; + callback attribute numberOfPINUsersSupported default = 0; + callback attribute numberOfRFIDUsersSupported default = 0; + callback attribute numberOfWeekDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfYearDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfHolidaySchedulesSupported default = 0; + callback attribute maxPINCodeLength; + callback attribute minPINCodeLength; + callback attribute maxRFIDCodeLength; + callback attribute minRFIDCodeLength; + callback attribute credentialRulesSupport default = 1; + callback attribute numberOfCredentialsSupportedPerUser default = 0; + callback attribute language; + callback attribute LEDSettings default = 0; + callback attribute autoRelockTime; + callback attribute soundVolume default = 0; + callback attribute operatingMode default = 0; + callback attribute supportedOperatingModes default = 65526; + callback attribute defaultConfigurationRegister default = 0; + callback attribute enableLocalProgramming default = 1; + callback attribute enableOneTouchLocking default = 0; + callback attribute enableInsideStatusLED default = 0; + callback attribute enablePrivacyModeButton default = 0; + callback attribute localProgrammingFeatures default = 0; + callback attribute wrongCodeEntryLimit; + callback attribute userCodeTemporaryDisableTime; + callback attribute sendPINOverTheAir default = 0; + callback attribute requirePINforRemoteOperation default = 0; + callback attribute expiringUserTimeout; + ram attribute clusterRevision default = 6; + } + server cluster WindowCovering { ram attribute type default = 0x00; persist attribute currentPositionLift default = 0x7FFF; @@ -3710,21 +6749,53 @@ endpoint 0 { server cluster Thermostat { ram attribute localTemperature; + callback attribute outdoorTemperature; + callback attribute occupancy default = 1; ram attribute absMinHeatSetpointLimit default = 0x02BC; + callback attribute absMaxHeatSetpointLimit default = 0x0BB8; ram attribute absMinCoolSetpointLimit default = 0x0640; ram attribute absMaxCoolSetpointLimit default = 0x0C80; + ram attribute PICoolingDemand; + ram attribute PIHeatingDemand; + callback attribute HVACSystemTypeConfiguration default = 0; + callback attribute localTemperatureCalibration default = 0; ram attribute occupiedCoolingSetpoint default = 0x0A28; ram attribute occupiedHeatingSetpoint default = 0x07D0; + callback attribute unoccupiedCoolingSetpoint default = 0x0A28; + callback attribute unoccupiedHeatingSetpoint default = 0x07D0; ram attribute minHeatSetpointLimit default = 0x02BC; ram attribute maxHeatSetpointLimit default = 0x0BB8; ram attribute minCoolSetpointLimit default = 0x0640; ram attribute maxCoolSetpointLimit default = 0x0C80; ram attribute minSetpointDeadBand default = 0x19; + callback attribute remoteSensing default = 0x0; ram attribute controlSequenceOfOperation default = 0x04; ram attribute systemMode default = 0x01; + callback attribute thermostatRunningMode default = 0x00; ram attribute startOfWeek default = 0; ram attribute numberOfWeeklyTransitions default = 7; ram attribute numberOfDailyTransitions default = 4; + ram attribute temperatureSetpointHold default = 0x00; + callback attribute temperatureSetpointHoldDuration; + callback attribute thermostatProgrammingOperationMode default = 0x00; + callback attribute thermostatRunningState; + callback attribute setpointChangeSource default = 0x00; + callback attribute setpointChangeAmount; + callback attribute setpointChangeSourceTimestamp default = 0x00; + callback attribute occupiedSetback; + callback attribute occupiedSetbackMin; + callback attribute occupiedSetbackMax; + callback attribute unoccupiedSetback; + callback attribute unoccupiedSetbackMin; + callback attribute unoccupiedSetbackMax; + callback attribute emergencyHeatDelta default = 0x009F6; + callback attribute ACType default = 0x00; + callback attribute ACCapacity default = 0x00; + callback attribute ACRefrigerantType; + callback attribute ACCompressorType default = 0x00; + callback attribute ACLouverPosition default = 0x00; + callback attribute ACCoilTemperature; + callback attribute ACCapacityformat default = 0x00; ram attribute featureMap default = 0x000b; ram attribute clusterRevision default = 5; } @@ -3794,6 +6865,14 @@ endpoint 0 { ram attribute clusterRevision default = 3; } + server cluster Channel { + callback attribute channelList; + callback attribute lineup; + callback attribute currentChannel; + ram attribute featureMap default = 0; + callback attribute clusterRevision default = 1; + } + server cluster TargetNavigator { callback attribute targetList; ram attribute currentTarget default = 0; @@ -3804,6 +6883,24 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster MediaPlayback { + ram attribute currentState; + ram attribute startTime; + ram attribute duration; + callback attribute sampledPosition; + ram attribute playbackSpeed default = 1; + ram attribute seekRangeEnd; + ram attribute seekRangeStart default = 1; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster MediaInput { + callback attribute inputList; + callback attribute currentInput; + ram attribute clusterRevision default = 1; + } + server cluster KeypadInput { callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3822,6 +6919,20 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster AudioOutput { + callback attribute outputList; + ram attribute currentOutput; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster ApplicationLauncher { + callback attribute catalogList; + callback attribute currentApp; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + server cluster ApplicationBasic { ram attribute vendorName; ram attribute vendorID default = 0x0; @@ -3837,13 +6948,19 @@ endpoint 0 { ram attribute featureMap default = 0; ram attribute clusterRevision default = 1; } + + server cluster AccountLogin { + ram attribute clusterRevision default = 1; + } } endpoint 1 { device type anonymousEndpointType = 257, version 1; binding cluster OnOff; + binding cluster LevelControl; binding cluster LocalizationConfiguration; binding cluster UnitLocalization; binding cluster FixedLabel; + binding cluster ColorControl; server cluster Identify { ram attribute identifyTime default = 0x0; @@ -3881,24 +6998,33 @@ endpoint 1 { } server cluster OnOff { - ram attribute onOff default = 0; - ram attribute globalSceneControl default = 1; - ram attribute onTime default = 0; - ram attribute offWaitTime default = 0; - ram attribute startUpOnOff; + ram attribute onOff default = 0x00; + ram attribute globalSceneControl default = 0x01; + ram attribute onTime default = 0x0000; + ram attribute offWaitTime default = 0x0000; + ram attribute startUpOnOff default = 0xFF; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 0; + ram attribute featureMap default = 0x0001; ram attribute clusterRevision default = 4; } server cluster LevelControl { ram attribute currentLevel default = 0x00; ram attribute remainingTime default = 0x0000; + ram attribute minLevel default = 0x00; + ram attribute maxLevel default = 0xFE; + ram attribute currentFrequency default = 0x0000; + ram attribute minFrequency default = 0x0000; + ram attribute maxFrequency default = 0x0000; ram attribute options default = 0x00; + ram attribute onOffTransitionTime default = 0x0000; ram attribute onLevel; + ram attribute onTransitionTime; + ram attribute offTransitionTime; + ram attribute defaultMoveRate; ram attribute startUpCurrentLevel; callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3971,9 +7097,56 @@ endpoint 1 { } server cluster ColorControl { + ram attribute currentHue default = 0x00; + ram attribute currentSaturation default = 0x00; + callback attribute remainingTime default = 0x00; ram attribute currentX default = 0x616B; ram attribute currentY default = 0x607D; + callback attribute driftCompensation; + callback attribute compensationText; + ram attribute colorTemperatureMireds default = 0x00FA; + callback attribute colorMode default = 1; ram attribute options default = 0x00; + callback attribute numberOfPrimaries; + callback attribute primary1X; + callback attribute primary1Y; + callback attribute primary1Intensity; + callback attribute primary2X; + callback attribute primary2Y; + callback attribute primary2Intensity; + callback attribute primary3X; + callback attribute primary3Y; + callback attribute primary3Intensity; + callback attribute primary4X; + callback attribute primary4Y; + callback attribute primary4Intensity; + callback attribute primary5X; + callback attribute primary5Y; + callback attribute primary5Intensity; + callback attribute primary6X; + callback attribute primary6Y; + callback attribute primary6Intensity; + callback attribute whitePointX; + callback attribute whitePointY; + callback attribute colorPointRX; + callback attribute colorPointRY; + callback attribute colorPointRIntensity; + callback attribute colorPointGX; + callback attribute colorPointGY; + callback attribute colorPointGIntensity; + callback attribute colorPointBX; + callback attribute colorPointBY; + callback attribute colorPointBIntensity; + ram attribute enhancedCurrentHue default = 0x00; + callback attribute enhancedColorMode default = 0x01; + ram attribute colorLoopActive default = 0x00; + ram attribute colorLoopDirection default = 0x00; + ram attribute colorLoopTime default = 0x0019; + ram attribute colorLoopStartEnhancedHue default = 0x2300; + ram attribute colorLoopStoredEnhancedHue default = 0x00; + callback attribute colorCapabilities default = 0x00; + callback attribute colorTempPhysicalMinMireds default = 0x00; + callback attribute colorTempPhysicalMaxMireds default = 0xfeff; ram attribute coupleColorTempToLevelMinMireds; ram attribute startUpColorTemperatureMireds; ram attribute featureMap default = 0; diff --git a/examples/placeholder/linux/apps/app1/config.zap b/examples/placeholder/linux/apps/app1/config.zap index e4d8f4d12b5046..6370993996752e 100644 --- a/examples/placeholder/linux/apps/app1/config.zap +++ b/examples/placeholder/linux/apps/app1/config.zap @@ -38,204 +38,6 @@ "deviceTypeCode": null, "deviceTypeProfileId": null, "clusters": [ - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "Off", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "On", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "Toggle", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithRecallGlobalScene", - "code": 65, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithTimedOff", - "code": 66, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "OnOff", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "GlobalSceneControl", - "code": 16384, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OnTime", - "code": 16385, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OffWaitTime", - "code": 16386, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "StartUpOnOff", - "code": 16387, - "mfgCode": null, - "side": "server", - "type": "OnOffStartUpOnOff", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFF", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0001", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, { "name": "Descriptor", "code": 29, @@ -2843,12 +2645,12 @@ ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "commands": [ { "name": "ResetCounts", @@ -2872,26 +2674,42 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "BSSID", + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Channel", "code": 0, "mfgCode": null, "side": "server", - "type": "octet_string", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -2899,15 +2717,15 @@ "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SecurityType", + "name": "RoutingRole", "code": 1, "mfgCode": null, "side": "server", - "type": "SecurityTypeEnum", + "type": "RoutingRoleEnum", "included": 1, "storageOption": "External", "singleton": 0, @@ -2919,23 +2737,23 @@ "reportableChange": 0 }, { - "name": "WiFiVersion", + "name": "NetworkName", "code": 2, "mfgCode": null, "side": "server", - "type": "WiFiVersionEnum", + "type": "String", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ChannelNumber", + "name": "PanId", "code": 3, "mfgCode": null, "side": "server", @@ -2944,94 +2762,94 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RSSI", + "name": "ExtendedPanId", "code": 4, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "BeaconLostCount", + "name": "MeshLocalPrefix", "code": 5, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "octet_string", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "BeaconRxCount", + "name": "OverrunCount", "code": 6, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketMulticastRxCount", + "name": "NeighborTable", "code": 7, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "NeighborTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketMulticastTxCount", + "name": "RouteTable", "code": 8, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "RouteTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketUnicastRxCount", + "name": "PartitionId", "code": 9, "mfgCode": null, "side": "server", @@ -3040,1027 +2858,880 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketUnicastTxCount", + "name": "Weighting", "code": 10, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentMaxRate", + "name": "DataVersion", "code": 11, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OverrunCount", + "name": "StableDataVersion", "code": 12, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "LeaderRouterId", + "code": 13, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DetachedRoleCount", + "code": 14, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ], - "events": [ - { - "name": "Disconnection", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 }, { - "name": "AssociationFailure", - "code": 1, + "name": "ChildRoleCount", + "code": 15, "mfgCode": null, "side": "server", - "included": 1 + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "ConnectionStatus", - "code": 2, + "name": "RouterRoleCount", + "code": 16, "mfgCode": null, "side": "server", - "included": 1 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "ResetCounts", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "PHYRate", - "code": 0, + "name": "LeaderRoleCount", + "code": 17, "mfgCode": null, "side": "server", - "type": "PHYRateEnum", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FullDuplex", - "code": 1, + "name": "AttachAttemptCount", + "code": 18, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketRxCount", - "code": 2, + "name": "PartitionIdChangeCount", + "code": 19, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketTxCount", - "code": 3, + "name": "BetterPartitionAttachAttemptCount", + "code": 20, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TxErrCount", - "code": 4, + "name": "ParentChangeCount", + "code": 21, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CollisionCount", - "code": 5, + "name": "TxTotalCount", + "code": 22, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OverrunCount", - "code": 6, + "name": "TxUnicastCount", + "code": 23, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CarrierDetect", - "code": 7, + "name": "TxBroadcastCount", + "code": 24, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TimeSinceReset", - "code": 8, + "name": "TxAckRequestedCount", + "code": 25, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxAckedCount", + "code": 26, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxNoAckRequestedCount", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxDataCount", + "code": 28, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxDataPollCount", + "code": 29, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "NumberOfPositions", - "code": 0, + "name": "TxBeaconCount", + "code": 30, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPosition", - "code": 1, + "name": "TxBeaconRequestCount", + "code": 31, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MultiPressMax", - "code": 2, + "name": "TxOtherCount", + "code": 32, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "TxRetryCount", + "code": 33, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxErrCcaCount", + "code": 36, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxErrAbortCount", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "OpenCommissioningWindow", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "OpenBasicCommissioningWindow", - "code": 1, + "name": "TxErrBusyChannelCount", + "code": 38, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RevokeCommissioning", - "code": 2, + "name": "RxTotalCount", + "code": 39, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxUnicastCount", + "code": 40, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "WindowStatus", - "code": 0, + "name": "RxBroadcastCount", + "code": 41, "mfgCode": null, "side": "server", - "type": "CommissioningWindowStatusEnum", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminFabricIndex", - "code": 1, + "name": "RxDataCount", + "code": 42, "mfgCode": null, "side": "server", - "type": "fabric_idx", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminVendorId", - "code": 2, + "name": "RxDataPollCount", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxBeaconCount", + "code": 44, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxBeaconRequestCount", + "code": 45, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ + }, { - "name": "AttestationRequest", - "code": 0, + "name": "RxOtherCount", + "code": 46, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CertificateChainRequest", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CSRRequest", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddNOC", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateNOC", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateFabricLabel", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "RemoveFabric", - "code": 10, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddTrustedRootCertificate", - "code": 11, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AttestationResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CertificateChainResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CSRResponse", - "code": 5, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "NOCResponse", - "code": 8, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "Fabrics", - "code": 1, + "name": "RxAddressFilteredCount", + "code": 47, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedFabrics", - "code": 2, + "name": "RxDestAddrFilteredCount", + "code": 48, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CommissionedFabrics", - "code": 3, + "name": "RxDuplicatedCount", + "code": 49, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "TrustedRootCertificates", - "code": 4, + "name": "RxErrNoFrameCount", + "code": 50, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentFabricIndex", - "code": 5, + "name": "RxErrUnknownNeighborCount", + "code": 51, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxErrInvalidSrcAddrCount", + "code": 52, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrSecCount", + "code": 53, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrFcsCount", + "code": 54, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "StateValue", - "code": 0, + "name": "RxErrOtherCount", + "code": 55, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ActiveTimestamp", + "code": 56, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PendingTimestamp", + "code": 57, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Delay", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SecurityPolicy", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "SecurityPolicy", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelPage0Mask", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperationalDatasetComponents", + "code": 61, + "mfgCode": null, + "side": "server", + "type": "OperationalDatasetComponents", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [ { - "name": "ChangeToMode", + "name": "ResetCounts", "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -4073,245 +3744,300 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Description", + "name": "BSSID", "code": 0, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StandardNamespace", + "name": "SecurityType", "code": 1, "mfgCode": null, "side": "server", - "type": "enum16", + "type": "SecurityTypeEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedModes", + "name": "WiFiVersion", "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "WiFiVersionEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "255", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentMode", + "name": "ChannelNumber", "code": 3, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpMode", + "name": "RSSI", "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int8s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "BeaconLostCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "BeaconRxCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "PacketMulticastRxCount", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "PacketMulticastTxCount", + "code": 8, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PacketUnicastRxCount", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Window Covering", - "code": 258, - "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "UpOrOpen", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "DownOrClose", - "code": 1, + "name": "PacketUnicastTxCount", + "code": 10, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopMotion", - "code": 2, + "name": "CurrentMaxRate", + "code": 11, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "GoToLiftValue", - "code": 4, + "name": "OverrunCount", + "code": 12, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToLiftPercentage", - "code": 5, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToTiltValue", - "code": 7, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "events": [ + { + "name": "Disconnection", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1 }, { - "name": "GoToTiltPercentage", - "code": 8, + "name": "AssociationFailure", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1 + }, + { + "name": "ConnectionStatus", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 0 + "outgoing": 1 } ], "attributes": [ @@ -4325,7 +4051,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -4334,378 +4060,394 @@ ] }, { - "name": "Window Covering", - "code": 258, + "name": "Ethernet Network Diagnostics", + "code": 55, "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Type", + "name": "PHYRate", "code": 0, "mfgCode": null, "side": "server", - "type": "Type", + "type": "PHYRateEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FullDuplex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionLift", - "code": 3, + "name": "PacketRxCount", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionTilt", - "code": 4, + "name": "PacketTxCount", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ConfigStatus", - "code": 7, + "name": "TxErrCount", + "code": 4, "mfgCode": null, "side": "server", - "type": "ConfigStatus", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x03", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionLiftPercentage", - "code": 8, + "name": "CollisionCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionTiltPercentage", - "code": 9, + "name": "OverrunCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OperationalStatus", - "code": 10, + "name": "CarrierDetect", + "code": 7, "mfgCode": null, "side": "server", - "type": "OperationalStatus", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 127, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TargetPositionLiftPercent100ths", - "code": 11, + "name": "TimeSinceReset", + "code": 8, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "0x0000000000000000", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TargetPositionTiltPercent100ths", - "code": 12, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "3", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EndProductType", - "code": 13, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "EndProductType", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "CurrentPositionLiftPercent100ths", - "code": 14, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "Percent100ths", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "RAM", + "singleton": 1, "bounded": 0, - "defaultValue": "500", + "defaultValue": "2", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "CurrentPositionTiltPercent100ths", - "code": 15, + "name": "DataModelRevision", + "code": 0, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "500", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledOpenLimitLift", - "code": 16, + "name": "VendorName", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitLift", - "code": 17, + "name": "VendorID", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "vendor_id", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledOpenLimitTilt", - "code": 18, + "name": "ProductName", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitTilt", - "code": 19, + "name": "ProductID", + "code": 4, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Mode", - "code": 23, + "name": "NodeLabel", + "code": 5, "mfgCode": null, "side": "server", - "type": "Mode", + "type": "char_string", "included": 1, "storageOption": "NVM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 15, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SafetyStatus", - "code": 26, + "name": "Location", + "code": 6, "mfgCode": null, "side": "server", - "type": "SafetyStatus", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "XX", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "HardwareVersion", + "code": 7, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x17", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "HardwareVersionString", + "code": 8, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "SoftwareVersion", + "code": 9, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MaxPressure", - "code": 0, + "name": "SoftwareVersionString", + "code": 10, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4714,14 +4456,14 @@ "reportableChange": 0 }, { - "name": "MaxSpeed", - "code": 1, + "name": "ManufacturingDate", + "code": 11, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4730,14 +4472,14 @@ "reportableChange": 0 }, { - "name": "MaxFlow", - "code": 2, + "name": "PartNumber", + "code": 12, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4746,109 +4488,109 @@ "reportableChange": 0 }, { - "name": "MinConstPressure", - "code": 3, + "name": "ProductURL", + "code": 13, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "long_char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstPressure", - "code": 4, + "name": "ProductLabel", + "code": 14, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinCompPressure", - "code": 5, + "name": "SerialNumber", + "code": 15, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxCompPressure", - "code": 6, + "name": "LocalConfigDisabled", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "boolean", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstSpeed", - "code": 7, + "name": "Reachable", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, + "type": "boolean", + "included": 0, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstSpeed", - "code": 8, + "name": "UniqueID", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstFlow", - "code": 9, + "name": "CapabilityMinima", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "CapabilityMinimaStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -4858,208 +4600,219 @@ "reportableChange": 0 }, { - "name": "MaxConstFlow", - "code": 10, + "name": "ProductAppearance", + "code": 20, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "ProductAppearanceStruct", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstTemp", - "code": 11, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxConstTemp", - "code": 12, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ], + "events": [ { - "name": "PumpStatus", - "code": 16, + "name": "StartUp", + "code": 0, "mfgCode": null, "side": "server", - "type": "PumpStatusBitmap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "included": 1 }, { - "name": "EffectiveOperationMode", - "code": 17, + "name": "ShutDown", + "code": 1, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "included": 1 }, { - "name": "EffectiveControlMode", - "code": 18, + "name": "Leave", + "code": 2, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "included": 1 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Capacity", - "code": 19, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "int16s", + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "Speed", - "code": 20, + "name": "NumberOfPositions", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeRunningHours", - "code": 21, + "name": "CurrentPosition", + "code": 1, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Power", - "code": 22, + "name": "MultiPressMax", + "code": 2, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeEnergyConsumed", - "code": 23, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OperationMode", - "code": 32, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ControlMode", - "code": 33, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5091,52 +4844,44 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "client", "enabled": 0, "commands": [ { - "name": "SetpointRaiseLower", + "name": "OpenCommissioningWindow", "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "SetWeeklySchedule", + "name": "OpenBasicCommissioningWindow", "code": 1, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "GetWeeklySchedule", + "name": "RevokeCommissioning", "code": 2, "mfgCode": null, "source": "client", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ClearWeeklySchedule", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -5151,7 +4896,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -5160,325 +4905,307 @@ ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "GetWeeklyScheduleResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 - } - ], "attributes": [ { - "name": "LocalTemperature", + "name": "WindowStatus", "code": 0, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "CommissioningWindowStatusEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinHeatSetpointLimit", - "code": 3, + "name": "AdminFabricIndex", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "fabric_idx", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x02BC", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinCoolSetpointLimit", - "code": 5, + "name": "AdminVendorId", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0640", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMaxCoolSetpointLimit", - "code": 6, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0C80", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PICoolingDemand", - "code": 7, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "int16u", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ { - "name": "PIHeatingDemand", - "code": 8, + "name": "AttestationRequest", + "code": 0, "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedCoolingSetpoint", - "code": 17, + "name": "CertificateChainRequest", + "code": 2, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0A28", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedHeatingSetpoint", - "code": 18, + "name": "CSRRequest", + "code": 4, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x07D0", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinHeatSetpointLimit", - "code": 21, + "name": "AddNOC", + "code": 6, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x02BC", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxHeatSetpointLimit", - "code": 22, + "name": "UpdateNOC", + "code": 7, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0BB8", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinCoolSetpointLimit", - "code": 23, + "name": "UpdateFabricLabel", + "code": 9, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0640", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxCoolSetpointLimit", - "code": 24, + "name": "RemoveFabric", + "code": 10, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0C80", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinSetpointDeadBand", - "code": 25, + "name": "AddTrustedRootCertificate", + "code": 11, "mfgCode": null, - "side": "server", - "type": "int8s", + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x19", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 }, { - "name": "ControlSequenceOfOperation", - "code": 27, - "mfgCode": null, - "side": "server", - "type": "ThermostatControlSequence", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x04", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SystemMode", - "code": 28, + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Fabrics", + "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartOfWeek", - "code": 32, + "name": "SupportedFabrics", + "code": 2, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfWeeklyTransitions", - "code": 33, + "name": "CommissionedFabrics", + "code": 3, "mfgCode": null, "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "7", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfDailyTransitions", - "code": 34, + "name": "TrustedRootCertificates", + "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TemperatureSetpointHold", - "code": 35, + "name": "CurrentFabricIndex", + "code": 5, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 0, - "storageOption": "RAM", + "type": "int8u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5491,10 +5218,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000b", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5507,27 +5234,69 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "Boolean State", + "code": 69, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "define": "BOOLEAN_STATE_CLUSTER", "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "server", "enabled": 1, "attributes": [ + { + "name": "StateValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, "mfgCode": null, - "side": "client", + "side": "server", "type": "bitmap32", "included": 1, "storageOption": "RAM", @@ -5543,13 +5312,13 @@ "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5558,51 +5327,71 @@ ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "Mode Select", + "code": 80, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", - "side": "server", + "define": "MODE_SELECT_CLUSTER", + "side": "client", "enabled": 1, - "attributes": [ + "commands": [ { - "name": "TemperatureDisplayMode", + "name": "ChangeToMode", "code": 0, "mfgCode": null, - "side": "server", - "type": "enum8", + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "KeypadLockout", - "code": 1, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "enum8", + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Mode Select", + "code": 80, + "mfgCode": null, + "define": "MODE_SELECT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "ScheduleProgrammingVisibility", - "code": 2, + "name": "Description", + "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "char_string", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -5614,11 +5403,11 @@ "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "StandardNamespace", + "code": 1, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum16", "included": 1, "storageOption": "External", "singleton": 0, @@ -5630,8 +5419,8 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "SupportedModes", + "code": 2, "mfgCode": null, "side": "server", "type": "array", @@ -5639,20 +5428,20 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "255", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, - "mfgCode": null, + "name": "CurrentMode", + "code": 3, + "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -5662,108 +5451,88 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "StartUpMode", + "code": 4, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Illuminance Measurement", - "code": 1024, - "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Illuminance Measurement", - "code": 1024, - "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", "type": "int16u", @@ -5771,85 +5540,139 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFFFE", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Window Covering", + "code": 258, + "mfgCode": null, + "define": "WINDOW_COVERING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "UpOrOpen", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "DownOrClose", + "code": 1, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "LightSensorType", + "name": "StopMotion", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToLiftValue", "code": 4, "mfgCode": null, - "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFF", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "GoToLiftPercentage", + "code": 5, "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToTiltValue", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 }, + { + "name": "GoToTiltPercentage", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ { "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "server", + "side": "client", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "client", "enabled": 1, + "commands": [ + { + "name": "Lock Door", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock Door", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock with Timeout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "ClusterRevision", @@ -5861,76 +5684,76 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "6", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "MeasuredValue", - "code": 0, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "6", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "LockState", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "LockType", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "ActuatorEnabled", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -5938,117 +5761,49 @@ "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "MeasuredValue", - "code": 0, + "name": "DoorState", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "DoorOpenEvents", + "code": 4, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "DoorClosedEvents", + "code": 5, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6058,93 +5813,93 @@ "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "OpenPeriod", + "code": 6, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ScaledValue", + "name": "NumberOfLogRecordsSupported", "code": 16, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinScaledValue", + "name": "NumberOfTotalUsersSupported", "code": 17, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxScaledValue", + "name": "NumberOfPINUsersSupported", "code": 18, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ScaledTolerance", + "name": "NumberOfRFIDUsersSupported", "code": 19, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Scale", + "name": "NumberOfWeekDaySchedulesSupportedPerUser", "code": 20, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -6154,81 +5909,61 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "NumberOfYearDaySchedulesSupportedPerUser", + "code": 21, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "NumberOfHolidaySchedulesSupported", + "code": 22, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MaxPINCodeLength", + "code": 23, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "MinPINCodeLength", + "code": 24, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6238,29 +5973,29 @@ "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "MaxRFIDCodeLength", + "code": 25, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "MinRFIDCodeLength", + "code": 26, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6270,939 +6005,765 @@ "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "CredentialRulesSupport", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "NumberOfCredentialsSupportedPerUser", + "code": 28, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "EnableLogging", + "code": 32, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "Language", + "code": 33, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "String", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, + } + ,{ + "name": "LEDSettings", + "code": 34, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "AutoRelockTime", + "code": 35, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "SoundVolume", + "code": 36, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "OperatingMode", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x2710", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "SupportedOperatingModes", + "code": 38, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "65526", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "DefaultConfigurationRegister", + "code": 39, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "EnableLocalProgramming", + "code": 40, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "EnableOneTouchLocking", + "code": 41, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "EnableInsideStatusLED", + "code": 42, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "EnablePrivacyModeButton", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "NavigateTarget", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "LocalProgrammingFeatures", + "code": 44, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "NavigateTargetResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "TargetList", - "code": 0, + "name": "WrongCodeEntryLimit", + "code": 48, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentTarget", - "code": 1, + "name": "UserCodeTemporaryDisableTime", + "code": 49, "mfgCode": null, "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "SendPINOverTheAir", + "code": 50, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "RequirePINforRemoteOperation", + "code": 51, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "SecurityLevel", + "code": 52, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ExpiringUserTimeout", + "code": 53, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AlarmMask", + "code": 64, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Keypad Input", - "code": 1289, - "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "SendKey", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "KeypadOperationEventMask", + "code": 65, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Keypad Input", - "code": 1289, - "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "SendKeyResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "RemoteOperationEventMask", + "code": 66, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ManualOperationEventMask", + "code": 67, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "RFIDOperationEventMask", + "code": 68, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "KeypadProgrammingEventMask", + "code": 69, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RemoteProgrammingEventMask", + "code": 70, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Content Launcher", - "code": 1290, - "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "LaunchContent", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "LaunchURL", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "RFIDProgrammingEventMask", + "code": 71, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] - }, + }, { - "name": "Content Launcher", - "code": 1290, + "name": "Window Covering", + "code": 258, "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", + "define": "WINDOW_COVERING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "LauncherResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], "attributes": [ { - "name": "AcceptHeader", + "name": "Type", "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "Type", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedStreamingProtocols", - "code": 1, + "name": "CurrentPositionLift", + "code": 3, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "CurrentPositionTilt", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ConfigStatus", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "ConfigStatus", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x03", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "CurrentPositionLiftPercentage", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "Percent", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "CurrentPositionTiltPercentage", + "code": 9, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "Percent", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OperationalStatus", + "code": 10, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Application Basic", - "code": 1293, - "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "type": "OperationalStatus", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 127, "reportableChange": 0 - } - ] - }, - { - "name": "Application Basic", - "code": 1293, - "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "VendorName", - "code": 0, + "name": "TargetPositionLiftPercent100ths", + "code": 11, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "Percent100ths", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "VendorID", - "code": 1, + "name": "TargetPositionTiltPercent100ths", + "code": 12, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "Percent100ths", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "ApplicationName", - "code": 2, + "name": "EndProductType", + "code": 13, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "EndProductType", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ProductID", - "code": 3, + "name": "CurrentPositionLiftPercent100ths", + "code": 14, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "Percent100ths", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "Application", - "code": 4, + "name": "CurrentPositionTiltPercent100ths", + "code": 15, "mfgCode": null, "side": "server", - "type": "ApplicationStruct", + "type": "Percent100ths", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "Status", - "code": 5, + "name": "InstalledOpenLimitLift", + "code": 16, "mfgCode": null, "side": "server", - "type": "ApplicationStatusEnum", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ApplicationVersion", - "code": 6, + "name": "InstalledClosedLimitLift", + "code": 17, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AllowedVendorList", - "code": 7, + "name": "InstalledOpenLimitTilt", + "code": 18, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "InstalledClosedLimitTilt", + "code": 19, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "Mode", + "code": 23, "mfgCode": null, "side": "server", - "type": "array", + "type": "Mode", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 15, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "SafetyStatus", + "code": 26, "mfgCode": null, "side": "server", - "type": "array", + "type": "SafetyStatus", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7215,10 +6776,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x17", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7231,64 +6792,22 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] - } - ] - }, - { - "name": "Anonymous Endpoint Type", - "deviceTypeName": "MA-dimmablelight", - "deviceTypeCode": 257, - "deviceTypeProfileId": 259, - "clusters": [ + }, { - "name": "Identify", - "code": 3, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "IDENTIFY_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "client", "enabled": 0, - "commands": [ - { - "name": "Identify", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "TriggerEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -7299,7 +6818,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "3", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7308,69 +6827,69 @@ ] }, { - "name": "Identify", - "code": 3, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "IDENTIFY_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "IdentifyTime", + "name": "MaxPressure", "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "IdentifyType", + "name": "MaxSpeed", "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MaxFlow", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "MinConstPressure", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7380,13 +6899,13 @@ "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "MaxConstPressure", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7396,13 +6915,13 @@ "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "MinCompPressure", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7412,24 +6931,24 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "MaxCompPressure", + "code": 6, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinConstSpeed", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", @@ -7437,154 +6956,50 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Groups", - "code": 4, - "mfgCode": null, - "define": "GROUPS_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "AddGroup", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ViewGroup", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "GetGroupMembership", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "RemoveGroup", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RemoveAllGroups", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "AddGroupIfIdentifying", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "MaxConstSpeed", + "code": 8, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinConstFlow", + "code": 9, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Groups", - "code": 4, - "mfgCode": null, - "define": "GROUPS_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AddGroupResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ViewGroupResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "GetGroupMembershipResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "RemoveGroupResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "NameSupport", - "code": 0, + "name": "MaxConstFlow", + "code": 10, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7596,13 +7011,13 @@ "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MinConstTemp", + "code": 11, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7612,13 +7027,13 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "MaxConstTemp", + "code": 12, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7628,497 +7043,265 @@ "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "PumpStatus", + "code": 16, "mfgCode": null, "side": "server", - "type": "array", + "type": "PumpStatusBitmap", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "EffectiveOperationMode", + "code": 17, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationModeEnum", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "EffectiveControlMode", + "code": 18, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "ControlModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Capacity", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "AddScene", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ViewScene", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RemoveScene", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RemoveAllScenes", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "StoreScene", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RecallScene", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "GetSceneMembership", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Speed", + "code": 20, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AddSceneResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ViewSceneResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveSceneResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveAllScenesResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "StoreSceneResponse", - "code": 4, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "GetSceneMembershipResponse", - "code": 6, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "SceneCount", - "code": 0, + "name": "LifetimeRunningHours", + "code": 21, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int24u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentScene", - "code": 1, + "name": "Power", + "code": 22, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int24u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentGroup", - "code": 2, + "name": "LifetimeEnergyConsumed", + "code": 23, "mfgCode": null, "side": "server", - "type": "group_id", + "type": "int32u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SceneValid", - "code": 3, + "name": "OperationMode", + "code": 32, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "OperationModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "NameSupport", - "code": 4, + "name": "ControlMode", + "code": 33, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "ControlModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LastConfiguredBy", - "code": 5, + "name": "AlarmMask", + "code": 34, "mfgCode": null, "side": "server", - "type": "node_id", - "included": 0, + "type": "bitmap16", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "3", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EventList", - "code": 65530, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AttributeList", - "code": 65531, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "On/Off", - "code": 6, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "ON_OFF_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "client", "enabled": 1, "commands": [ { - "name": "Off", + "name": "SetpointRaiseLower", "code": 0, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "On", + "name": "SetWeeklySchedule", "code": 1, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "Toggle", + "name": "GetWeeklySchedule", "code": 2, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "OnWithRecallGlobalScene", - "code": 65, + "name": "ClearWeeklySchedule", + "code": 3, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "OnWithTimedOff", - "code": 66, + "name": "GetRelayStatusLog", + "code": 4, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -8129,601 +7312,5869 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "On/Off", - "code": 6, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "ON_OFF_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "server", "enabled": 1, + "commands": [ + { + "name": "GetWeeklyScheduleResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetRelayStatusLogResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { - "name": "OnOff", + "name": "LocalTemperature", "code": 0, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GlobalSceneControl", - "code": 16384, + "name": "OutdoorTemperature", + "code": 1, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OnTime", - "code": 16385, + "name": "Occupancy", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OffWaitTime", - "code": 16386, + "name": "AbsMinHeatSetpointLimit", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x02BC", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpOnOff", - "code": 16387, + "name": "AbsMaxHeatSetpointLimit", + "code": 4, "mfgCode": null, "side": "server", - "type": "OnOffStartUpOnOff", + "type": "int16s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0BB8", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "AbsMinCoolSetpointLimit", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0640", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "AbsMaxCoolSetpointLimit", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "PICoolingDemand", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "PIHeatingDemand", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "HVACSystemTypeConfiguration", + "code": 9, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "LocalTemperatureCalibration", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToLevel", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "Move", - "code": 1, + "name": "OccupiedCoolingSetpoint", + "code": 17, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0A28", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Step", - "code": 2, + "name": "OccupiedHeatingSetpoint", + "code": 18, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07D0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Stop", - "code": 3, + "name": "UnoccupiedCoolingSetpoint", + "code": 19, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0A28", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "MoveToLevelWithOnOff", - "code": 4, + "name": "UnoccupiedHeatingSetpoint", + "code": 20, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07D0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "MoveWithOnOff", - "code": 5, + "name": "MinHeatSetpointLimit", + "code": 21, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02BC", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StepWithOnOff", - "code": 6, + "name": "MaxHeatSetpointLimit", + "code": 22, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0BB8", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopWithOnOff", - "code": 7, + "name": "MinCoolSetpointLimit", + "code": 23, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0640", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "FeatureMap", - "code": 65532, + "name": "MaxCoolSetpointLimit", + "code": 24, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinSetpointDeadBand", + "code": 25, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int8s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "0x19", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "CurrentLevel", - "code": 0, + "name": "RemoteSensing", + "code": 26, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "RemainingTime", - "code": 1, + "name": "ControlSequenceOfOperation", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "ThermostatControlSequence", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x04", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinLevel", - "code": 2, + "name": "SystemMode", + "code": 28, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "enum8", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AlarmMask", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ThermostatRunningMode", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartOfWeek", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfWeeklyTransitions", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "7", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfDailyTransitions", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TemperatureSetpointHold", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TemperatureSetpointHoldDuration", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ThermostatProgrammingOperationMode", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ThermostatRunningState", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SetpointChangeSource", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SetpointChangeAmount", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SetpointChangeSourceTimestamp", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "utc", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedSetback", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedSetbackMin", + "code": 53, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedSetbackMax", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UnoccupiedSetback", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UnoccupiedSetbackMin", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UnoccupiedSetbackMax", + "code": 57, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EmergencyHeatDelta", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x009F6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACType", + "code": 64, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCapacity", + "code": 65, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACRefrigerantType", + "code": 66, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCompressorType", + "code": 67, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACErrorCode", + "code": 68, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 1, + "defaultValue": "0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACLouverPosition", + "code": 69, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCoilTemperature", + "code": 70, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCapacityFormat", + "code": 71, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000b", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "TemperatureDisplayMode", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "KeypadLockout", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScheduleProgrammingVisibility", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LightSensorType", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledValue", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinScaledValue", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxScaledValue", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledTolerance", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Scale", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2710", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "NavigateTarget", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "NavigateTargetResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "TargetList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentTarget", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SendKey", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "SendKeyResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "LaunchContent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "LaunchURL", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "LauncherResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "AcceptHeader", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedStreamingProtocols", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "VendorName", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Application", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "ApplicationStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Status", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "ApplicationStatusEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationVersion", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AllowedVendorList", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPIN", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Login", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Logout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPINResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LaunchApp", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StopApp", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "HideApp", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CatalogList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentApp", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "ApplicationEP", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LauncherResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "SelectOutput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameOutput", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OutputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentOutput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ChangeChannelByNumber", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "SkipChannel", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ChannelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Lineup", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "LineupInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentChannel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "ChannelInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannelResponse", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Sleep", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Play", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Pause", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StartOver", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Previous", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Next", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Rewind", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "FastForward", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipForward", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipBackward", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Seek", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "PlaybackResponse", + "code": 10, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "CurrentState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PlaybackStateType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "epoch_us", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Duration", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SampledPosition", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "PlaybackPositionType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PlaybackSpeed", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "SingleType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeEnd", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeStart", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SelectInput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ShowInputStatus", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "HideInputStatus", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameInput", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "InputInfoStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentInput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-dimmablelight", + "deviceTypeCode": 257, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "IdentifyType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConfiguredBy", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "node_id", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OffWithEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithRecallGlobalScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithTimedOff", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CurrentLevel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinLevel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxLevel", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinFrequency", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxFrequency", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "LevelControlOptions", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnOffTransitionTime", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnLevel", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTransitionTime", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffTransitionTime", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "DefaultMoveRate", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpCurrentLevel", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxLevel", - "code": 3, + "name": "SerialNumber", + "code": 15, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFE", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentFrequency", - "code": 4, + "name": "LocalConfigDisabled", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinFrequency", - "code": 5, + "name": "Reachable", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "boolean", + "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxFrequency", - "code": 6, + "name": "UniqueID", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "CapabilityMinima", + "code": 19, "mfgCode": null, "side": "server", - "type": "LevelControlOptions", + "type": "CapabilityMinimaStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OnOffTransitionTime", - "code": 16, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OnLevel", - "code": 17, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ { - "name": "OnTransitionTime", - "code": 18, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, + "side": "client", + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OffTransitionTime", - "code": 19, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", + "side": "client", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "DefaultMoveRate", - "code": 20, + "name": "ActiveLocale", + "code": 0, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "char_string", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpCurrentLevel", - "code": 16384, + "name": "SupportedLocales", + "code": 1, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ { - "name": "EventList", - "code": 65530, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "AttributeList", - "code": 65531, + "name": "TemperatureUnit", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "TempUnitEnum", "included": 1, - "storageOption": "External", - "singleton": 0, + "storageOption": "RAM", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, @@ -8753,7 +13204,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -8762,29 +13213,81 @@ ] }, { - "name": "Descriptor", - "code": 29, + "name": "Fixed Label", + "code": 64, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "FIXED_LABEL_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "attributes": [ { - "name": "FeatureMap", - "code": 65532, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "client", - "type": "bitmap32", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { "name": "ClusterRevision", "code": 65533, @@ -8804,15 +13307,15 @@ ] }, { - "name": "Descriptor", - "code": 29, + "name": "User Label", + "code": 65, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "USER_LABEL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "DeviceTypeList", + "name": "LabelList", "code": 0, "mfgCode": null, "side": "server", @@ -8828,136 +13331,294 @@ "reportableChange": 0 }, { - "name": "ServerList", - "code": 1, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClientList", - "code": 2, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "PartsList", + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", "code": 3, "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveToHue", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveHue", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedStepHue", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveToHueAndSaturation", + "code": 67, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ColorLoopSet", + "code": 68, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "AcceptedCommandList", - "code": 65529, + "name": "CurrentHue", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "CurrentSaturation", + "code": 1, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "RemainingTime", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "CurrentX", + "code": 3, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x616B", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "CurrentY", + "code": 4, "mfgCode": null, "side": "server", "type": "int16u", @@ -8965,358 +13626,290 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x607D", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 1, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "DataModelRevision", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "VendorName", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 }, { - "name": "VendorID", - "code": 2, + "name": "DriftCompensation", + "code": 5, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "enum8", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductName", - "code": 3, + "name": "CompensationText", + "code": 6, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "string", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductID", - "code": 4, + "name": "ColorTemperatureMireds", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00FA", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NodeLabel", - "code": 5, + "name": "ColorMode", + "code": 8, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "enum8", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Location", - "code": 6, + "name": "Options", + "code": 15, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "bitmap8", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "XX", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersion", - "code": 7, + "name": "EnhancedCurrentHue", + "code": 16384, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersionString", - "code": 8, + "name": "EnhancedColorMode", + "code": 16385, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "enum8", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x01", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersion", - "code": 9, + "name": "ColorLoopActive", + "code": 16386, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersionString", - "code": 10, + "name": "ColorLoopDirection", + "code": 16387, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ManufacturingDate", - "code": 11, + "name": "ColorLoopTime", + "code": 16388, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "20210614123456ZZ", + "defaultValue": "0x0019", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PartNumber", - "code": 12, + "name": "ColorLoopStartEnhancedHue", + "code": 16389, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x2300", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductURL", - "code": 13, + "name": "ColorLoopStoredEnhancedHue", + "code": 16390, "mfgCode": null, "side": "server", - "type": "long_char_string", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductLabel", - "code": 14, + "name": "ColorCapabilities", + "code": 16394, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "bitmap16", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SerialNumber", - "code": 15, + "name": "ColorTempPhysicalMinMireds", + "code": 16395, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LocalConfigDisabled", - "code": 16, + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "bitmap8", "included": 1, - "storageOption": "NVM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xfeff", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Reachable", - "code": 17, + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "UniqueID", - "code": 18, + "name": "NumberOfPrimaries", + "code": 16, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CapabilityMinima", - "code": 19, + "name": "Primary1X", + "code": 17, "mfgCode": null, "side": "server", - "type": "CapabilityMinimaStruct", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -9328,347 +13921,267 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary1Y", + "code": 18, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary1Intensity", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Localization Configuration", - "code": 43, - "mfgCode": null, - "define": "LOCALIZATION_CONFIGURATION_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary2X", + "code": 21, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary2Y", + "code": 22, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Localization Configuration", - "code": 43, - "mfgCode": null, - "define": "LOCALIZATION_CONFIGURATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "ActiveLocale", - "code": 0, + "name": "Primary2Intensity", + "code": 23, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SupportedLocales", - "code": 1, + "name": "Primary3X", + "code": 25, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary3Y", + "code": 26, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary3Intensity", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Unit Localization", - "code": 45, - "mfgCode": null, - "define": "UNIT_LOCALIZATION_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary4X", + "code": 32, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Unit Localization", - "code": 45, - "mfgCode": null, - "define": "UNIT_LOCALIZATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "TemperatureUnit", - "code": 0, + "name": "Primary4Y", + "code": 33, "mfgCode": null, "side": "server", - "type": "TempUnitEnum", + "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, + "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary4Intensity", + "code": 34, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary5X", + "code": 36, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary5Y", + "code": 37, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "Primary5Intensity", + "code": 38, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary6X", + "code": 40, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary6Y", + "code": 41, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "Primary6Intensity", + "code": 42, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, @@ -9680,24 +14193,24 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "WhitePointX", + "code": 48, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "WhitePointY", + "code": 49, "mfgCode": null, "side": "server", "type": "int16u", @@ -9705,178 +14218,148 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToColor", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "MoveColor", - "code": 8, + "name": "ColorPointRX", + "code": 50, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "StepColor", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorPointRY", + "code": 51, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "CurrentHue", - "code": 0, + "name": "ColorPointRIntensity", + "code": 52, "mfgCode": null, "side": "server", "type": "int8u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentSaturation", - "code": 1, + "name": "ColorPointGX", + "code": 54, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", + "type": "int16u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentX", - "code": 3, + "name": "ColorPointGY", + "code": 55, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x616B", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentY", - "code": 4, + "name": "ColorPointGIntensity", + "code": 56, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x607D", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorTemperatureMireds", - "code": 7, + "name": "ColorPointBX", + "code": 58, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00FA", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "ColorPointBY", + "code": 59, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CoupleColorTempToLevelMinMireds", - "code": 16397, + "name": "ColorPointBIntensity", + "code": 60, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -9935,32 +14418,6 @@ } ] }, - { - "name": "Occupancy Sensing", - "code": 1030, - "mfgCode": null, - "define": "OCCUPANCY_SENSING_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, { "name": "Occupancy Sensing", "code": 1030, diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 7ae83770cc884a..f2b0b6e22083e4 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -369,6 +369,129 @@ server cluster OnOff = 6 { command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } +/** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ +client cluster LevelControl = 8 { + enum MoveMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + enum StepMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + bitmap Feature : BITMAP32 { + kOnOff = 0x1; + kLighting = 0x2; + kFrequency = 0x4; + } + + bitmap LevelControlOptions : BITMAP8 { + kExecuteIfOff = 0x1; + kCoupleColorTempToLevel = 0x2; + } + + readonly attribute nullable int8u currentLevel = 0; + readonly attribute optional int16u remainingTime = 1; + readonly attribute optional int8u minLevel = 2; + readonly attribute optional int8u maxLevel = 3; + readonly attribute optional int16u currentFrequency = 4; + readonly attribute optional int16u minFrequency = 5; + readonly attribute optional int16u maxFrequency = 6; + attribute LevelControlOptions options = 15; + attribute optional int16u onOffTransitionTime = 16; + attribute nullable int8u onLevel = 17; + attribute optional nullable int16u onTransitionTime = 18; + attribute optional nullable int16u offTransitionTime = 19; + attribute optional nullable int8u defaultMoveRate = 20; + attribute access(write: manage) optional nullable int8u startUpCurrentLevel = 16384; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToLevelRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToLevelWithOnOffRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveWithOnOffRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepWithOnOffRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopWithOnOffRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToClosestFrequencyRequest { + INT16U frequency = 0; + } + + /** Command description for MoveToLevel */ + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; + /** Command description for Move */ + command Move(MoveRequest): DefaultSuccess = 1; + /** Command description for Step */ + command Step(StepRequest): DefaultSuccess = 2; + /** Command description for Stop */ + command Stop(StopRequest): DefaultSuccess = 3; + /** Command description for MoveToLevelWithOnOff */ + command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4; + /** Command description for MoveWithOnOff */ + command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; + /** Command description for StepWithOnOff */ + command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; + /** Command description for StopWithOnOff */ + command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; + /** Change the currrent frequency to the provided one, or a close + approximation if the exact provided one is not possible. */ + command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8; +} + /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { enum MoveMode : ENUM8 { @@ -394,8 +517,15 @@ server cluster LevelControl = 8 { readonly attribute nullable int8u currentLevel = 0; readonly attribute int16u remainingTime = 1; + readonly attribute int8u minLevel = 2; + readonly attribute int8u maxLevel = 3; + readonly attribute int16u minFrequency = 5; + readonly attribute int16u maxFrequency = 6; attribute LevelControlOptions options = 15; + attribute int16u onOffTransitionTime = 16; attribute nullable int8u onLevel = 17; + attribute nullable int16u onTransitionTime = 18; + attribute nullable int16u offTransitionTime = 19; attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; @@ -1485,6 +1615,333 @@ server cluster SoftwareDiagnostics = 52 { command ResetWatermarks(): DefaultSuccess = 0; } +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +client cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute optional int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute optional int16u detachedRoleCount = 14; + readonly attribute optional int16u childRoleCount = 15; + readonly attribute optional int16u routerRoleCount = 16; + readonly attribute optional int16u leaderRoleCount = 17; + readonly attribute optional int16u attachAttemptCount = 18; + readonly attribute optional int16u partitionIdChangeCount = 19; + readonly attribute optional int16u betterPartitionAttachAttemptCount = 20; + readonly attribute optional int16u parentChangeCount = 21; + readonly attribute optional int32u txTotalCount = 22; + readonly attribute optional int32u txUnicastCount = 23; + readonly attribute optional int32u txBroadcastCount = 24; + readonly attribute optional int32u txAckRequestedCount = 25; + readonly attribute optional int32u txAckedCount = 26; + readonly attribute optional int32u txNoAckRequestedCount = 27; + readonly attribute optional int32u txDataCount = 28; + readonly attribute optional int32u txDataPollCount = 29; + readonly attribute optional int32u txBeaconCount = 30; + readonly attribute optional int32u txBeaconRequestCount = 31; + readonly attribute optional int32u txOtherCount = 32; + readonly attribute optional int32u txRetryCount = 33; + readonly attribute optional int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute optional int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute optional int32u txErrCcaCount = 36; + readonly attribute optional int32u txErrAbortCount = 37; + readonly attribute optional int32u txErrBusyChannelCount = 38; + readonly attribute optional int32u rxTotalCount = 39; + readonly attribute optional int32u rxUnicastCount = 40; + readonly attribute optional int32u rxBroadcastCount = 41; + readonly attribute optional int32u rxDataCount = 42; + readonly attribute optional int32u rxDataPollCount = 43; + readonly attribute optional int32u rxBeaconCount = 44; + readonly attribute optional int32u rxBeaconRequestCount = 45; + readonly attribute optional int32u rxOtherCount = 46; + readonly attribute optional int32u rxAddressFilteredCount = 47; + readonly attribute optional int32u rxDestAddrFilteredCount = 48; + readonly attribute optional int32u rxDuplicatedCount = 49; + readonly attribute optional int32u rxErrNoFrameCount = 50; + readonly attribute optional int32u rxErrUnknownNeighborCount = 51; + readonly attribute optional int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute optional int32u rxErrSecCount = 53; + readonly attribute optional int32u rxErrFcsCount = 54; + readonly attribute optional int32u rxErrOtherCount = 55; + readonly attribute optional nullable int64u activeTimestamp = 56; + readonly attribute optional nullable int64u pendingTimestamp = 57; + readonly attribute optional nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** Reception of this command SHALL reset the OverrunCount attributes to 0 */ + command ResetCounts(): DefaultSuccess = 0; +} + +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +server cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute int16u detachedRoleCount = 14; + readonly attribute int16u childRoleCount = 15; + readonly attribute int16u routerRoleCount = 16; + readonly attribute int16u leaderRoleCount = 17; + readonly attribute int16u attachAttemptCount = 18; + readonly attribute int16u partitionIdChangeCount = 19; + readonly attribute int16u betterPartitionAttachAttemptCount = 20; + readonly attribute int16u parentChangeCount = 21; + readonly attribute int32u txTotalCount = 22; + readonly attribute int32u txUnicastCount = 23; + readonly attribute int32u txBroadcastCount = 24; + readonly attribute int32u txAckRequestedCount = 25; + readonly attribute int32u txAckedCount = 26; + readonly attribute int32u txNoAckRequestedCount = 27; + readonly attribute int32u txDataCount = 28; + readonly attribute int32u txDataPollCount = 29; + readonly attribute int32u txBeaconCount = 30; + readonly attribute int32u txBeaconRequestCount = 31; + readonly attribute int32u txOtherCount = 32; + readonly attribute int32u txRetryCount = 33; + readonly attribute int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute int32u txErrCcaCount = 36; + readonly attribute int32u txErrAbortCount = 37; + readonly attribute int32u txErrBusyChannelCount = 38; + readonly attribute int32u rxTotalCount = 39; + readonly attribute int32u rxUnicastCount = 40; + readonly attribute int32u rxBroadcastCount = 41; + readonly attribute int32u rxDataCount = 42; + readonly attribute int32u rxDataPollCount = 43; + readonly attribute int32u rxBeaconCount = 44; + readonly attribute int32u rxBeaconRequestCount = 45; + readonly attribute int32u rxOtherCount = 46; + readonly attribute int32u rxAddressFilteredCount = 47; + readonly attribute int32u rxDestAddrFilteredCount = 48; + readonly attribute int32u rxDuplicatedCount = 49; + readonly attribute int32u rxErrNoFrameCount = 50; + readonly attribute int32u rxErrUnknownNeighborCount = 51; + readonly attribute int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute int32u rxErrSecCount = 53; + readonly attribute int32u rxErrFcsCount = 54; + readonly attribute int32u rxErrOtherCount = 55; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; +} + /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { enum AssociationFailureCauseEnum : ENUM8 { @@ -1597,6 +2054,86 @@ server cluster EthernetNetworkDiagnostics = 55 { command ResetCounts(): DefaultSuccess = 0; } +/** This Cluster serves two purposes towards a Node communicating with a Bridge: indicate that the functionality on + the Endpoint where it is placed (and its Parts) is bridged from a non-CHIP technology; and provide a centralized + collection of attributes that the Node MAY collect to aid in conveying information regarding the Bridged Device to a user, + such as the vendor name, the model name, or user-assigned name. */ +server cluster BridgedDeviceBasicInformation = 57 { + enum ColorEnum : ENUM8 { + kBlack = 0; + kNavy = 1; + kGreen = 2; + kTeal = 3; + kMaroon = 4; + kPurple = 5; + kOlive = 6; + kGray = 7; + kBlue = 8; + kLime = 9; + kAqua = 10; + kRed = 11; + kFuchsia = 12; + kYellow = 13; + kWhite = 14; + kNickel = 15; + kChrome = 16; + kBrass = 17; + kCopper = 18; + kSilver = 19; + kGold = 20; + } + + enum ProductFinishEnum : ENUM8 { + kOther = 0; + kMatte = 1; + kSatin = 2; + kPolished = 3; + kRugged = 4; + kFabric = 5; + } + + struct ProductAppearanceStruct { + ProductFinishEnum finish = 0; + nullable ColorEnum primaryColor = 1; + } + + critical event StartUp = 0 { + INT32U softwareVersion = 0; + } + + critical event ShutDown = 1 { + } + + info event Leave = 2 { + } + + info event ReachableChanged = 3 { + boolean reachableNewValue = 0; + } + + readonly attribute char_string<32> vendorName = 1; + readonly attribute vendor_id vendorID = 2; + readonly attribute char_string<32> productName = 3; + attribute char_string<32> nodeLabel = 5; + readonly attribute int16u hardwareVersion = 7; + readonly attribute char_string<64> hardwareVersionString = 8; + readonly attribute int32u softwareVersion = 9; + readonly attribute char_string<64> softwareVersionString = 10; + readonly attribute char_string<16> manufacturingDate = 11; + readonly attribute char_string<32> partNumber = 12; + readonly attribute long_char_string<256> productURL = 13; + readonly attribute char_string<64> productLabel = 14; + readonly attribute char_string<32> serialNumber = 15; + readonly attribute char_string<32> uniqueID = 18; + readonly attribute ProductAppearanceStruct productAppearance = 20; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster exposes interactions with a switch device, for the purpose of using those interactions by other devices. Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ @@ -2122,34 +2659,1094 @@ server cluster ModeSelect = 80 { command ChangeToMode(ChangeToModeRequest): DefaultSuccess = 0; } -/** Provides an interface for controlling and adjusting automatic window coverings. */ -server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { - kRollerShade = 0; - kRomanShade = 1; - kBalloonShade = 2; - kWovenWood = 3; - kPleatedShade = 4; - kCellularShade = 5; - kLayeredShade = 6; - kLayeredShade2D = 7; - kSheerShade = 8; - kTiltOnlyInteriorBlind = 9; - kInteriorBlind = 10; - kVerticalBlindStripCurtain = 11; - kInteriorVenetianBlind = 12; - kExteriorVenetianBlind = 13; - kLateralLeftCurtain = 14; - kLateralRightCurtain = 15; - kCentralCurtain = 16; - kRollerShutter = 17; - kExteriorVerticalScreen = 18; - kAwningTerracePatio = 19; - kAwningVerticalScreen = 20; - kTiltOnlyPergola = 21; - kSwingingShutter = 22; - kSlidingShutter = 23; - kUnknown = 255; +/** An interface to a generic way to secure a door */ +client cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute optional nullable DoorStateEnum doorState = 3; + attribute access(write: manage) optional int32u doorOpenEvents = 4; + attribute access(write: manage) optional int32u doorClosedEvents = 5; + attribute access(write: manage) optional int16u openPeriod = 6; + readonly attribute optional int16u numberOfTotalUsersSupported = 17; + readonly attribute optional int16u numberOfPINUsersSupported = 18; + readonly attribute optional int16u numberOfRFIDUsersSupported = 19; + readonly attribute optional int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute optional int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute optional int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute optional int8u maxPINCodeLength = 23; + readonly attribute optional int8u minPINCodeLength = 24; + readonly attribute optional int8u maxRFIDCodeLength = 25; + readonly attribute optional int8u minRFIDCodeLength = 26; + readonly attribute optional DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) optional char_string<3> language = 33; + attribute access(write: manage) optional int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) optional int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute optional DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) optional boolean enableLocalProgramming = 40; + attribute access(write: manage) optional boolean enableOneTouchLocking = 41; + attribute access(write: manage) optional boolean enableInsideStatusLED = 42; + attribute access(write: manage) optional boolean enablePrivacyModeButton = 43; + attribute access(write: administer) optional DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) optional int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) optional int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) optional boolean sendPINOverTheAir = 50; + attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) optional int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + request struct SetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DaysMaskMap daysMask = 2; + INT8U startHour = 3; + INT8U startMinute = 4; + INT8U endHour = 5; + INT8U endMinute = 6; + } + + request struct GetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetWeekDayScheduleResponse = 12 { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional DaysMaskMap daysMask = 3; + optional INT8U startHour = 4; + optional INT8U startMinute = 5; + optional INT8U endHour = 6; + optional INT8U endMinute = 7; + } + + request struct ClearWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + epoch_s localStartTime = 2; + epoch_s localEndTime = 3; + } + + request struct GetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetYearDayScheduleResponse = 15 { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional epoch_s localStartTime = 3; + optional epoch_s localEndTime = 4; + } + + request struct ClearYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetHolidayScheduleRequest { + INT8U holidayIndex = 0; + epoch_s localStartTime = 1; + epoch_s localEndTime = 2; + OperatingModeEnum operatingMode = 3; + } + + request struct GetHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + response struct GetHolidayScheduleResponse = 18 { + INT8U holidayIndex = 0; + DlStatus status = 1; + optional epoch_s localStartTime = 2; + optional epoch_s localEndTime = 3; + optional OperatingModeEnum operatingMode = 4; + } + + request struct ClearHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + request struct SetUserRequest { + DataOperationTypeEnum operationType = 0; + INT16U userIndex = 1; + nullable CHAR_STRING userName = 2; + nullable INT32U userUniqueID = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + nullable CredentialRuleEnum credentialRule = 6; + } + + request struct GetUserRequest { + INT16U userIndex = 0; + } + + response struct GetUserResponse = 28 { + INT16U userIndex = 0; + nullable CHAR_STRING userName = 1; + nullable INT32U userUniqueID = 2; + nullable UserStatusEnum userStatus = 3; + nullable UserTypeEnum userType = 4; + nullable CredentialRuleEnum credentialRule = 5; + nullable CredentialStruct credentials[] = 6; + nullable fabric_idx creatorFabricIndex = 7; + nullable fabric_idx lastModifiedFabricIndex = 8; + nullable INT16U nextUserIndex = 9; + } + + request struct ClearUserRequest { + INT16U userIndex = 0; + } + + request struct SetCredentialRequest { + DataOperationTypeEnum operationType = 0; + CredentialStruct credential = 1; + LONG_OCTET_STRING credentialData = 2; + nullable INT16U userIndex = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + } + + response struct SetCredentialResponse = 35 { + DlStatus status = 0; + nullable INT16U userIndex = 1; + nullable INT16U nextCredentialIndex = 2; + } + + request struct GetCredentialStatusRequest { + CredentialStruct credential = 0; + } + + response struct GetCredentialStatusResponse = 37 { + boolean credentialExists = 0; + nullable INT16U userIndex = 1; + nullable fabric_idx creatorFabricIndex = 2; + nullable fabric_idx lastModifiedFabricIndex = 3; + nullable INT16U nextCredentialIndex = 4; + } + + request struct ClearCredentialRequest { + nullable CredentialStruct credential = 0; + } + + request struct UnboltDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + /** This command causes the lock device to lock the door. */ + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + /** This command causes the lock device to unlock the door. */ + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + /** This command causes the lock device to unlock the door with a timeout parameter. */ + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; + /** Set a weekly repeating schedule for a specified user. */ + command access(invoke: administer) SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; + /** Retrieve the specific weekly schedule for the specific user. */ + command access(invoke: administer) GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; + /** Clear the specific weekly schedule or all weekly schedules for the specific user. */ + command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; + /** Set a time-specific schedule ID for a specified user. */ + command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; + /** Returns the year day schedule data for the specified schedule and user indexes. */ + command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; + /** Clears the specific year day schedule or all year day schedules for the specific user. */ + command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; + /** Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. */ + command access(invoke: administer) SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; + /** Get the holiday schedule for the specified index. */ + command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; + /** Clears the holiday schedule or all holiday schedules. */ + command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; + /** Set User into the lock. */ + timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; + /** Retrieve User. */ + command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; + /** Clears a User or all Users. */ + timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; + /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ + timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; + /** Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index. */ + command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; + /** Clear one, one type, or all credentials except ProgrammingPIN credential. */ + timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; + /** This command causes the lock device to unlock the door without pulling the latch. */ + timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; +} + +/** An interface to a generic way to secure a door */ +server cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute nullable DoorStateEnum doorState = 3; + attribute access(write: manage) int32u doorOpenEvents = 4; + attribute access(write: manage) int32u doorClosedEvents = 5; + attribute access(write: manage) int16u openPeriod = 6; + readonly attribute int16u numberOfTotalUsersSupported = 17; + readonly attribute int16u numberOfPINUsersSupported = 18; + readonly attribute int16u numberOfRFIDUsersSupported = 19; + readonly attribute int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute int8u maxPINCodeLength = 23; + readonly attribute int8u minPINCodeLength = 24; + readonly attribute int8u maxRFIDCodeLength = 25; + readonly attribute int8u minRFIDCodeLength = 26; + readonly attribute DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) char_string<3> language = 33; + attribute access(write: manage) int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) boolean enableLocalProgramming = 40; + attribute access(write: manage) boolean enableOneTouchLocking = 41; + attribute access(write: manage) boolean enableInsideStatusLED = 42; + attribute access(write: manage) boolean enablePrivacyModeButton = 43; + attribute access(write: administer) DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) boolean sendPINOverTheAir = 50; + attribute access(write: administer) boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; +} + +/** Provides an interface for controlling and adjusting automatic window coverings. */ +server cluster WindowCovering = 258 { + enum EndProductType : ENUM8 { + kRollerShade = 0; + kRomanShade = 1; + kBalloonShade = 2; + kWovenWood = 3; + kPleatedShade = 4; + kCellularShade = 5; + kLayeredShade = 6; + kLayeredShade2D = 7; + kSheerShade = 8; + kTiltOnlyInteriorBlind = 9; + kInteriorBlind = 10; + kVerticalBlindStripCurtain = 11; + kInteriorVenetianBlind = 12; + kExteriorVenetianBlind = 13; + kLateralLeftCurtain = 14; + kLateralRightCurtain = 15; + kCentralCurtain = 16; + kRollerShutter = 17; + kExteriorVerticalScreen = 18; + kAwningTerracePatio = 19; + kAwningVerticalScreen = 20; + kTiltOnlyPergola = 21; + kSwingingShutter = 22; + kSlidingShutter = 23; + kUnknown = 255; } enum Type : ENUM8 { @@ -2384,6 +3981,163 @@ server cluster PumpConfigurationAndControl = 512 { readonly attribute int16u clusterRevision = 65533; } +/** An interface for configuring and controlling the functionality of a thermostat. */ +client cluster Thermostat = 513 { + enum SetpointAdjustMode : ENUM8 { + kHeat = 0; + kCool = 1; + kBoth = 2; + } + + enum ThermostatControlSequence : ENUM8 { + kCoolingOnly = 0; + kCoolingWithReheat = 1; + kHeatingOnly = 2; + kHeatingWithReheat = 3; + kCoolingAndHeating = 4; + kCoolingAndHeatingWithReheat = 5; + } + + enum ThermostatRunningMode : ENUM8 { + kOff = 0; + kCool = 3; + kHeat = 4; + } + + enum ThermostatSystemMode : ENUM8 { + kOff = 0; + kAuto = 1; + kCool = 3; + kHeat = 4; + kEmergencyHeat = 5; + kPrecooling = 6; + kFanOnly = 7; + kDry = 8; + kSleep = 9; + } + + bitmap DayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + kAway = 0x80; + } + + bitmap Feature : BITMAP32 { + kHeating = 0x1; + kCooling = 0x2; + kOccupancy = 0x4; + kScheduleConfiguration = 0x8; + kSetback = 0x10; + kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; + } + + bitmap ModeForSequence : BITMAP8 { + kHeatSetpointPresent = 0x1; + kCoolSetpointPresent = 0x2; + } + + struct ThermostatScheduleTransition { + int16u transitionTime = 0; + nullable int16s heatSetpoint = 1; + nullable int16s coolSetpoint = 2; + } + + readonly attribute nullable int16s localTemperature = 0; + readonly attribute optional nullable int16s outdoorTemperature = 1; + readonly attribute optional bitmap8 occupancy = 2; + readonly attribute optional int16s absMinHeatSetpointLimit = 3; + readonly attribute optional int16s absMaxHeatSetpointLimit = 4; + readonly attribute optional int16s absMinCoolSetpointLimit = 5; + readonly attribute optional int16s absMaxCoolSetpointLimit = 6; + readonly attribute optional int8u PICoolingDemand = 7; + readonly attribute optional int8u PIHeatingDemand = 8; + attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9; + attribute access(write: manage) optional int8s localTemperatureCalibration = 16; + attribute optional int16s occupiedCoolingSetpoint = 17; + attribute optional int16s occupiedHeatingSetpoint = 18; + attribute optional int16s unoccupiedCoolingSetpoint = 19; + attribute optional int16s unoccupiedHeatingSetpoint = 20; + attribute access(write: manage) optional int16s minHeatSetpointLimit = 21; + attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) optional int16s minCoolSetpointLimit = 23; + attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) optional int8s minSetpointDeadBand = 25; + attribute access(write: manage) optional bitmap8 remoteSensing = 26; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; + readonly attribute optional enum8 thermostatRunningMode = 30; + readonly attribute optional enum8 startOfWeek = 32; + readonly attribute optional int8u numberOfWeeklyTransitions = 33; + readonly attribute optional int8u numberOfDailyTransitions = 34; + attribute access(write: manage) optional enum8 temperatureSetpointHold = 35; + attribute access(write: manage) optional nullable int16u temperatureSetpointHoldDuration = 36; + attribute access(write: manage) optional bitmap8 thermostatProgrammingOperationMode = 37; + readonly attribute optional bitmap16 thermostatRunningState = 41; + readonly attribute optional enum8 setpointChangeSource = 48; + readonly attribute optional nullable int16s setpointChangeAmount = 49; + readonly attribute optional epoch_s setpointChangeSourceTimestamp = 50; + attribute access(write: manage) optional nullable int8u occupiedSetback = 52; + readonly attribute optional nullable int8u occupiedSetbackMin = 53; + readonly attribute optional nullable int8u occupiedSetbackMax = 54; + attribute access(write: manage) optional nullable int8u unoccupiedSetback = 55; + readonly attribute optional nullable int8u unoccupiedSetbackMin = 56; + readonly attribute optional nullable int8u unoccupiedSetbackMax = 57; + attribute access(write: manage) optional int8u emergencyHeatDelta = 58; + attribute access(write: manage) optional enum8 ACType = 64; + attribute access(write: manage) optional int16u ACCapacity = 65; + attribute access(write: manage) optional enum8 ACRefrigerantType = 66; + attribute access(write: manage) optional enum8 ACCompressorType = 67; + attribute access(write: manage) optional bitmap32 ACErrorCode = 68; + attribute access(write: manage) optional enum8 ACLouverPosition = 69; + readonly attribute optional nullable int16s ACCoilTemperature = 70; + attribute access(write: manage) optional enum8 ACCapacityformat = 71; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SetpointRaiseLowerRequest { + SetpointAdjustMode mode = 0; + INT8S amount = 1; + } + + response struct GetWeeklyScheduleResponse = 0 { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct SetWeeklyScheduleRequest { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct GetWeeklyScheduleRequest { + DayOfWeek daysToReturn = 0; + ModeForSequence modeToReturn = 1; + } + + /** Command description for SetpointRaiseLower */ + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; + /** Command description for SetWeeklySchedule */ + command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; + /** Command description for GetWeeklySchedule */ + command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; + /** The Clear Weekly Schedule command is used to clear the weekly schedule. */ + command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; +} + /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { enum SetpointAdjustMode : ENUM8 { @@ -2452,21 +4206,53 @@ server 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) 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; @@ -2501,6 +4287,324 @@ server cluster ThermostatUserInterfaceConfiguration = 516 { readonly attribute int16u clusterRevision = 65533; } +/** Attributes and commands for controlling the color properties of a color-capable light. */ +client cluster ColorControl = 768 { + enum ColorLoopAction : ENUM8 { + kDeactivate = 0; + kActivateFromColorLoopStartEnhancedHue = 1; + kActivateFromEnhancedCurrentHue = 2; + } + + enum ColorLoopDirection : ENUM8 { + kDecrementHue = 0; + kIncrementHue = 1; + } + + enum ColorMode : ENUM8 { + kCurrentHueAndCurrentSaturation = 0; + kCurrentXAndCurrentY = 1; + kColorTemperature = 2; + } + + enum HueDirection : ENUM8 { + kShortestDistance = 0; + kLongestDistance = 1; + kUp = 2; + kDown = 3; + } + + enum HueMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum HueStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + enum SaturationMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum SaturationStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + bitmap ColorCapabilities : BITMAP16 { + kHueSaturationSupported = 0x1; + kEnhancedHueSupported = 0x2; + kColorLoopSupported = 0x4; + kXYAttributesSupported = 0x8; + kColorTemperatureSupported = 0x10; + } + + bitmap ColorLoopUpdateFlags : BITMAP8 { + kUpdateAction = 0x1; + kUpdateDirection = 0x2; + kUpdateTime = 0x4; + kUpdateStartHue = 0x8; + } + + bitmap Feature : BITMAP32 { + kHueAndSaturation = 0x1; + kEnhancedHue = 0x2; + kColorLoop = 0x4; + kXy = 0x8; + kColorTemperature = 0x10; + } + + readonly attribute optional int8u currentHue = 0; + readonly attribute optional int8u currentSaturation = 1; + readonly attribute optional int16u remainingTime = 2; + readonly attribute optional int16u currentX = 3; + readonly attribute optional int16u currentY = 4; + readonly attribute optional enum8 driftCompensation = 5; + readonly attribute optional char_string<254> compensationText = 6; + readonly attribute optional int16u colorTemperatureMireds = 7; + readonly attribute enum8 colorMode = 8; + attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute optional int16u primary1X = 17; + readonly attribute optional int16u primary1Y = 18; + readonly attribute optional nullable int8u primary1Intensity = 19; + readonly attribute optional int16u primary2X = 21; + readonly attribute optional int16u primary2Y = 22; + readonly attribute optional nullable int8u primary2Intensity = 23; + readonly attribute optional int16u primary3X = 25; + readonly attribute optional int16u primary3Y = 26; + readonly attribute optional nullable int8u primary3Intensity = 27; + readonly attribute optional int16u primary4X = 32; + readonly attribute optional int16u primary4Y = 33; + readonly attribute optional nullable int8u primary4Intensity = 34; + readonly attribute optional int16u primary5X = 36; + readonly attribute optional int16u primary5Y = 37; + readonly attribute optional nullable int8u primary5Intensity = 38; + readonly attribute optional int16u primary6X = 40; + readonly attribute optional int16u primary6Y = 41; + readonly attribute optional nullable int8u primary6Intensity = 42; + attribute access(write: manage) optional int16u whitePointX = 48; + attribute access(write: manage) optional int16u whitePointY = 49; + attribute access(write: manage) optional int16u colorPointRX = 50; + attribute access(write: manage) optional int16u colorPointRY = 51; + attribute access(write: manage) optional nullable int8u colorPointRIntensity = 52; + attribute access(write: manage) optional int16u colorPointGX = 54; + attribute access(write: manage) optional int16u colorPointGY = 55; + attribute access(write: manage) optional nullable int8u colorPointGIntensity = 56; + attribute access(write: manage) optional int16u colorPointBX = 58; + attribute access(write: manage) optional int16u colorPointBY = 59; + attribute access(write: manage) optional nullable int8u colorPointBIntensity = 60; + readonly attribute optional int16u enhancedCurrentHue = 16384; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute optional int8u colorLoopActive = 16386; + readonly attribute optional int8u colorLoopDirection = 16387; + readonly attribute optional int16u colorLoopTime = 16388; + readonly attribute optional int16u colorLoopStartEnhancedHue = 16389; + readonly attribute optional int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute optional int16u colorTempPhysicalMinMireds = 16395; + readonly attribute optional int16u colorTempPhysicalMaxMireds = 16396; + readonly attribute optional int16u coupleColorTempToLevelMinMireds = 16397; + attribute access(write: manage) optional nullable int16u startUpColorTemperatureMireds = 16400; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorRequest { + INT16U colorX = 0; + INT16U colorY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveColorRequest { + INT16S rateX = 0; + INT16S rateY = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepColorRequest { + INT16S stepX = 0; + INT16S stepY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + /** Move to specified hue. */ + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + /** Move hue up or down at specified rate. */ + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + /** Step hue up or down by specified size at specified rate. */ + command StepHue(StepHueRequest): DefaultSuccess = 2; + /** Move to specified saturation. */ + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + /** Move saturation up or down at specified rate. */ + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + /** Step saturation up or down by specified size at specified rate. */ + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + /** Move to hue and saturation. */ + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; + /** Move to specified color. */ + command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; + /** Moves the color. */ + command MoveColor(MoveColorRequest): DefaultSuccess = 8; + /** Steps the lighting to a specific color. */ + command StepColor(StepColorRequest): DefaultSuccess = 9; + /** Move to a specific color temperature. */ + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + /** Command description for EnhancedMoveToHue */ + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + /** Command description for EnhancedMoveHue */ + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + /** Command description for EnhancedStepHue */ + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + /** Command description for EnhancedMoveToHueAndSaturation */ + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + /** Command description for ColorLoopSet */ + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + /** Command description for StopMoveStep */ + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + /** Command description for MoveColorTemperature */ + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + /** Command description for StepColorTemperature */ + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; +} + /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { enum ColorLoopAction : ENUM8 { @@ -2572,9 +4676,56 @@ server cluster ColorControl = 768 { kColorTemperature = 0x10; } + readonly attribute int8u currentHue = 0; + readonly attribute int8u currentSaturation = 1; + 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; + readonly attribute int8u colorLoopDirection = 16387; + readonly attribute int16u colorLoopTime = 16388; + readonly attribute int16u colorLoopStartEnhancedHue = 16389; + readonly attribute int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute int16u colorTempPhysicalMinMireds = 16395; + readonly attribute int16u colorTempPhysicalMaxMireds = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; attribute access(write: manage) nullable int16u startUpColorTemperatureMireds = 16400; readonly attribute command_id generatedCommandList[] = 65528; @@ -2584,6 +4735,59 @@ server cluster ColorControl = 768 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + request struct MoveToColorRequest { INT16U colorX = 0; INT16U colorY = 1; @@ -2607,9 +4811,97 @@ server cluster ColorControl = 768 { BITMAP8 optionsOverride = 4; } + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + command StepHue(StepHueRequest): DefaultSuccess = 2; + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; command MoveColor(MoveColorRequest): DefaultSuccess = 8; command StepColor(StepColorRequest): DefaultSuccess = 9; + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; } /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ @@ -2764,21 +5056,378 @@ server cluster OccupancySensing = 1030 { readonly attribute int16u clusterRevision = 65533; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -client cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the current Channel on a device. */ +client cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute optional ChannelInfoStruct channelList[] = 0; + readonly attribute optional nullable LineupInfoStruct lineup = 1; + readonly attribute optional nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + response struct ChangeChannelResponse = 1 { + ChannelStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + /** Change the channel on the media player to the channel case-insensitive exact matching the value passed as an argument. */ + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + /** Change the channel on the media plaeyer to the channel with the given Number in the ChannelList attribute. */ + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + /** This command provides channel up and channel down functionality, but allows channel index jumps of size Count. When the value of the increase or decrease is larger than the number of channels remaining in the given direction, then the behavior SHALL be to return to the beginning (or end) of the channel list and continue. For example, if the current channel is at index 0 and count value of -1 is given, then the current channel should change to the last channel. */ + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for controlling the current Channel on a device. */ +server cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute ChannelInfoStruct channelList[] = 0; + readonly attribute nullable LineupInfoStruct lineup = 1; + readonly attribute nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +client cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute optional int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct NavigateTargetRequest { + INT8U target = 0; + optional CHAR_STRING data = 1; + } + + response struct NavigateTargetResponse = 1 { + TargetNavigatorStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + /** Upon receipt, this SHALL navigation the UX to the target identified. */ + command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +server cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +client cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute optional nullable epoch_us startTime = 1; + readonly attribute optional nullable int64u duration = 2; + readonly attribute optional nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute optional single playbackSpeed = 4; + readonly attribute optional nullable int64u seekRangeEnd = 5; + readonly attribute optional nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct SeekRequest { + INT64U position = 0; + } + + /** Upon receipt, this SHALL play media. */ + command Play(): PlaybackResponse = 0; + /** Upon receipt, this SHALL pause media. */ + command Pause(): PlaybackResponse = 1; + /** Upon receipt, this SHALL stop media. User experience is context-specific. This will often navigate the user back to the location where media was originally launched. */ + command Stop(): PlaybackResponse = 2; + /** Upon receipt, this SHALL Start Over with the current media playback item. */ + command StartOver(): PlaybackResponse = 3; + /** Upon receipt, this SHALL cause the handler to be invoked for "Previous". User experience is context-specific. This will often Go back to the previous media playback item. */ + command Previous(): PlaybackResponse = 4; + /** Upon receipt, this SHALL cause the handler to be invoked for "Next". User experience is context-specific. This will often Go forward to the next media playback item. */ + command Next(): PlaybackResponse = 5; + /** Upon receipt, this SHALL Rewind through media. Different Rewind speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command Rewind(): PlaybackResponse = 6; + /** Upon receipt, this SHALL Advance through media. Different FF speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command FastForward(): PlaybackResponse = 7; + /** Upon receipt, this SHALL Skip forward in the media by the given number of seconds, using the data as follows: */ + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +server cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute nullable epoch_us startTime = 1; + readonly attribute nullable int64u duration = 2; + readonly attribute nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute single playbackSpeed = 4; + readonly attribute nullable int64u seekRangeEnd = 5; + readonly attribute nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SeekRequest { + INT64U position = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + command Play(): PlaybackResponse = 0; + command Pause(): PlaybackResponse = 1; + command Stop(): PlaybackResponse = 2; + command StartOver(): PlaybackResponse = 3; + command Previous(): PlaybackResponse = 4; + command Next(): PlaybackResponse = 5; + command Rewind(): PlaybackResponse = 6; + command FastForward(): PlaybackResponse = 7; + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +client cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute optional int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2786,35 +5435,55 @@ client cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - /** Upon receipt, this SHALL navigation the UX to the target identified. */ - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + /** Upon receipt, this SHALL change the input on the media device to the input at a specific index in the Input List. */ + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL display the active status of the input list on screen. */ + command ShowInputStatus(): DefaultSuccess = 1; + /** Upon receipt, this SHALL hide the input list from the screen. */ + command HideInputStatus(): DefaultSuccess = 2; + /** Upon receipt, this SHALL rename the input at a specific index in the Input List. Updates to the input name SHALL appear in the TV settings menus. */ + command RenameInput(RenameInputRequest): DefaultSuccess = 3; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -server cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +server cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2822,17 +5491,32 @@ server cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + command ShowInputStatus(): DefaultSuccess = 1; + command HideInputStatus(): DefaultSuccess = 2; + command RenameInput(RenameInputRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for managing low power mode on a device. */ +client cluster LowPower = 1288 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** This command shall put the device into low power mode. */ + command Sleep(): DefaultSuccess = 0; } /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ @@ -3066,16 +5750,6 @@ server cluster KeypadInput = 1289 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - - request struct SendKeyRequest { - CecKeyCode keyCode = 0; - } - - response struct SendKeyResponse = 1 { - KeypadInputStatusEnum status = 0; - } - - command SendKey(SendKeyRequest): SendKeyResponse = 0; } /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ @@ -3292,6 +5966,183 @@ server cluster ContentLauncher = 1290 { command LaunchURL(LaunchURLRequest): LauncherResponse = 1; } +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +client cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute optional int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + /** Upon receipt, this SHALL change the output on the media device to the output at a specific index in the Output List. */ + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL rename the output at a specific index in the Output List. Updates to the output name SHALL appear in the TV settings menus. */ + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +server cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +client cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute optional INT16U catalogList[] = 0; + attribute optional nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LaunchAppRequest { + optional ApplicationStruct application = 0; + optional OCTET_STRING data = 1; + } + + request struct StopAppRequest { + optional ApplicationStruct application = 0; + } + + request struct HideAppRequest { + optional ApplicationStruct application = 0; + } + + response struct LauncherResponse = 3 { + ApplicationLauncherStatusEnum status = 0; + optional OCTET_STRING data = 1; + } + + /** Upon receipt, this SHALL launch the specified app with optional data. The TV Device SHALL launch and bring to foreground the identified application in the command if the application is not already launched and in foreground. The TV Device SHALL update state attribute on the Application Basic cluster of the Endpoint corresponding to the launched application. This command returns a Launch Response. */ + command LaunchApp(LaunchAppRequest): LauncherResponse = 0; + /** Upon receipt on a Video Player endpoint this SHALL stop the specified application if it is running. */ + command StopApp(StopAppRequest): LauncherResponse = 1; + /** Upon receipt on a Video Player endpoint this SHALL hide the specified application if it is running and visible. */ + command HideApp(HideAppRequest): LauncherResponse = 2; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +server cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute INT16U catalogList[] = 0; + attribute nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ client cluster ApplicationBasic = 1293 { enum ApplicationStatusEnum : ENUM8 { @@ -3352,30 +6203,86 @@ server cluster ApplicationBasic = 1293 { readonly attribute int16u clusterRevision = 65533; } +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +client cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ + timed command Login(LoginRequest): DefaultSuccess = 2; + /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ + timed command Logout(): DefaultSuccess = 3; +} + +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +server cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + timed command Login(LoginRequest): DefaultSuccess = 2; + timed command Logout(): DefaultSuccess = 3; +} + endpoint 0 { device type anonymousEndpointType = 65280, version 1; - binding cluster OnOff; binding cluster GeneralCommissioning; + binding cluster ThreadNetworkDiagnostics; binding cluster Switch; binding cluster OperationalCredentials; binding cluster ModeSelect; + binding cluster DoorLock; + binding cluster Thermostat; binding cluster ThermostatUserInterfaceConfiguration; binding cluster TemperatureMeasurement; binding cluster RelativeHumidityMeasurement; + binding cluster Channel; binding cluster TargetNavigator; + binding cluster MediaPlayback; + binding cluster MediaInput; + binding cluster LowPower; binding cluster KeypadInput; binding cluster ContentLauncher; + binding cluster AudioOutput; + binding cluster ApplicationLauncher; binding cluster ApplicationBasic; - - server cluster OnOff { - ram attribute onOff default = 0x00; - ram attribute globalSceneControl default = 0x01; - ram attribute onTime default = 0x0000; - ram attribute offWaitTime default = 0x0000; - ram attribute startUpOnOff default = 0xFF; - ram attribute featureMap default = 0x0001; - ram attribute clusterRevision default = 4; - } + binding cluster AccountLogin; server cluster Descriptor { callback attribute deviceTypeList; @@ -3548,6 +6455,73 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster ThreadNetworkDiagnostics { + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount default = 0; + callback attribute neighborTable default = 0; + callback attribute routeTable default = 0; + callback attribute partitionId default = 0; + callback attribute weighting default = 0; + callback attribute dataVersion default = 0; + callback attribute stableDataVersion default = 0; + callback attribute leaderRouterId default = 0; + callback attribute detachedRoleCount default = 0; + callback attribute childRoleCount default = 0; + callback attribute routerRoleCount default = 0; + callback attribute leaderRoleCount default = 0; + callback attribute attachAttemptCount default = 0; + callback attribute partitionIdChangeCount default = 0; + callback attribute betterPartitionAttachAttemptCount default = 0; + callback attribute parentChangeCount default = 0; + callback attribute txTotalCount default = 0; + callback attribute txUnicastCount default = 0; + callback attribute txBroadcastCount default = 0; + callback attribute txAckRequestedCount default = 0; + callback attribute txAckedCount default = 0; + callback attribute txNoAckRequestedCount default = 0; + callback attribute txDataCount default = 0; + callback attribute txDataPollCount default = 0; + callback attribute txBeaconCount default = 0; + callback attribute txBeaconRequestCount default = 0; + callback attribute txOtherCount default = 0; + callback attribute txRetryCount default = 0; + callback attribute txDirectMaxRetryExpiryCount default = 0; + callback attribute txIndirectMaxRetryExpiryCount default = 0; + callback attribute txErrCcaCount default = 0; + callback attribute txErrAbortCount default = 0; + callback attribute txErrBusyChannelCount default = 0; + callback attribute rxTotalCount default = 0; + callback attribute rxUnicastCount default = 0; + callback attribute rxBroadcastCount default = 0; + callback attribute rxDataCount default = 0; + callback attribute rxDataPollCount default = 0; + callback attribute rxBeaconCount default = 0; + callback attribute rxBeaconRequestCount default = 0; + callback attribute rxOtherCount default = 0; + callback attribute rxAddressFilteredCount default = 0; + callback attribute rxDestAddrFilteredCount default = 0; + callback attribute rxDuplicatedCount default = 0; + callback attribute rxErrNoFrameCount default = 0; + callback attribute rxErrUnknownNeighborCount default = 0; + callback attribute rxErrInvalidSrcAddrCount default = 0; + callback attribute rxErrSecCount default = 0; + callback attribute rxErrFcsCount default = 0; + callback attribute rxErrOtherCount default = 0; + callback attribute activeTimestamp default = 0; + callback attribute pendingTimestamp default = 0; + callback attribute delay default = 0; + callback attribute securityPolicy; + callback attribute channelPage0Mask; + callback attribute operationalDatasetComponents; + callback attribute activeNetworkFaultsList; + ram attribute clusterRevision default = 1; + } + server cluster WiFiNetworkDiagnostics { emits event Disconnection; emits event AssociationFailure; @@ -3583,6 +6557,29 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster BridgedDeviceBasicInformation { + emits event StartUp; + emits event ShutDown; + emits event Leave; + callback attribute vendorName; + callback attribute vendorID; + callback attribute productName; + persist attribute nodeLabel; + callback attribute hardwareVersion; + callback attribute hardwareVersionString; + callback attribute softwareVersion; + callback attribute softwareVersionString; + callback attribute manufacturingDate; + callback attribute partNumber; + callback attribute productURL; + callback attribute productLabel; + callback attribute serialNumber; + callback attribute uniqueID; + callback attribute productAppearance; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 2; + } + server cluster Switch { ram attribute numberOfPositions default = 2; ram attribute currentPosition; @@ -3637,6 +6634,46 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster DoorLock { + callback attribute lockState; + callback attribute lockType; + ram attribute actuatorEnabled; + callback attribute doorState; + callback attribute doorOpenEvents; + callback attribute doorClosedEvents; + callback attribute openPeriod; + callback attribute numberOfTotalUsersSupported default = 0; + callback attribute numberOfPINUsersSupported default = 0; + callback attribute numberOfRFIDUsersSupported default = 0; + callback attribute numberOfWeekDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfYearDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfHolidaySchedulesSupported default = 0; + callback attribute maxPINCodeLength; + callback attribute minPINCodeLength; + callback attribute maxRFIDCodeLength; + callback attribute minRFIDCodeLength; + callback attribute credentialRulesSupport default = 1; + callback attribute numberOfCredentialsSupportedPerUser default = 0; + callback attribute language; + callback attribute LEDSettings default = 0; + callback attribute autoRelockTime; + callback attribute soundVolume default = 0; + callback attribute operatingMode default = 0; + callback attribute supportedOperatingModes default = 65526; + callback attribute defaultConfigurationRegister default = 0; + callback attribute enableLocalProgramming default = 1; + callback attribute enableOneTouchLocking default = 0; + callback attribute enableInsideStatusLED default = 0; + callback attribute enablePrivacyModeButton default = 0; + callback attribute localProgrammingFeatures default = 0; + callback attribute wrongCodeEntryLimit; + callback attribute userCodeTemporaryDisableTime; + callback attribute sendPINOverTheAir default = 0; + callback attribute requirePINforRemoteOperation default = 0; + callback attribute expiringUserTimeout; + ram attribute clusterRevision default = 6; + } + server cluster WindowCovering { ram attribute type default = 0x00; persist attribute currentPositionLift default = 0x7FFF; @@ -3690,21 +6727,53 @@ endpoint 0 { server cluster Thermostat { ram attribute localTemperature; + callback attribute outdoorTemperature; + callback attribute occupancy default = 1; ram attribute absMinHeatSetpointLimit default = 0x02BC; + callback attribute absMaxHeatSetpointLimit default = 0x0BB8; ram attribute absMinCoolSetpointLimit default = 0x0640; ram attribute absMaxCoolSetpointLimit default = 0x0C80; + ram attribute PICoolingDemand; + ram attribute PIHeatingDemand; + callback attribute HVACSystemTypeConfiguration default = 0; + callback attribute localTemperatureCalibration default = 0; ram attribute occupiedCoolingSetpoint default = 0x0A28; ram attribute occupiedHeatingSetpoint default = 0x07D0; + callback attribute unoccupiedCoolingSetpoint default = 0x0A28; + callback attribute unoccupiedHeatingSetpoint default = 0x07D0; ram attribute minHeatSetpointLimit default = 0x02BC; ram attribute maxHeatSetpointLimit default = 0x0BB8; ram attribute minCoolSetpointLimit default = 0x0640; ram attribute maxCoolSetpointLimit default = 0x0C80; ram attribute minSetpointDeadBand default = 0x19; + callback attribute remoteSensing default = 0x0; ram attribute controlSequenceOfOperation default = 0x04; ram attribute systemMode default = 0x01; + callback attribute thermostatRunningMode default = 0x00; ram attribute startOfWeek default = 0; ram attribute numberOfWeeklyTransitions default = 7; ram attribute numberOfDailyTransitions default = 4; + ram attribute temperatureSetpointHold default = 0x00; + callback attribute temperatureSetpointHoldDuration; + callback attribute thermostatProgrammingOperationMode default = 0x00; + callback attribute thermostatRunningState; + callback attribute setpointChangeSource default = 0x00; + callback attribute setpointChangeAmount; + callback attribute setpointChangeSourceTimestamp default = 0x00; + callback attribute occupiedSetback; + callback attribute occupiedSetbackMin; + callback attribute occupiedSetbackMax; + callback attribute unoccupiedSetback; + callback attribute unoccupiedSetbackMin; + callback attribute unoccupiedSetbackMax; + callback attribute emergencyHeatDelta default = 0x009F6; + callback attribute ACType default = 0x00; + callback attribute ACCapacity default = 0x00; + callback attribute ACRefrigerantType; + callback attribute ACCompressorType default = 0x00; + callback attribute ACLouverPosition default = 0x00; + callback attribute ACCoilTemperature; + callback attribute ACCapacityformat default = 0x00; ram attribute featureMap default = 0x000b; ram attribute clusterRevision default = 5; } @@ -3774,6 +6843,14 @@ endpoint 0 { ram attribute clusterRevision default = 3; } + server cluster Channel { + callback attribute channelList; + callback attribute lineup; + callback attribute currentChannel; + ram attribute featureMap default = 0; + callback attribute clusterRevision default = 1; + } + server cluster TargetNavigator { callback attribute targetList; ram attribute currentTarget default = 0; @@ -3784,6 +6861,24 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster MediaPlayback { + ram attribute currentState; + ram attribute startTime; + ram attribute duration; + callback attribute sampledPosition; + ram attribute playbackSpeed default = 1; + ram attribute seekRangeEnd; + ram attribute seekRangeStart default = 1; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster MediaInput { + callback attribute inputList; + callback attribute currentInput; + ram attribute clusterRevision default = 1; + } + server cluster KeypadInput { callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3802,6 +6897,20 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster AudioOutput { + callback attribute outputList; + ram attribute currentOutput; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster ApplicationLauncher { + callback attribute catalogList; + callback attribute currentApp; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + server cluster ApplicationBasic { ram attribute vendorName; ram attribute vendorID default = 0x0; @@ -3817,11 +6926,17 @@ endpoint 0 { ram attribute featureMap default = 0; ram attribute clusterRevision default = 1; } + + server cluster AccountLogin { + ram attribute clusterRevision default = 1; + } } endpoint 1 { device type anonymousEndpointType = 257, version 1; binding cluster OnOff; + binding cluster LevelControl; binding cluster FixedLabel; + binding cluster ColorControl; server cluster Identify { ram attribute identifyTime default = 0x0; @@ -3859,24 +6974,31 @@ endpoint 1 { } server cluster OnOff { - ram attribute onOff default = 0; - ram attribute globalSceneControl default = 1; - ram attribute onTime default = 0; - ram attribute offWaitTime default = 0; - ram attribute startUpOnOff; + ram attribute onOff default = 0x00; + ram attribute globalSceneControl default = 0x01; + ram attribute onTime default = 0x0000; + ram attribute offWaitTime default = 0x0000; + ram attribute startUpOnOff default = 0xFF; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 0; + ram attribute featureMap default = 0x0001; ram attribute clusterRevision default = 4; } server cluster LevelControl { ram attribute currentLevel default = 0x00; ram attribute remainingTime default = 0x0000; + ram attribute minLevel default = 0x00; + ram attribute maxLevel default = 0xFE; + ram attribute minFrequency default = 0x0000; + ram attribute maxFrequency default = 0x0000; ram attribute options default = 0x00; + ram attribute onOffTransitionTime default = 0x0000; ram attribute onLevel; + ram attribute onTransitionTime; + ram attribute offTransitionTime; ram attribute startUpCurrentLevel; callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3930,9 +7052,56 @@ endpoint 1 { } server cluster ColorControl { + ram attribute currentHue default = 0x00; + ram attribute currentSaturation default = 0x00; + callback attribute remainingTime default = 0x00; ram attribute currentX default = 0x616B; ram attribute currentY default = 0x607D; + callback attribute driftCompensation; + callback attribute compensationText; + ram attribute colorTemperatureMireds default = 0x00FA; + callback attribute colorMode default = 1; ram attribute options default = 0x00; + callback attribute numberOfPrimaries; + callback attribute primary1X; + callback attribute primary1Y; + callback attribute primary1Intensity; + callback attribute primary2X; + callback attribute primary2Y; + callback attribute primary2Intensity; + callback attribute primary3X; + callback attribute primary3Y; + callback attribute primary3Intensity; + callback attribute primary4X; + callback attribute primary4Y; + callback attribute primary4Intensity; + callback attribute primary5X; + callback attribute primary5Y; + callback attribute primary5Intensity; + callback attribute primary6X; + callback attribute primary6Y; + callback attribute primary6Intensity; + callback attribute whitePointX; + callback attribute whitePointY; + callback attribute colorPointRX; + callback attribute colorPointRY; + callback attribute colorPointRIntensity; + callback attribute colorPointGX; + callback attribute colorPointGY; + callback attribute colorPointGIntensity; + callback attribute colorPointBX; + callback attribute colorPointBY; + callback attribute colorPointBIntensity; + callback attribute enhancedCurrentHue default = 0x00; + callback attribute enhancedColorMode default = 0x01; + ram attribute colorLoopActive default = 0x00; + ram attribute colorLoopDirection default = 0x00; + ram attribute colorLoopTime default = 0x0019; + ram attribute colorLoopStartEnhancedHue default = 0x2300; + callback attribute colorLoopStoredEnhancedHue default = 0x00; + callback attribute colorCapabilities default = 0x00; + callback attribute colorTempPhysicalMinMireds default = 0x00; + callback attribute colorTempPhysicalMaxMireds default = 0xfeff; ram attribute coupleColorTempToLevelMinMireds; ram attribute startUpColorTemperatureMireds; ram attribute featureMap default = 0; diff --git a/examples/placeholder/linux/apps/app2/config.zap b/examples/placeholder/linux/apps/app2/config.zap index 431464e472546b..22cf3673249346 100644 --- a/examples/placeholder/linux/apps/app2/config.zap +++ b/examples/placeholder/linux/apps/app2/config.zap @@ -38,204 +38,6 @@ "deviceTypeCode": null, "deviceTypeProfileId": null, "clusters": [ - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "Off", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "On", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "Toggle", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithRecallGlobalScene", - "code": 65, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithTimedOff", - "code": 66, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "OnOff", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "GlobalSceneControl", - "code": 16384, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OnTime", - "code": 16385, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OffWaitTime", - "code": 16386, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "StartUpOnOff", - "code": 16387, - "mfgCode": null, - "side": "server", - "type": "OnOffStartUpOnOff", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFF", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0001", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, { "name": "Descriptor", "code": 29, @@ -3043,12 +2845,12 @@ ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "commands": [ { "name": "ResetCounts", @@ -3072,26 +2874,42 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "BSSID", + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Channel", "code": 0, "mfgCode": null, "side": "server", - "type": "octet_string", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -3099,15 +2917,15 @@ "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SecurityType", + "name": "RoutingRole", "code": 1, "mfgCode": null, "side": "server", - "type": "SecurityTypeEnum", + "type": "RoutingRoleEnum", "included": 1, "storageOption": "External", "singleton": 0, @@ -3119,23 +2937,23 @@ "reportableChange": 0 }, { - "name": "WiFiVersion", + "name": "NetworkName", "code": 2, "mfgCode": null, "side": "server", - "type": "WiFiVersionEnum", + "type": "String", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ChannelNumber", + "name": "PanId", "code": 3, "mfgCode": null, "side": "server", @@ -3144,94 +2962,94 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RSSI", + "name": "ExtendedPanId", "code": 4, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "BeaconLostCount", + "name": "MeshLocalPrefix", "code": 5, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "octet_string", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "BeaconRxCount", + "name": "OverrunCount", "code": 6, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketMulticastRxCount", + "name": "NeighborTable", "code": 7, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "NeighborTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketMulticastTxCount", + "name": "RouteTable", "code": 8, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "RouteTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketUnicastRxCount", + "name": "PartitionId", "code": 9, "mfgCode": null, "side": "server", @@ -3240,1111 +3058,880 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketUnicastTxCount", + "name": "Weighting", "code": 10, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentMaxRate", + "name": "DataVersion", "code": 11, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OverrunCount", + "name": "StableDataVersion", "code": 12, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "LeaderRouterId", + "code": 13, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DetachedRoleCount", + "code": 14, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ], - "events": [ - { - "name": "Disconnection", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 }, { - "name": "AssociationFailure", - "code": 1, + "name": "ChildRoleCount", + "code": 15, "mfgCode": null, "side": "server", - "included": 1 + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "ConnectionStatus", - "code": 2, + "name": "RouterRoleCount", + "code": 16, "mfgCode": null, "side": "server", - "included": 1 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "ResetCounts", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "PHYRate", - "code": 0, + "name": "LeaderRoleCount", + "code": 17, "mfgCode": null, "side": "server", - "type": "PHYRateEnum", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FullDuplex", - "code": 1, + "name": "AttachAttemptCount", + "code": 18, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketRxCount", - "code": 2, + "name": "PartitionIdChangeCount", + "code": 19, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketTxCount", - "code": 3, + "name": "BetterPartitionAttachAttemptCount", + "code": 20, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TxErrCount", - "code": 4, + "name": "ParentChangeCount", + "code": 21, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CollisionCount", - "code": 5, + "name": "TxTotalCount", + "code": 22, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OverrunCount", - "code": 6, + "name": "TxUnicastCount", + "code": 23, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CarrierDetect", - "code": 7, + "name": "TxBroadcastCount", + "code": 24, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TimeSinceReset", - "code": 8, + "name": "TxAckRequestedCount", + "code": 25, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxAckedCount", + "code": 26, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxNoAckRequestedCount", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxDataCount", + "code": 28, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxDataPollCount", + "code": 29, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "NumberOfPositions", - "code": 0, + "name": "TxBeaconCount", + "code": 30, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPosition", - "code": 1, + "name": "TxBeaconRequestCount", + "code": 31, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MultiPressMax", - "code": 2, + "name": "TxOtherCount", + "code": 32, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "TxRetryCount", + "code": 33, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxErrCcaCount", + "code": 36, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxErrAbortCount", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "OpenCommissioningWindow", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "OpenBasicCommissioningWindow", - "code": 1, + "name": "TxErrBusyChannelCount", + "code": 38, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RevokeCommissioning", - "code": 2, + "name": "RxTotalCount", + "code": 39, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxUnicastCount", + "code": 40, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "WindowStatus", - "code": 0, + "name": "RxBroadcastCount", + "code": 41, "mfgCode": null, "side": "server", - "type": "CommissioningWindowStatusEnum", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminFabricIndex", - "code": 1, + "name": "RxDataCount", + "code": 42, "mfgCode": null, "side": "server", - "type": "fabric_idx", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminVendorId", - "code": 2, + "name": "RxDataPollCount", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxBeaconCount", + "code": 44, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxBeaconRequestCount", + "code": 45, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ + }, { - "name": "AttestationRequest", - "code": 0, + "name": "RxOtherCount", + "code": 46, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CertificateChainRequest", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CSRRequest", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddNOC", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateNOC", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateFabricLabel", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "RemoveFabric", - "code": 10, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddTrustedRootCertificate", - "code": 11, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AttestationResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CertificateChainResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CSRResponse", - "code": 5, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "NOCResponse", - "code": 8, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "Fabrics", - "code": 1, + "name": "RxAddressFilteredCount", + "code": 47, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedFabrics", - "code": 2, + "name": "RxDestAddrFilteredCount", + "code": 48, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CommissionedFabrics", - "code": 3, + "name": "RxDuplicatedCount", + "code": 49, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "TrustedRootCertificates", - "code": 4, + "name": "RxErrNoFrameCount", + "code": 50, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentFabricIndex", - "code": 5, + "name": "RxErrUnknownNeighborCount", + "code": 51, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxErrInvalidSrcAddrCount", + "code": 52, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrSecCount", + "code": 53, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrFcsCount", + "code": 54, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "RxErrOtherCount", + "code": 55, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ActiveTimestamp", + "code": 56, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PendingTimestamp", + "code": 57, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Delay", + "code": 58, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "StateValue", - "code": 0, + "name": "SecurityPolicy", + "code": 59, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "SecurityPolicy", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ChannelPage0Mask", + "code": 60, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OperationalDatasetComponents", + "code": 61, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "OperationalDatasetComponents", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [ { - "name": "ChangeToMode", + "name": "ResetCounts", "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -4357,245 +3944,300 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Description", + "name": "BSSID", "code": 0, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StandardNamespace", + "name": "SecurityType", "code": 1, "mfgCode": null, "side": "server", - "type": "enum16", + "type": "SecurityTypeEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedModes", + "name": "WiFiVersion", "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "WiFiVersionEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "255", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentMode", + "name": "ChannelNumber", "code": 3, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpMode", + "name": "RSSI", "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int8s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "BeaconLostCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "BeaconRxCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "PacketMulticastRxCount", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "PacketMulticastTxCount", + "code": 8, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PacketUnicastRxCount", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Window Covering", - "code": 258, - "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ + }, { - "name": "UpOrOpen", - "code": 0, + "name": "PacketUnicastTxCount", + "code": 10, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "DownOrClose", - "code": 1, + "name": "CurrentMaxRate", + "code": 11, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopMotion", - "code": 2, + "name": "OverrunCount", + "code": 12, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToLiftValue", - "code": 4, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToLiftPercentage", - "code": 5, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "events": [ + { + "name": "Disconnection", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1 }, { - "name": "GoToTiltValue", - "code": 7, + "name": "AssociationFailure", + "code": 1, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "included": 1 }, { - "name": "GoToTiltPercentage", - "code": 8, + "name": "ConnectionStatus", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 0 + "outgoing": 1 } ], "attributes": [ @@ -4609,7 +4251,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -4618,378 +4260,378 @@ ] }, { - "name": "Window Covering", - "code": 258, + "name": "Ethernet Network Diagnostics", + "code": 55, "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Type", + "name": "PHYRate", "code": 0, "mfgCode": null, "side": "server", - "type": "Type", + "type": "PHYRateEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionLift", - "code": 3, + "name": "FullDuplex", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionTilt", - "code": 4, + "name": "PacketRxCount", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ConfigStatus", - "code": 7, + "name": "PacketTxCount", + "code": 3, "mfgCode": null, "side": "server", - "type": "ConfigStatus", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x03", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionLiftPercentage", - "code": 8, + "name": "TxErrCount", + "code": 4, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionTiltPercentage", - "code": 9, + "name": "CollisionCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OperationalStatus", - "code": 10, + "name": "OverrunCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "OperationalStatus", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 127, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "TargetPositionLiftPercent100ths", - "code": 11, + "name": "CarrierDetect", + "code": 7, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TargetPositionTiltPercent100ths", - "code": 12, + "name": "TimeSinceReset", + "code": 8, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "0x0000000000000000", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EndProductType", - "code": 13, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "EndProductType", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "3", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionLiftPercent100ths", - "code": 14, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int16u", "included": 1, - "storageOption": "NVM", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "1", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "CurrentPositionTiltPercent100ths", - "code": 15, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "Percent100ths", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "RAM", + "singleton": 1, "bounded": 0, - "defaultValue": "500", + "defaultValue": "2", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "InstalledOpenLimitLift", - "code": 16, + "name": "DataModelRevision", + "code": 0, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitLift", - "code": 17, + "name": "VendorName", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledOpenLimitTilt", - "code": 18, + "name": "VendorID", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "vendor_id", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitTilt", - "code": 19, + "name": "ProductName", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Mode", - "code": 23, + "name": "ProductID", + "code": 4, "mfgCode": null, "side": "server", - "type": "Mode", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 15, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SafetyStatus", - "code": 26, + "name": "NodeLabel", + "code": 5, "mfgCode": null, "side": "server", - "type": "SafetyStatus", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Location", + "code": 6, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x17", + "defaultValue": "XX", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "HardwareVersion", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "HardwareVersionString", + "code": 8, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MaxPressure", - "code": 0, + "name": "SoftwareVersion", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int32u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4998,14 +4640,14 @@ "reportableChange": 0 }, { - "name": "MaxSpeed", - "code": 1, + "name": "SoftwareVersionString", + "code": 10, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -5014,14 +4656,14 @@ "reportableChange": 0 }, { - "name": "MaxFlow", - "code": 2, + "name": "ManufacturingDate", + "code": 11, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -5030,125 +4672,125 @@ "reportableChange": 0 }, { - "name": "MinConstPressure", - "code": 3, + "name": "PartNumber", + "code": 12, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstPressure", - "code": 4, + "name": "ProductURL", + "code": 13, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "long_char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinCompPressure", - "code": 5, + "name": "ProductLabel", + "code": 14, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxCompPressure", - "code": 6, + "name": "SerialNumber", + "code": 15, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstSpeed", - "code": 7, + "name": "LocalConfigDisabled", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstSpeed", - "code": 8, + "name": "Reachable", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, + "type": "boolean", + "included": 0, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstFlow", - "code": 9, + "name": "UniqueID", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstFlow", - "code": 10, + "name": "CapabilityMinima", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "CapabilityMinimaStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -5158,192 +4800,219 @@ "reportableChange": 0 }, { - "name": "MinConstTemp", - "code": 11, + "name": "ProductAppearance", + "code": 20, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "ProductAppearanceStruct", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstTemp", - "code": 12, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PumpStatus", - "code": 16, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "PumpStatusBitmap", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 + } + ], + "events": [ + { + "name": "StartUp", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1 }, { - "name": "EffectiveOperationMode", - "code": 17, + "name": "ShutDown", + "code": 1, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "included": 1 }, { - "name": "EffectiveControlMode", - "code": 18, + "name": "Leave", + "code": 2, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "included": 1 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Capacity", - "code": 19, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "int16s", + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "Speed", - "code": 20, + "name": "NumberOfPositions", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeRunningHours", - "code": 21, + "name": "CurrentPosition", + "code": 1, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Power", - "code": 22, + "name": "MultiPressMax", + "code": 2, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeEnergyConsumed", - "code": 23, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OperationMode", - "code": 32, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ControlMode", - "code": 33, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5375,52 +5044,44 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "client", "enabled": 0, "commands": [ { - "name": "SetpointRaiseLower", + "name": "OpenCommissioningWindow", "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "SetWeeklySchedule", + "name": "OpenBasicCommissioningWindow", "code": 1, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "GetWeeklySchedule", + "name": "RevokeCommissioning", "code": 2, "mfgCode": null, "source": "client", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ClearWeeklySchedule", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -5435,7 +5096,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -5444,325 +5105,307 @@ ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "GetWeeklyScheduleResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 - } - ], "attributes": [ { - "name": "LocalTemperature", + "name": "WindowStatus", "code": 0, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "CommissioningWindowStatusEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinHeatSetpointLimit", - "code": 3, + "name": "AdminFabricIndex", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "fabric_idx", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x02BC", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinCoolSetpointLimit", - "code": 5, + "name": "AdminVendorId", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0640", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMaxCoolSetpointLimit", - "code": 6, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0C80", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PICoolingDemand", - "code": 7, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "int16u", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ { - "name": "PIHeatingDemand", - "code": 8, + "name": "AttestationRequest", + "code": 0, "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedCoolingSetpoint", - "code": 17, + "name": "CertificateChainRequest", + "code": 2, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0A28", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedHeatingSetpoint", - "code": 18, + "name": "CSRRequest", + "code": 4, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x07D0", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinHeatSetpointLimit", - "code": 21, + "name": "AddNOC", + "code": 6, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x02BC", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxHeatSetpointLimit", - "code": 22, + "name": "UpdateNOC", + "code": 7, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0BB8", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinCoolSetpointLimit", - "code": 23, + "name": "UpdateFabricLabel", + "code": 9, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0640", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxCoolSetpointLimit", - "code": 24, + "name": "RemoveFabric", + "code": 10, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0C80", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinSetpointDeadBand", - "code": 25, + "name": "AddTrustedRootCertificate", + "code": 11, "mfgCode": null, - "side": "server", - "type": "int8s", + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x19", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 }, { - "name": "ControlSequenceOfOperation", - "code": 27, - "mfgCode": null, - "side": "server", - "type": "ThermostatControlSequence", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x04", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SystemMode", - "code": 28, + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Fabrics", + "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartOfWeek", - "code": 32, + "name": "SupportedFabrics", + "code": 2, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfWeeklyTransitions", - "code": 33, + "name": "CommissionedFabrics", + "code": 3, "mfgCode": null, "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "7", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfDailyTransitions", - "code": 34, + "name": "TrustedRootCertificates", + "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TemperatureSetpointHold", - "code": 35, + "name": "CurrentFabricIndex", + "code": 5, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 0, - "storageOption": "RAM", + "type": "int8u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5775,10 +5418,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000b", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5791,38 +5434,22 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "User Label", + "code": 65, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "define": "USER_LABEL_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -5833,7 +5460,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5842,104 +5469,108 @@ ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "User Label", + "code": 65, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "define": "USER_LABEL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "TemperatureDisplayMode", + "name": "LabelList", "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "KeypadLockout", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "enum8", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ScheduleProgrammingVisibility", - "code": 2, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "AttributeList", - "code": 65531, + "name": "StateValue", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5971,7 +5602,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5980,13 +5611,39 @@ ] }, { - "name": "Illuminance Measurement", - "code": 1024, + "name": "Mode Select", + "code": 80, "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "define": "MODE_SELECT_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, + "commands": [ + { + "name": "ChangeToMode", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -5997,7 +5654,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6006,67 +5663,67 @@ ] }, { - "name": "Illuminance Measurement", - "code": 1024, + "name": "Mode Select", + "code": 80, "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "define": "MODE_SELECT_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "MeasuredValue", + "name": "Description", "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", + "name": "StandardNamespace", "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", + "name": "SupportedModes", "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0xFFFE", + "defaultValue": "255", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Tolerance", + "name": "CurrentMode", "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -6078,16 +5735,64 @@ "reportableChange": 0 }, { - "name": "LightSensorType", + "name": "StartUpMode", "code": 4, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFF", + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6119,7 +5824,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6128,12 +5833,46 @@ ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "client", "enabled": 1, + "commands": [ + { + "name": "Lock Door", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock Door", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock with Timeout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "ClusterRevision", @@ -6145,406 +5884,382 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "6", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "MeasuredValue", - "code": 0, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "6", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LockState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", + "name": "LockType", "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", + "name": "ActuatorEnabled", "code": 2, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "boolean", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Tolerance", + "name": "DoorState", "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "DoorOpenEvents", + "code": 4, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DoorClosedEvents", + "code": 5, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OpenPeriod", + "code": 6, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "NumberOfLogRecordsSupported", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "NumberOfTotalUsersSupported", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "NumberOfPINUsersSupported", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "NumberOfRFIDUsersSupported", + "code": 19, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ScaledValue", - "code": 16, + "name": "NumberOfWeekDaySchedulesSupportedPerUser", + "code": 20, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinScaledValue", - "code": 17, + "name": "NumberOfYearDaySchedulesSupportedPerUser", + "code": 21, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxScaledValue", - "code": 18, + "name": "NumberOfHolidaySchedulesSupported", + "code": 22, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ScaledTolerance", - "code": 19, + "name": "MaxPINCodeLength", + "code": 23, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Scale", - "code": 20, + "name": "MinPINCodeLength", + "code": 24, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "MaxRFIDCodeLength", + "code": 25, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinRFIDCodeLength", + "code": 26, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "CredentialRulesSupport", + "code": 27, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "NumberOfCredentialsSupportedPerUser", + "code": 28, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "EnableLogging", + "code": 32, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "Language", + "code": 33, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "String", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6552,436 +6267,472 @@ "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, - { - "name": "Tolerance", - "code": 3, + } + ,{ + "name": "LEDSettings", + "code": 34, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "AutoRelockTime", + "code": 35, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoundVolume", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OperatingMode", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "SupportedOperatingModes", + "code": 38, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "65526", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DefaultConfigurationRegister", + "code": 39, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "MeasuredValue", - "code": 0, + "name": "EnableLocalProgramming", + "code": 40, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "EnableOneTouchLocking", + "code": 41, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "EnableInsideStatusLED", + "code": 42, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x2710", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "EnablePrivacyModeButton", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "LocalProgrammingFeatures", + "code": 44, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "WrongCodeEntryLimit", + "code": 48, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "UserCodeTemporaryDisableTime", + "code": 49, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "SendPINOverTheAir", + "code": 50, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RequirePINforRemoteOperation", + "code": 51, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ + }, { - "name": "NavigateTarget", - "code": 0, + "name": "SecurityLevel", + "code": 52, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ExpiringUserTimeout", + "code": 53, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ + }, { - "name": "NavigateTargetResponse", - "code": 1, + "name": "AlarmMask", + "code": 64, "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "TargetList", - "code": 0, + "name": "KeypadOperationEventMask", + "code": 65, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentTarget", - "code": 1, + "name": "RemoteOperationEventMask", + "code": 66, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "ManualOperationEventMask", + "code": 67, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "RFIDOperationEventMask", + "code": 68, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "KeypadProgrammingEventMask", + "code": 69, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RemoteProgrammingEventMask", + "code": 70, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RFIDProgrammingEventMask", + "code": 71, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 } ] - }, + }, { - "name": "Keypad Input", - "code": 1289, + "name": "Window Covering", + "code": 258, "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", + "define": "WINDOW_COVERING_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [ { - "name": "SendKey", + "name": "UpOrOpen", "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 + }, + { + "name": "DownOrClose", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopMotion", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToLiftValue", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToLiftPercentage", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToTiltValue", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToTiltPercentage", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 } ], "attributes": [ @@ -6995,254 +6746,308 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Keypad Input", - "code": 1289, + "name": "Window Covering", + "code": 258, "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", + "define": "WINDOW_COVERING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "SendKeyResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], "attributes": [ { - "name": "GeneratedCommandList", - "code": 65528, + "name": "Type", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "Type", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "CurrentPositionLift", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "CurrentPositionTilt", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ConfigStatus", + "code": 7, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "ConfigStatus", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x03", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "CurrentPositionLiftPercentage", + "code": 8, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "Percent", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 - } - ] - }, - { - "name": "Content Launcher", - "code": 1290, - "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "LaunchContent", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "LaunchURL", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "CurrentPositionTiltPercentage", + "code": 9, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "Percent", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 - } - ] - }, - { - "name": "Content Launcher", - "code": 1290, - "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "LauncherResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "AcceptHeader", - "code": 0, + "name": "OperationalStatus", + "code": 10, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalStatus", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 127, "reportableChange": 0 }, { - "name": "SupportedStreamingProtocols", - "code": 1, + "name": "TargetPositionLiftPercent100ths", + "code": 11, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "Percent100ths", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "TargetPositionTiltPercent100ths", + "code": 12, "mfgCode": null, "side": "server", - "type": "array", + "type": "Percent100ths", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "EndProductType", + "code": 13, "mfgCode": null, "side": "server", - "type": "array", + "type": "EndProductType", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "CurrentPositionLiftPercent100ths", + "code": 14, "mfgCode": null, "side": "server", - "type": "array", + "type": "Percent100ths", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "CurrentPositionTiltPercent100ths", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "Percent100ths", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "500", + "reportable": 1, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "InstalledOpenLimitLift", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledClosedLimitLift", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledOpenLimitTilt", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledClosedLimitTilt", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Mode", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "Mode", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 15, + "reportableChange": 0 + }, + { + "name": "SafetyStatus", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "SafetyStatus", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7255,10 +7060,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x17", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7271,21 +7076,21 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Application Basic", - "code": 1293, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "attributes": [ { "name": "ClusterRevision", @@ -7297,7 +7102,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "3", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7306,85 +7111,85 @@ ] }, { - "name": "Application Basic", - "code": 1293, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "VendorName", + "name": "MaxPressure", "code": 0, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "VendorID", + "name": "MaxSpeed", "code": 1, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ApplicationName", + "name": "MaxFlow", "code": 2, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ProductID", + "name": "MinConstPressure", "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Application", + "name": "MaxConstPressure", "code": 4, "mfgCode": null, "side": "server", - "type": "ApplicationStruct", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7394,27 +7199,27 @@ "reportableChange": 0 }, { - "name": "Status", + "name": "MinCompPressure", "code": 5, "mfgCode": null, "side": "server", - "type": "ApplicationStatusEnum", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ApplicationVersion", + "name": "MaxCompPressure", "code": 6, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7426,13 +7231,13 @@ "reportableChange": 0 }, { - "name": "AllowedVendorList", + "name": "MinConstSpeed", "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7442,13 +7247,13 @@ "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MaxConstSpeed", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7458,13 +7263,13 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "MinConstFlow", + "code": 9, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7474,13 +7279,13 @@ "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "MaxConstFlow", + "code": 10, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7490,118 +7295,104 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "MinConstTemp", + "code": 11, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MaxConstTemp", + "code": 12, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - } - ] - }, - { - "name": "Anonymous Endpoint Type", - "deviceTypeName": "MA-dimmablelight", - "deviceTypeCode": 257, - "deviceTypeProfileId": 259, - "clusters": [ - { - "name": "Identify", - "code": 3, - "mfgCode": null, - "define": "IDENTIFY_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ + }, { - "name": "Identify", - "code": 0, + "name": "PumpStatus", + "code": 16, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "PumpStatusBitmap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "TriggerEffect", - "code": 64, + "name": "EffectiveOperationMode", + "code": 17, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ + "side": "server", + "type": "OperationModeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "FeatureMap", - "code": 65532, + "name": "EffectiveControlMode", + "code": 18, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "ControlModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Capacity", + "code": 19, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Identify", - "code": 3, - "mfgCode": null, - "define": "IDENTIFY_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "IdentifyTime", - "code": 0, + "name": "Speed", + "code": 20, "mfgCode": null, "side": "server", "type": "int16u", @@ -7609,36 +7400,36 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "IdentifyType", - "code": 1, + "name": "LifetimeRunningHours", + "code": 21, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int24u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "0x000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "Power", + "code": 22, "mfgCode": null, "side": "server", - "type": "array", + "type": "int24u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7648,48 +7439,64 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "LifetimeEnergyConsumed", + "code": 23, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "OperationMode", + "code": 32, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationModeEnum", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ControlMode", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "ControlModeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "AlarmMask", + "code": 34, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7721,88 +7528,64 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "3", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Groups", - "code": 4, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "GROUPS_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "commands": [ { - "name": "AddGroup", + "name": "SetpointRaiseLower", "code": 0, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "ViewGroup", + "name": "SetWeeklySchedule", "code": 1, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "GetGroupMembership", + "name": "GetWeeklySchedule", "code": 2, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "RemoveGroup", + "name": "ClearWeeklySchedule", "code": 3, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "RemoveAllGroups", + "name": "GetRelayStatusLog", "code": 4, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "AddGroupIfIdentifying", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -7813,873 +7596,881 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Groups", - "code": 4, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "GROUPS_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "server", "enabled": 1, "commands": [ { - "name": "AddGroupResponse", + "name": "GetWeeklyScheduleResponse", "code": 0, "mfgCode": null, "source": "server", - "incoming": 0, - "outgoing": 1 + "incoming": 1, + "outgoing": 0 }, { - "name": "ViewGroupResponse", + "name": "GetRelayStatusLogResponse", "code": 1, "mfgCode": null, "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "GetGroupMembershipResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveGroupResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "incoming": 1, + "outgoing": 0 } ], "attributes": [ { - "name": "NameSupport", + "name": "LocalTemperature", "code": 0, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "OutdoorTemperature", + "code": 1, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "Occupancy", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "AbsMinHeatSetpointLimit", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x02BC", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "AbsMaxHeatSetpointLimit", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0BB8", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "AbsMinCoolSetpointLimit", + "code": 5, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x0640", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AbsMaxCoolSetpointLimit", + "code": 6, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "AddScene", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ViewScene", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "RemoveScene", - "code": 2, + "name": "PICoolingDemand", + "code": 7, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RemoveAllScenes", - "code": 3, + "name": "PIHeatingDemand", + "code": 8, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StoreScene", - "code": 4, + "name": "HVACSystemTypeConfiguration", + "code": 9, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RecallScene", - "code": 5, + "name": "LocalTemperatureCalibration", + "code": 16, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "GetSceneMembership", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "OccupiedCoolingSetpoint", + "code": 17, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x0A28", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OccupiedHeatingSetpoint", + "code": 18, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x07D0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ + }, { - "name": "AddSceneResponse", - "code": 0, + "name": "UnoccupiedCoolingSetpoint", + "code": 19, "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ViewSceneResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveSceneResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0A28", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RemoveAllScenesResponse", - "code": 3, + "name": "UnoccupiedHeatingSetpoint", + "code": 20, "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07D0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StoreSceneResponse", - "code": 4, + "name": "MinHeatSetpointLimit", + "code": 21, "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02BC", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "GetSceneMembershipResponse", - "code": 6, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "SceneCount", - "code": 0, + "name": "MaxHeatSetpointLimit", + "code": 22, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0BB8", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentScene", - "code": 1, + "name": "MinCoolSetpointLimit", + "code": 23, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0640", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentGroup", - "code": 2, + "name": "MaxCoolSetpointLimit", + "code": 24, "mfgCode": null, "side": "server", - "type": "group_id", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SceneValid", - "code": 3, + "name": "MinSetpointDeadBand", + "code": 25, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int8s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x19", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NameSupport", - "code": 4, + "name": "RemoteSensing", + "code": 26, "mfgCode": null, "side": "server", "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LastConfiguredBy", - "code": 5, + "name": "ControlSequenceOfOperation", + "code": 27, "mfgCode": null, "side": "server", - "type": "node_id", - "included": 0, + "type": "ThermostatControlSequence", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x04", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "SystemMode", + "code": 28, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x01", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "AlarmMask", + "code": 29, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "ThermostatRunningMode", + "code": 30, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "StartOfWeek", + "code": 32, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "NumberOfWeeklyTransitions", + "code": 33, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "7", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "NumberOfDailyTransitions", + "code": 34, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "4", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "Off", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "On", - "code": 1, + "name": "TemperatureSetpointHold", + "code": 35, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Toggle", - "code": 2, + "name": "TemperatureSetpointHoldDuration", + "code": 36, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "OnWithRecallGlobalScene", - "code": 65, + "name": "ThermostatProgrammingOperationMode", + "code": 37, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "OnWithTimedOff", - "code": 66, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "ThermostatRunningState", + "code": 41, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "SetpointChangeSource", + "code": 48, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "OnOff", - "code": 0, + "name": "SetpointChangeAmount", + "code": 49, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GlobalSceneControl", - "code": 16384, + "name": "SetpointChangeSourceTimestamp", + "code": 50, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "utc", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OnTime", - "code": 16385, + "name": "OccupiedSetback", + "code": 52, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OffWaitTime", - "code": 16386, + "name": "OccupiedSetbackMin", + "code": 53, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpOnOff", - "code": 16387, + "name": "OccupiedSetbackMax", + "code": 54, "mfgCode": null, "side": "server", - "type": "OnOffStartUpOnOff", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "UnoccupiedSetback", + "code": 55, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "UnoccupiedSetbackMin", + "code": 56, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "UnoccupiedSetbackMax", + "code": 57, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "EmergencyHeatDelta", + "code": 58, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x009F6", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ACType", + "code": 64, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ACCapacity", + "code": 65, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToLevel", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "Move", - "code": 1, + "name": "ACRefrigerantType", + "code": 66, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Step", - "code": 2, + "name": "ACCompressorType", + "code": 67, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Stop", - "code": 3, + "name": "ACErrorCode", + "code": 68, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "MoveToLevelWithOnOff", - "code": 4, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACLouverPosition", + "code": 69, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "MoveWithOnOff", - "code": 5, + "name": "ACCoilTemperature", + "code": 70, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StepWithOnOff", - "code": 6, + "name": "ACCapacityFormat", + "code": 71, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopWithOnOff", - "code": 7, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000b", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 } - ], + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 1, "attributes": [ { "name": "FeatureMap", @@ -8707,7 +8498,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -8716,19 +8507,19 @@ ] }, { - "name": "Level Control", - "code": 8, + "name": "Thermostat User Interface Configuration", + "code": 516, "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "CurrentLevel", + "name": "TemperatureDisplayMode", "code": 0, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "enum8", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -8740,76 +8531,160 @@ "reportableChange": 0 }, { - "name": "RemainingTime", + "name": "KeypadLockout", "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinLevel", + "name": "ScheduleProgrammingVisibility", "code": 2, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "enum8", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxLevel", - "code": 3, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFE", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentFrequency", - "code": 4, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "MinFrequency", - "code": 5, + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -8820,120 +8695,4882 @@ "reportableChange": 0 }, { - "name": "MaxFrequency", - "code": 6, + "name": "MinMeasuredValue", + "code": 1, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LightSensorType", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledValue", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinScaledValue", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxScaledValue", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledTolerance", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Scale", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2710", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "NavigateTarget", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "NavigateTargetResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "TargetList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentTarget", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SendKey", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "SendKeyResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "LaunchContent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "LaunchURL", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "LauncherResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "AcceptHeader", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedStreamingProtocols", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "VendorName", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Application", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "ApplicationStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Status", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "ApplicationStatusEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationVersion", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AllowedVendorList", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPIN", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Login", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Logout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPINResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LaunchApp", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StopApp", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "HideApp", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CatalogList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentApp", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "ApplicationEP", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LauncherResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "SelectOutput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameOutput", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OutputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentOutput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ChangeChannelByNumber", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "SkipChannel", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ChannelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Lineup", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "LineupInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentChannel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "ChannelInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannelResponse", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Sleep", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Play", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Pause", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StartOver", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Previous", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Next", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Rewind", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "FastForward", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipForward", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipBackward", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Seek", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "PlaybackResponse", + "code": 10, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "CurrentState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PlaybackStateType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "epoch_us", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Duration", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SampledPosition", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "PlaybackPositionType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PlaybackSpeed", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "SingleType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeEnd", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeStart", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SelectInput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ShowInputStatus", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "HideInputStatus", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameInput", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "InputInfoStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentInput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-dimmablelight", + "deviceTypeCode": 257, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "IdentifyType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConfiguredBy", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "node_id", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OffWithEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithRecallGlobalScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithTimedOff", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CurrentLevel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinLevel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxLevel", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinFrequency", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxFrequency", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "LevelControlOptions", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnOffTransitionTime", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnLevel", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTransitionTime", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffTransitionTime", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "DefaultMoveRate", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpCurrentLevel", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveToHue", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveHue", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedStepHue", + "code": 66, "mfgCode": null, - "side": "server", - "type": "LevelControlOptions", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OnOffTransitionTime", - "code": 16, + "name": "EnhancedMoveToHueAndSaturation", + "code": 67, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OnLevel", - "code": 17, + "name": "ColorLoopSet", + "code": 68, "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OnTransitionTime", - "code": 18, + "name": "StopMoveStep", + "code": 71, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OffTransitionTime", - "code": 19, + "name": "MoveColorTemperature", + "code": 75, "mfgCode": null, - "side": "server", + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "DefaultMoveRate", - "code": 20, + "name": "CurrentHue", + "code": 0, "mfgCode": null, "side": "server", "type": "int8u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartUpCurrentLevel", - "code": 16384, + "name": "CurrentSaturation", + "code": 1, "mfgCode": null, "side": "server", "type": "int8u", @@ -8941,95 +13578,95 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "RemainingTime", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "CurrentX", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x616B", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "CurrentY", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x607D", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "DriftCompensation", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "CompensationText", + "code": 6, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", - "reportable": 1, + "defaultValue": "", + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorTemperatureMireds", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", @@ -9037,570 +13674,482 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Descriptor", - "code": 29, - "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Descriptor", - "code": 29, - "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "DeviceTypeList", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00FA", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ServerList", - "code": 1, + "name": "ColorMode", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClientList", - "code": 2, + "name": "Options", + "code": 15, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PartsList", - "code": 3, + "name": "EnhancedCurrentHue", + "code": 16384, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "EnhancedColorMode", + "code": 16385, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ColorLoopActive", + "code": 16386, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "ColorLoopDirection", + "code": 16387, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "ColorLoopTime", + "code": 16388, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0019", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ColorLoopStartEnhancedHue", + "code": 16389, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x2300", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorLoopStoredEnhancedHue", + "code": 16390, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorCapabilities", + "code": 16394, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "DataModelRevision", - "code": 0, + "name": "ColorTempPhysicalMinMireds", + "code": 16395, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "10", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "VendorName", - "code": 1, + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "bitmap8", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xfeff", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "VendorID", - "code": 2, + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductName", - "code": 3, + "name": "NumberOfPrimaries", + "code": 16, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductID", - "code": 4, + "name": "Primary1X", + "code": 17, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NodeLabel", - "code": 5, + "name": "Primary1Y", + "code": 18, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Location", - "code": 6, + "name": "Primary1Intensity", + "code": 19, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "XX", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersion", - "code": 7, + "name": "Primary2X", + "code": 21, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersionString", - "code": 8, + "name": "Primary2Y", + "code": 22, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersion", - "code": 9, + "name": "Primary2Intensity", + "code": 23, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersionString", - "code": 10, + "name": "Primary3X", + "code": 25, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ManufacturingDate", - "code": 11, + "name": "Primary3Y", + "code": 26, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "20210614123456ZZ", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PartNumber", - "code": 12, + "name": "Primary3Intensity", + "code": 27, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductURL", - "code": 13, + "name": "Primary4X", + "code": 32, "mfgCode": null, "side": "server", - "type": "long_char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductLabel", - "code": 14, + "name": "Primary4Y", + "code": 33, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SerialNumber", - "code": 15, + "name": "Primary4Intensity", + "code": 34, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LocalConfigDisabled", - "code": 16, + "name": "Primary5X", + "code": 36, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Reachable", - "code": 17, + "name": "Primary5Y", + "code": 37, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "UniqueID", - "code": 18, + "name": "Primary5Intensity", + "code": 38, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CapabilityMinima", - "code": 19, + "name": "Primary6X", + "code": 40, "mfgCode": null, "side": "server", - "type": "CapabilityMinimaStruct", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -9612,271 +14161,205 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary6Y", + "code": 41, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary6Intensity", + "code": 42, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "WhitePointX", + "code": 48, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "WhitePointY", + "code": 49, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorPointRX", + "code": 50, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToColor", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "MoveColor", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "StepColor", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorPointRY", + "code": 51, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "CurrentHue", - "code": 0, + "name": "ColorPointRIntensity", + "code": 52, "mfgCode": null, "side": "server", "type": "int8u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentSaturation", - "code": 1, + "name": "ColorPointGX", + "code": 54, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", + "type": "int16u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentX", - "code": 3, + "name": "ColorPointGY", + "code": 55, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x616B", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentY", - "code": 4, + "name": "ColorPointGIntensity", + "code": 56, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x607D", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorTemperatureMireds", - "code": 7, + "name": "ColorPointBX", + "code": 58, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00FA", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "ColorPointBY", + "code": 59, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CoupleColorTempToLevelMinMireds", - "code": 16397, + "name": "ColorPointBIntensity", + "code": 60, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index 6e13ca476beb56..56aea7c1c2416d 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -4117,7 +4117,7 @@ PICS: - label: "Does the DUT support the Content Launcher server cluster, Content Search feature?" - id: CONTENTLAUNCHER.S.CS + id: CONTENTLAUNCHER.S.F00 # # server / attributes @@ -4125,12 +4125,12 @@ PICS: - label: "Does the DUT support the Application Launcher server cluster, Application Platform feature?" - id: APPLAUNCHER.S.AP + id: APPLAUNCHER.S.F00 - label: "Does the DUT support the Media Playback server cluster, Advanced Seek feature?" - id: MEDIAPLAYBACK.S.AS + id: MEDIAPLAYBACK.S.F00 - label: "Does the DUT support the Wake On LAN server cluster, MACAddress @@ -4431,44 +4431,44 @@ PICS: - label: "Does the DUT support the Keypad Input server cluster, Navigation Keys?" - id: KEYPADINPUT.S.NV + id: KEYPADINPUT.S.F00 - label: "Does the DUT support the Keypad Input server cluster, Location Keys?" - id: KEYPADINPUT.S.LK + id: KEYPADINPUT.S.F01 - label: "Does the DUT support the Keypad Input server cluster, Number Keys?" - id: KEYPADINPUT.S.NK + id: KEYPADINPUT.S.F02 - label: "Does the DUT support the Media Input server cluster, Name Updates feature?" - id: MEDIAINPUT.S.NU + id: MEDIAINPUT.S.F00 - label: "Does the DUT support the Channel server cluster, Channel List feature?" - id: CHANNEL.S.CL + id: CHANNEL.S.F00 - label: "Does the DUT support the Channel server cluster, Lineup Info feature?" - id: CHANNEL.S.LI + id: CHANNEL.S.F01 - label: "Does the DUT support the Media Playback server cluster, Variable Speed feature?" - id: MEDIAPLAYBACK.S.VS + id: MEDIAPLAYBACK.S.F01 - label: "Does the DUT support the Audio Ouput server cluster, Name Updates feature?" - id: AUDIOOUTPUT.S.NU + id: AUDIOOUTPUT.S.F00 - label: "Does the DUT support the Content Launcher server cluster, URL Playback feature?" - id: CONTENTLAUNCHER.S.UP + id: CONTENTLAUNCHER.S.F01 - label: "Does the DUT support the Content Launcher server cluster and is @@ -4478,12 +4478,12 @@ PICS: - label: "Does the DUT support the commissioning procedure initiated by a commissionee using User Directed Commissioning?" - id: MC.S.UDC + id: MC.S.M.UDC - label: "Does the DUT support the commissioning procedure initiated by a commissionee using User Directed Commissioning without PIN code entry?" - id: MC.S.UDCLOGIN + id: MC.S.M.UDCLOGIN # # client / commandsGenerated diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml index 3bf2ea7996a829..21f673670f1cec 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml @@ -97,6 +97,7 @@ tests: - name: "ms" value: waitAfterCommissioning + #Issue https://github.com/project-chip/connectedhomeip/issues/26127 - label: "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" @@ -149,6 +150,7 @@ tests: value: nodeId2 - label: "Read the TH2 commissioner node ID" + PICS: PICS_SDK_CI_ONLY identity: "beta" cluster: "CommissionerCommands" command: "GetCommissionerNodeId" @@ -160,6 +162,7 @@ tests: - label: "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" + PICS: PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" cluster: "Operational Credentials" @@ -167,6 +170,27 @@ tests: response: saveAs: TH2FabricIndex + - label: + "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex + attribute" + verification: | + ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), verify to CurrentFabricIndex attribute of operationalCredential cluster as 2 + + 1658329570.828165][4563:4568] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 1369963572 + [1658329570.831838][4563:4568] CHIP:TOO: CurrentFabricIndex: 2 + [1658329570.831929][4563:4568] CHIP:EM: Sending Standalone Ack for MessageCounter:4928928 on exchange 29185i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 @@ -193,7 +217,7 @@ tests: - label: "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "ACL" @@ -216,6 +240,86 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [223344,2222], "targets": null}, { "privilege": 3, "authMode": 3, "subjects":[4444] , "targets": null}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), Verify AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 2 elements + + + [1658329868.113411][4587:4592] CHIP:DMG: WriteClient moving to [ResponseRe] + [1658329868.113469][4587:4592] CHIP:DMG: WriteResponseMessage = + [1658329868.113496][4587:4592] CHIP:DMG: { + [1658329868.113537][4587:4592] CHIP:DMG: AttributeStatusIBs = + [1658329868.113568][4587:4592] CHIP:DMG: [ + [1658329868.113602][4587:4592] CHIP:DMG: AttributeStatusIB = + [1658329868.113646][4587:4592] CHIP:DMG: { + [1658329868.113672][4587:4592] CHIP:DMG: AttributePathIB = + [1658329868.113712][4587:4592] CHIP:DMG: { + [1658329868.113745][4587:4592] CHIP:DMG: Endpoint = 0x0, + [1658329868.113788][4587:4592] CHIP:DMG: Cluster = 0x1f, + [1658329868.113833][4587:4592] CHIP:DMG: Attribute = 0x0000_0000, + [1658329868.113868][4587:4592] CHIP:DMG: } + [1658329868.113914][4587:4592] CHIP:DMG: + [1658329868.113951][4587:4592] CHIP:DMG: StatusIB = + [1658329868.113984][4587:4592] CHIP:DMG: { + [1658329868.114028][4587:4592] CHIP:DMG: status = 0x00 (SUCCESS), + [1658329868.114091][4587:4592] CHIP:DMG: }, + [1658329868.114124][4587:4592] CHIP:DMG: + [1658329868.114160][4587:4592] CHIP:DMG: }, + [1658329868.114197][4587:4592] CHIP:DMG: + [1658329868.114229][4587:4592] CHIP:DMG: AttributeStatusIB = + [1658329868.114266][4587:4592] CHIP:DMG: { + [1658329868.114294][4587:4592] CHIP:DMG: AttributePathIB = + [1658329868.114335][4587:4592] CHIP:DMG: { + [1658329868.114367][4587:4592] CHIP:DMG: Endpoint = 0x0, + [1658329868.114411][4587:4592] CHIP:DMG: Cluster = 0x1f, + [1658329868.114458][4587:4592] CHIP:DMG: Attribute = 0x0000_0000, + [1658329868.114491][4587:4592] CHIP:DMG: ListIndex = Null, + [1658329868.114529][4587:4592] CHIP:DMG: } + [1658329868.114563][4587:4592] CHIP:DMG: + [1658329868.114604][4587:4592] CHIP:DMG: StatusIB = + [1658329868.114645][4587:4592] CHIP:DMG: { + [1658329868.114677][4587:4592] CHIP:DMG: status = 0x00 (SUCCESS), + [1658329868.114716][4587:4592] CHIP:DMG: }, + [1658329868.114747][4587:4592] CHIP:DMG: + [1658329868.114782][4587:4592] CHIP:DMG: }, + [1658329868.114826][4587:4592] CHIP:DMG: + [1658329868.114850][4587:4592] CHIP:DMG: AttributeStatusIB = + [1658329868.114884][4587:4592] CHIP:DMG: { + [1658329868.114910][4587:4592] CHIP:DMG: AttributePathIB = + [1658329868.114948][4587:4592] CHIP:DMG: { + [1658329868.114980][4587:4592] CHIP:DMG: Endpoint = 0x0, + [1658329868.115024][4587:4592] CHIP:DMG: Cluster = 0x1f, + [1658329868.115067][4587:4592] CHIP:DMG: Attribute = 0x0000_0000, + [1658329868.115102][4587:4592] CHIP:DMG: ListIndex = Null, + [1658329868.115145][4587:4592] CHIP:DMG: } + [1658329868.115188][4587:4592] CHIP:DMG: + [1658329868.115222][4587:4592] CHIP:DMG: StatusIB = + [1658329868.115260][4587:4592] CHIP:DMG: { + [1658329868.115291][4587:4592] CHIP:DMG: status = 0x00 (SUCCESS), + [1658329868.115333][4587:4592] CHIP:DMG: }, + [1658329868.115371][4587:4592] CHIP:DMG: + [1658329868.115398][4587:4592] CHIP:DMG: }, + [1658329868.115438][4587:4592] CHIP:DMG: + [1658329868.115463][4587:4592] CHIP:DMG: ], + [1658329868.115507][4587:4592] CHIP:DMG: + [1658329868.115531][4587:4592] CHIP:DMG: InteractionModelRevision = 1 + [1658329868.115565][4587:4592] CHIP:DMG: } + [1658329868.115702][4587:4592] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1658329868.115764][4587:4592] CHIP:EM: Sending Standalone Ack for MessageCounter:240702602 on exchange 57878i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 7:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 @@ -231,12 +335,77 @@ tests: attribute, value is list of AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_SINGLE" identity: "beta" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY command: "writeAttribute" attribute: "Extension" arguments: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 8:TH2 writes DUT Endpoint 0 AccessControl cluster Extension + attribute, value is list of AccessControlExtensionStruct containing 1 + element 1.struct, Data field: D_OK_SINGLE" + verification: | + ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), Verify Successfully extension attribute list containg one element . + + [1658819083.842765][8349:8354] CHIP:EM: Removed CHIP MessageCounter:249057275 from RetransTable on exchange 59888i + [1658819083.842800][8349:8354] CHIP:DMG: WriteClient moving to [ResponseRe] + [1658819083.842907][8349:8354] CHIP:DMG: WriteResponseMessage = + [1658819083.842939][8349:8354] CHIP:DMG: { + [1658819083.842963][8349:8354] CHIP:DMG: AttributeStatusIBs = + [1658819083.843000][8349:8354] CHIP:DMG: [ + [1658819083.843026][8349:8354] CHIP:DMG: AttributeStatusIB = + [1658819083.843057][8349:8354] CHIP:DMG: { + [1658819083.843086][8349:8354] CHIP:DMG: AttributePathIB = + [1658819083.843120][8349:8354] CHIP:DMG: { + [1658819083.843161][8349:8354] CHIP:DMG: Endpoint = 0x0, + [1658819083.843201][8349:8354] CHIP:DMG: Cluster = 0x1f, + [1658819083.843242][8349:8354] CHIP:DMG: Attribute = 0x0000_0001, + [1658819083.843277][8349:8354] CHIP:DMG: } + [1658819083.843319][8349:8354] CHIP:DMG: + [1658819083.843355][8349:8354] CHIP:DMG: StatusIB = + [1658819083.843393][8349:8354] CHIP:DMG: { + [1658819083.843431][8349:8354] CHIP:DMG: status = 0x00 (SUCCESS), + [1658819083.843466][8349:8354] CHIP:DMG: }, + [1658819083.843504][8349:8354] CHIP:DMG: + [1658819083.843534][8349:8354] CHIP:DMG: }, + [1658819083.843575][8349:8354] CHIP:DMG: + [1658819083.843604][8349:8354] CHIP:DMG: AttributeStatusIB = + [1658819083.843636][8349:8354] CHIP:DMG: { + [1658819083.843666][8349:8354] CHIP:DMG: AttributePathIB = + [1658819083.843700][8349:8354] CHIP:DMG: { + [1658819083.843734][8349:8354] CHIP:DMG: Endpoint = 0x0, + [1658819083.843774][8349:8354] CHIP:DMG: Cluster = 0x1f, + [1658819083.843814][8349:8354] CHIP:DMG: Attribute = 0x0000_0001, + [1658819083.843853][8349:8354] CHIP:DMG: ListIndex = Null, + [1658819083.843888][8349:8354] CHIP:DMG: } + [1658819083.843926][8349:8354] CHIP:DMG: + [1658819083.843962][8349:8354] CHIP:DMG: StatusIB = + [1658819083.843996][8349:8354] CHIP:DMG: { + [1658819083.844030][8349:8354] CHIP:DMG: status = 0x00 (SUCCESS), + [1658819083.844065][8349:8354] CHIP:DMG: }, + [1658819083.844103][8349:8354] CHIP:DMG: + [1658819083.844133][8349:8354] CHIP:DMG: }, + [1658819083.844168][8349:8354] CHIP:DMG: + [1658819083.844194][8349:8354] CHIP:DMG: ], + [1658819083.844230][8349:8354] CHIP:DMG: + [1658819083.844256][8349:8354] CHIP:DMG: InteractionModelRevision = 1 + [1658819083.844282][8349:8354] CHIP:DMG: } + [1658819083.844389][8349:8354] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1658819083.844452][8349:8354] CHIP:EM: Sending Standalone Ack for MessageCounter:27055873 on exchange 59888i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 9: Reboot DUT" PICS: PICS_SDK_CI_ONLY cluster: "SystemCommands" @@ -310,7 +479,7 @@ tests: - label: "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" attribute: "ACL" @@ -333,16 +502,77 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol read acl 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool) , Verify AccessControlEntryStruct containing 2 elements, and MUST NOT contain an element with FabricIndex F1 + + [1657289713.626327][19279:19284] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 1884338152 + [1657289713.626381][19279:19284] CHIP:TOO: ACL: 2 entries + [1657289713.626417][19279:19284] CHIP:TOO: [1]: { + [1657289713.626431][19279:19284] CHIP:TOO: Privilege: 5 + [1657289713.626443][19279:19284] CHIP:TOO: AuthMode: 2 + [1657289713.626457][19279:19284] CHIP:TOO: Subjects: 2 entries + [1657289713.626472][19279:19284] CHIP:TOO: [1]: 223344 + [1657289713.626485][19279:19284] CHIP:TOO: [2]: 2222 + [1657289713.626497][19279:19284] CHIP:TOO: Targets: null + [1657289713.626508][19279:19284] CHIP:TOO: FabricIndex: 2 + [1657289713.626519][19279:19284] CHIP:TOO: } + [1657289713.626537][19279:19284] CHIP:TOO: [2]: { + [1657289713.626547][19279:19284] CHIP:TOO: Privilege: 3 + [1657289713.626556][19279:19284] CHIP:TOO: AuthMode: 3 + [1657289713.626568][19279:19284] CHIP:TOO: Subjects: 1 entries + [1657289713.626580][19279:19284] CHIP:TOO: [1]: 4444 + [1657289713.626591][19279:19284] CHIP:TOO: Targets: null + [1657289713.626601][19279:19284] CHIP:TOO: FabricIndex: 2 + [1657289713.626611][19279:19284] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 - label: "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "Extension" arguments: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + - label: + "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension + attribute" + verification: | + ./chip-tool accesscontrol read extension 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool) , Verify AccessControlExtensionStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 + + [1657289746.737641][19293:19298] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 1884338152 + [1657289746.737713][19293:19298] CHIP:TOO: Extension: 1 entries + [1657289746.737778][19293:19298] CHIP:TOO: [1]: { + [1657289746.737803][19293:19298] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1657289746.737844][19293:19298] CHIP:TOO: Fab + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file" @@ -358,24 +588,8 @@ tests: - name: "expectedValue" value: "y" - - label: "TH2 writes Extension attibute value as empty list" - identity: "beta" - PICS: ACL.S.A0001 - command: "writeAttribute" - attribute: "Extension" - arguments: - value: [] - - - label: "TH2 writes ACL attribute value is an empty list" - identity: "beta" - PICS: ACL.S.A0000 - command: "writeAttribute" - attribute: "ACL" - arguments: - value: [] - - label: "Step 15:TH1 removes fabric F2 from DUT" - PICS: OPCREDS.S.C0a.Rsp + PICS: OPCREDS.S.C0a.Rsp && PICS_SDK_CI_ONLY cluster: "Operational Credentials" command: "RemoveFabric" timedInteractionTimeoutMs: 10000 @@ -384,6 +598,32 @@ tests: - name: "FabricIndex" value: TH2FabricIndex + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "Step 15:TH1 removes fabric F2 from DUT" + verification: | + ./chip-tool operationalcredentials remove-fabric 2 1 0 + + On TH1(Chiptool), Verify successfully removed fabric F2 with statusCode as 0(Success) + + [1661404505.702969][18706:18711] CHIP:DMG: + [1661404505.702979][18706:18711] CHIP:DMG: InteractionModelRevision = 1 + [1661404505.702987][18706:18711] CHIP:DMG: }, + [1661404505.703020][18706:18711] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 + [1661404505.703047][18706:18711] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008 + [1661404505.703081][18706:18711] CHIP:TOO: NOCResponse: { + [1661404505.703104][18706:18711] CHIP:TOO: statusCode: 0 + [1661404505.703126][18706:18711] CHIP:TOO: fabricIndex: 2 + [1661404505.703139][18706:18711] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && OPCREDS.S.C0a.Rsp + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml index 08d07b038b61ff..9d6a1ab052eb3e 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml @@ -88,6 +88,7 @@ tests: - name: "Salt" value: "SPAKE2P Key Salt" + #Issue https://github.com/project-chip/connectedhomeip/issues/26127 - label: "Step 3 & 4: TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" @@ -149,6 +150,7 @@ tests: value: nodeId2 - label: "Read the TH2 commissioner node ID" + PICS: PICS_SDK_CI_ONLY identity: "beta" cluster: "CommissionerCommands" command: "GetCommissionerNodeId" @@ -161,12 +163,32 @@ tests: "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" identity: "beta" + PICS: PICS_SDK_CI_ONLY command: "readAttribute" cluster: "Operational Credentials" attribute: "CurrentFabricIndex" response: saveAs: TH2FabricIndex + - label: + "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex + attribute" + verification: | + ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), verify CurrentFabricIndex attribute of operationalCredential cluster as 2 + [1657186956.724761][3910:3915] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 3161849734 + [1657186956.731658][3910:3915] CHIP:TOO: CurrentFabricIndex: 2 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 @@ -181,13 +203,74 @@ tests: "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "Extension" arguments: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension + attribute, value is list of AccessControlExtensionStruct containing 1 + element" + verification: | + ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool),Verify Successfully to extension attribute list containg one element . + 1657894672.479983][2433:2438] CHIP:DMG: WriteClient moving to [ResponseRe] + [1657894672.480057][2433:2438] CHIP:DMG: WriteResponseMessage = + [1657894672.480092][2433:2438] CHIP:DMG: { + [1657894672.480124][2433:2438] CHIP:DMG: AttributeStatusIBs = + [1657894672.480175][2433:2438] CHIP:DMG: [ + [1657894672.480211][2433:2438] CHIP:DMG: AttributeStatusIB = + [1657894672.480251][2433:2438] CHIP:DMG: { + [1657894672.480288][2433:2438] CHIP:DMG: AttributePathIB = + [1657894672.480333][2433:2438] CHIP:DMG: { + [1657894672.480379][2433:2438] CHIP:DMG: Endpoint = 0x0, + [1657894672.480427][2433:2438] CHIP:DMG: Cluster = 0x1f, + [1657894672.480476][2433:2438] CHIP:DMG: Attribute = 0x0000_0001, + [1657894672.480521][2433:2438] CHIP:DMG: } + [1657894672.480570][2433:2438] CHIP:DMG: + [1657894672.480612][2433:2438] CHIP:DMG: StatusIB = + [1657894672.480657][2433:2438] CHIP:DMG: { + [1657894672.480700][2433:2438] CHIP:DMG: status = 0x00 (SUCCESS), + [1657894672.480745][2433:2438] CHIP:DMG: }, + [1657894672.480789][2433:2438] CHIP:DMG: + [1657894672.480826][2433:2438] CHIP:DMG: }, + [1657894672.480877][2433:2438] CHIP:DMG: + [1657894672.480911][2433:2438] CHIP:DMG: AttributeStatusIB = + [1657894672.480949][2433:2438] CHIP:DMG: { + [1657894672.480986][2433:2438] CHIP:DMG: AttributePathIB = + [1657894672.481028][2433:2438] CHIP:DMG: { + [1657894672.481072][2433:2438] CHIP:DMG: Endpoint = 0x0, + [1657894672.481120][2433:2438] CHIP:DMG: Cluster = 0x1f, + [1657894672.481168][2433:2438] CHIP:DMG: Attribute = 0x0000_0001, + [1657894672.481214][2433:2438] CHIP:DMG: ListIndex = Null, + [1657894672.481258][2433:2438] CHIP:DMG: } + [1657894672.481306][2433:2438] CHIP:DMG: + [1657894672.481347][2433:2438] CHIP:DMG: StatusIB = + [1657894672.481390][2433:2438] CHIP:DMG: { + [1657894672.481433][2433:2438] CHIP:DMG: status = 0x00 (SUCCESS), + [1657894672.481482][2433:2438] CHIP:DMG: }, + [1657894672.481526][2433:2438] CHIP:DMG: + [1657894672.481562][2433:2438] CHIP:DMG: }, + [1657894672.481605][2433:2438] CHIP:DMG: + [1657894672.481639][2433:2438] CHIP:DMG: ], + [1657894672.481686][2433:2438] CHIP:DMG: + [1657894672.481720][2433:2438] CHIP:DMG: InteractionModelRevision = 1 + [1657894672.481754][2433:2438] CHIP:DMG: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 8:TH1 reads AccessControl cluster Extension attribute" PICS: ACL.S.A0001 command: "readAttribute" @@ -196,13 +279,35 @@ tests: value: [{ Data: D_OK_EMPTY, FabricIndex: TH1FabricIndex }] - label: "Step 9:TH2 reads AccessControl cluster Extension attribute" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" attribute: "Extension" response: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "Step 9:TH2 reads AccessControl cluster Extension attribute" + verification: | + ./chip-tool accesscontrol read extension 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), Verify AccessControlExtensionStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 + [1658327214.683199][2749:2754] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 2953114587 + [1658327214.683283][2749:2754] CHIP:TOO: Extension: 1 entries + [1658327214.683348][2749:2754] CHIP:TOO: [1]: { + [1658327214.683388][2749:2754] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1658327214.683423][2749:2754] CHIP:TOO: FabricIndex: 2 + [1658327214.683454][2749:2754] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event" @@ -223,7 +328,7 @@ tests: - label: "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event" - PICS: ACL.S.E01 + PICS: ACL.S.E01 && PICS_SDK_CI_ONLY identity: "beta" command: "readEvent" event: "AccessControlExtensionChanged" @@ -238,6 +343,36 @@ tests: FabricIndex: TH2FabricIndex, } + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster + AccessControlExtensionChanged event" + verification: | + ./chip-tool accesscontrol read-event access-control-extension-changed 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool) , Verify AccessControlExtensionChanged containing 1 element, and MUST NOT contain an element with FabricIndex F1 + [1663242753.957097][4264:4270] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 + [1663242753.957400][4264:4270] CHIP:TOO: Event number: 8 + [1663242753.957459][4264:4270] CHIP:TOO: Priority: Info + [1663242753.957507][4264:4270] CHIP:TOO: Timestamp: 20785045 + [1663242753.957708][4264:4270] CHIP:TOO: AccessControlExtensionChanged: { + [1663242753.957801][4264:4270] CHIP:TOO: AdminNodeID: 223344 + [1663242753.957867][4264:4270] CHIP:TOO: AdminPasscodeID: null + [1663242753.957931][4264:4270] CHIP:TOO: ChangeType: 1 + [1663242753.957991][4264:4270] CHIP:TOO: LatestValue: { + [1663242753.958055][4264:4270] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1663242753.958118][4264:4270] CHIP:TOO: FabricIndex: 2 + [1663242753.958183][4264:4270] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.E01 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 writes Extension attribute value as empty list" PICS: ACL.S.A0001 command: "writeAttribute" @@ -247,8 +382,22 @@ tests: - label: "TH2 writes Extension attribute value as empty list" identity: "beta" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY command: "writeAttribute" attribute: "Extension" arguments: value: [] + + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 writes Extension attribute value as empty list" + verification: | + ./chip-tool accesscontrol write extension '[{}]' 2 0 --commissioner-name beta --commissioner-nodeid 223344 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml index daaa3e93f54ee3..7ecfc71b9e3c44 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml @@ -89,6 +89,7 @@ tests: - name: "ms" value: waitAfterCommissioning + #Issue https://github.com/project-chip/connectedhomeip/issues/26127 - label: "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" @@ -143,6 +144,7 @@ tests: - label: "Read the TH2 commissioner node ID" identity: "beta" + PICS: PICS_SDK_CI_ONLY cluster: "CommissionerCommands" command: "GetCommissionerNodeId" response: @@ -153,12 +155,43 @@ tests: - label: "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" identity: "beta" + PICS: PICS_SDK_CI_ONLY command: "readAttribute" cluster: "Operational Credentials" attribute: "CurrentFabricIndex" response: saveAs: TH2FabricIndex + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" + verification: | + ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool),verify CurrentFabricIndex attribute of operationalCredential cluster as 2 + + 1658747098.843523][3024:3029] CHIP:DMG: }, + [1658747098.843552][3024:3029] CHIP:DMG: + [1658747098.843575][3024:3029] CHIP:DMG: ], + [1658747098.843604][3024:3029] CHIP:DMG: + [1658747098.843628][3024:3029] CHIP:DMG: SuppressResponse = true, + [1658747098.843653][3024:3029] CHIP:DMG: InteractionModelRevision = 1 + [1658747098.843676][3024:3029] CHIP:DMG: } + [1658747098.843805][3024:3029] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 2815046656 + [1658747098.846044][3024:3029] CHIP:TOO: CurrentFabricIndex: 2 + [1658747098.846131][3024:3029] CHIP:EM: Sending Standalone Ack for MessageCounter:263449390 on exchange 10738i + [1658747098.846202][3024:3029] CHIP:IN: Prepared secure message 0xffffb67cd9e8 to 0x0000000000000002 (2) of type 0x10 and protocolId (0, 0) on exchange 10738i with MessageCounter:175421270. + [1658747098.846282][3024:3029] CHIP:IN: Sending encrypted msg 0xffffb67cd9e8 with MessageCounter:175421270 to 0x0000000000000002 (2) at monotonic time: 00000000009FA528 msec + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 command: "writeAttribute" @@ -176,7 +209,7 @@ tests: ] - label: "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "ACL" @@ -192,6 +225,67 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [223344,2222], "targets":null}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), verify AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 1 element + + [1658747124.117113][3031:3036] CHIP:DMG: { + [1658747124.117163][3031:3036] CHIP:DMG: AttributeStatusIBs = + [1658747124.117214][3031:3036] CHIP:DMG: [ + [1658747124.117269][3031:3036] CHIP:DMG: AttributeStatusIB = + [1658747124.117317][3031:3036] CHIP:DMG: { + [1658747124.117377][3031:3036] CHIP:DMG: AttributePathIB = + [1658747124.117434][3031:3036] CHIP:DMG: { + [1658747124.117488][3031:3036] CHIP:DMG: Endpoint = 0x0, + [1658747124.117548][3031:3036] CHIP:DMG: Cluster = 0x1f, + [1658747124.117602][3031:3036] CHIP:DMG: Attribute = 0x0000_0000, + [1658747124.117657][3031:3036] CHIP:DMG: } + [1658747124.117715][3031:3036] CHIP:DMG: + [1658747124.117764][3031:3036] CHIP:DMG: StatusIB = + [1658747124.117814][3031:3036] CHIP:DMG: { + [1658747124.117866][3031:3036] CHIP:DMG: status = 0x00 (SUCCESS), + [1658747124.117921][3031:3036] CHIP:DMG: }, + [1658747124.117972][3031:3036] CHIP:DMG: + [1658747124.118016][3031:3036] CHIP:DMG: }, + [1658747124.118077][3031:3036] CHIP:DMG: + [1658747124.118116][3031:3036] CHIP:DMG: AttributeStatusIB = + [1658747124.118161][3031:3036] CHIP:DMG: { + [1658747124.118205][3031:3036] CHIP:DMG: AttributePathIB = + [1658747124.118285][3031:3036] CHIP:DMG: { + [1658747124.118340][3031:3036] CHIP:DMG: Endpoint = 0x0, + [1658747124.118394][3031:3036] CHIP:DMG: Cluster = 0x1f, + [1658747124.118453][3031:3036] CHIP:DMG: Attribute = 0x0000_0000, + [1658747124.118505][3031:3036] CHIP:DMG: ListIndex = Null, + [1658747124.118555][3031:3036] CHIP:DMG: } + [1658747124.118609][3031:3036] CHIP:DMG: + [1658747124.118658][3031:3036] CHIP:DMG: StatusIB = + [1658747124.118707][3031:3036] CHIP:DMG: { + [1658747124.118757][3031:3036] CHIP:DMG: status = 0x00 (SUCCESS), + [1658747124.118810][3031:3036] CHIP:DMG: }, + [1658747124.118861][3031:3036] CHIP:DMG: + [1658747124.118904][3031:3036] CHIP:DMG: }, + [1658747124.118954][3031:3036] CHIP:DMG: + [1658747124.118992][3031:3036] CHIP:DMG: ], + [1658747124.119044][3031:3036] CHIP:DMG: + [1658747124.119082][3031:3036] CHIP:DMG: InteractionModelRevision = 1 + [1658747124.119119][3031:3036] CHIP:DMG: } + [1658747124.119272][3031:3036] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1658747124.119359][3031:3036] CHIP:EM: Sending Standalone Ack for MessageCounter:33509818 on exchange 38117i + [1658747124.119446][3031:3036] CHIP:IN: Prepared secure message 0xffff7a7cd9e8 to 0x0000000000000002 (2) of type 0x10 and protocolId (0, 0) on exchange 38117i with MessageCounter:75755402. + [1658747124.119505][3031:3036] CHIP:IN: Sending encrypted msg 0xffff7a7cd9e8 with MessageCounter:7575 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 command: "readAttribute" @@ -209,7 +303,7 @@ tests: ] - label: "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" attribute: "ACL" @@ -225,6 +319,37 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol read acl 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), verify AccessControlEntryStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 + + [1661407263.740571][2355:2360] CHIP:DMG: SuppressResponse = true, + [1661407263.740605][2355:2360] CHIP:DMG: InteractionModelRevision = 1 + [1661407263.740640][2355:2360] CHIP:DMG: } + [1661407263.741000][2355:2360] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 2445703657 + [1661407263.741100][2355:2360] CHIP:TOO: ACL: 1 entries + [1661407263.741165][2355:2360] CHIP:TOO: [1]: { + [1661407263.741222][2355:2360] CHIP:TOO: Privilege: 5 + [1661407263.741260][2355:2360] CHIP:TOO: AuthMode: 2 + [1661407263.741409][2355:2360] CHIP:TOO: Subjects: 2 entries + [1661407263.741453][2355:2360] CHIP:TOO: [1]: 223344 + [1661407263.741487][2355:2360] CHIP:TOO: [2]: 2222 + [1661407263.741518][2355:2360] CHIP:TOO: Targets: null + [1661407263.741553][2355:2360] CHIP:TOO: FabricIndex: 2 + [1661407263.741587][2355:2360] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event" @@ -284,7 +409,7 @@ tests: - label: "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event" - PICS: ACL.S.E00 + PICS: ACL.S.E00 && PICS_SDK_CI_ONLY identity: "beta" command: "readEvent" event: "AccessControlEntryChanged" @@ -338,17 +463,125 @@ tests: FabricIndex: TH2FabricIndex, } - - label: "TH1 writes ACL attribute value is an empty list" + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "TH2 reads DUT Endpoint 0 AccessControl cluster + AccessControlEntryChanged event" + verification: | + ./chip-tool accesscontrol read-event access-control-entry-changed 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), verify AccessControl cluster AccessControlEntryChanged containing 3 elements, and MUST NOT contain any element with FabricIndex F1 + + [1661354915.731697][4136:4141] CHIP:DMG: + [1661354915.731730][4136:4141] CHIP:DMG: SuppressResponse = true, + [1661354915.731759][4136:4141] CHIP:DMG: InteractionModelRevision = 1 + [1661354915.731790][4136:4141] CHIP:DMG: } + [1661354915.732074][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.732104][4136:4141] CHIP:TOO: Event number: 4 + [1661354915.732133][4136:4141] CHIP:TOO: Priority: Info + [1661354915.732159][4136:4141] CHIP:TOO: Timestamp: 22322302 + [1661354915.732291][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.732328][4136:4141] CHIP:TOO: AdminNodeID: null + [1661354915.732374][4136:4141] CHIP:TOO: AdminPasscodeID: 0 + [1661354915.732423][4136:4141] CHIP:TOO: ChangeType: 1 + [1661354915.732456][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.732486][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.732516][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.732554][4136:4141] CHIP:TOO: Subjects: 1 entries + [1661354915.732593][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.732625][4136:4141] CHIP:TOO: Targets: null + [1661354915.732658][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.732688][4136:4141] CHIP:TOO: } + [1661354915.732720][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.732749][4136:4141] CHIP:TOO: } + [1661354915.732896][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.732929][4136:4141] CHIP:TOO: Event number: 9 + [1661354915.732955][4136:4141] CHIP:TOO: Priority: Info + [1661354915.732980][4136:4141] CHIP:TOO: Timestamp: 22566955 + [1661354915.733031][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.733065][4136:4141] CHIP:TOO: AdminNodeID: 223344 + [1661354915.733097][4136:4141] CHIP:TOO: AdminPasscodeID: null + [1661354915.733128][4136:4141] CHIP:TOO: ChangeType: 2 + [1661354915.733158][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.733187][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.733219][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.733252][4136:4141] CHIP:TOO: Subjects: 1 entries + [1661354915.733287][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.733319][4136:4141] CHIP:TOO: Targets: null + [1661354915.733349][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.733379][4136:4141] CHIP:TOO: } + [1661354915.733408][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.733437][4136:4141] CHIP:TOO: } + [1661354915.733578][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.733610][4136:4141] CHIP:TOO: Event number: 10 + [1661354915.733637][4136:4141] CHIP:TOO: Priority: Info + [1661354915.733662][4136:4141] CHIP:TOO: Timestamp: 22566957 + [1661354915.733709][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.733743][4136:4141] CHIP:TOO: AdminNodeID: 223344 + [1661354915.733772][4136:4141] CHIP:TOO: AdminPasscodeID: null + [1661354915.733803][4136:4141] CHIP:TOO: ChangeType: 1 + [1661354915.733833][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.733863][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.733891][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.733923][4136:4141] CHIP:TOO: Subjects: 2 entries + [1661354915.733957][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.733991][4136:4141] CHIP:TOO: [2]: 2222 + [1661354915.734018][4136:4141] CHIP:TOO: Targets: null + [1661354915.734048][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.734077][4136:4141] CHIP:TOO: } + [1661354915.734107][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.734136][4136:4141] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.E00 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: "TH1 writes ACL attribute" PICS: ACL.S.A0000 command: "writeAttribute" attribute: "ACL" arguments: - value: [] + value: [ + { + FabricIndex: 1, + Privilege: 5, # administer + AuthMode: 2, # case + Subjects: [TH1CommissionerNodeId], + Targets: null, + }, + ] - - label: "TH2 writes ACL attribute value is an empty list" + - label: "TH2 writes ACL attribute default value" identity: "beta" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY command: "writeAttribute" attribute: "ACL" arguments: - value: [] + value: [ + { + FabricIndex: 1, + Privilege: 5, # administer + AuthMode: 2, # case + Subjects: [TH2CommissionerNodeId], + Targets: null, + }, + ] + + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 writes ACL attribute default value" + verification: | + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [223344], "targets":null}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml index 593f5cc568f87a..57e842c6b34d42 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: APPLAUNCHER.S.AP + PICS: APPLAUNCHER.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -51,7 +51,7 @@ tests: type: bitmap32 - label: "Read the global attribute: FeatureMap" - PICS: " !APPLAUNCHER.S.AP " + PICS: " !APPLAUNCHER.S.F00 " command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml index bd4d8d3ae0c60f..9bca97c0b23887 100644 --- a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml @@ -42,13 +42,22 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" + PICS: AUDIOOUTPUT.S.F00 command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 0 - maxValue: 3 + hasMasksSet: [0x2] + + - label: "Read the global attribute: FeatureMap" + PICS: " !AUDIOOUTPUT.S.F00 " + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksClear: [0x2] - label: "Read the global attribute: AttributeList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml index 1d2363aa4f3181..ca06af7fd0d9e6 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 116.1.1. [TC-BIND-1.1] Global Attributes [DUT-Controllee] +name: 116.1.1. [TC-BIND-1.1] Global Attributes with DUT as Server PICS: - BIND.S diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml index f126946bbd272b..45ef62bf90a8d5 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml @@ -36,9 +36,6 @@ config: waitAfterCommissioning: type: int16u defaultValue: 5000 - discriminator: - type: int16u - defaultValue: 3840 correctPayload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml index 8002a8c64ff71d..c785450509a158 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml @@ -32,9 +32,6 @@ config: waitAfterCommissioning: type: int16u defaultValue: 5000 - discriminator: - type: int16u - defaultValue: 3840 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml index 19a6c046773f06..4afa57a839ce10 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml @@ -25,9 +25,6 @@ config: nodeId: 0x12344321 timeout: 950 endpoint: 0 - discriminator: - type: int16u - defaultValue: 3840 tests: - label: "Precondition: Reset Devices to factory defaults" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml index 2184c50bf22d78..15fba1b78d2f65 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml @@ -25,9 +25,6 @@ config: nodeId: 0x12344321 timeout: 200 endpoint: 0 - discriminator: - type: int16u - defaultValue: 3840 tests: - label: "Precondition: Reset Devices to factory defaults" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml index cbcb12c5fec8c1..967aa047a0f35d 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml @@ -25,9 +25,6 @@ config: type: node_id defaultValue: 0xCAFE endpoint: 0 - discriminator: - type: int16u - defaultValue: 3840 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml index 6f39fc88d0aa72..58156ddd37f458 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml @@ -36,9 +36,6 @@ config: waitAfterCommissioning: type: int16u defaultValue: 5000 - discriminator: - type: int16u - defaultValue: 3840 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" # This value needs to be generated automatically diff --git a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml index 889ca92c3e4496..3dcb35a1aa71e2 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml @@ -186,6 +186,279 @@ tests: type: list contains: [7] + - label: "Read the optional attribute(NumberOfPrimaries) in AttributeList" + PICS: CC.S.A0010 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [16] + + - label: "Read the optional attribute(Primary1X) in AttributeList" + PICS: CC.S.A0011 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [17] + + - label: "Read the optional attribute(Primary1Y) in AttributeList" + PICS: CC.S.A0012 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [18] + + - label: "Read the optional attribute(Primary1Intensity) in AttributeList" + PICS: CC.S.A0013 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [19] + + - label: "Read the optional attribute(Primary2X) in AttributeList" + PICS: CC.S.A0015 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [21] + + - label: "Read the optional attribute(Primary2Y) in AttributeList" + PICS: CC.S.A0016 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [22] + + - label: "Read the optional attribute(Primary2Intensity) in AttributeList" + PICS: CC.S.A0017 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [23] + + - label: "Read the optional attribute(Primary3X) in AttributeList" + PICS: CC.S.A0019 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [25] + + - label: "Read the optional attribute(Primary3Y) in AttributeList" + PICS: CC.S.A001a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [26] + + - label: "Read the optional attribute(Primary3Intensity) in AttributeList" + PICS: CC.S.A001b + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [27] + + - label: "Read the optional attribute(Primary4X) in AttributeList" + PICS: CC.S.A0020 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [32] + + - label: "Read the optional attribute(Primary4Y) in AttributeList" + PICS: CC.S.A0021 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [33] + + - label: "Read the optional attribute(Primary4Intensity) in AttributeList" + PICS: CC.S.A0022 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [34] + + - label: "Read the optional attribute(Primary5X) in AttributeList" + PICS: CC.S.A0024 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [36] + + - label: "Read the optional attribute(Primary5Y) in AttributeList" + PICS: CC.S.A0025 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [37] + + - label: "Read the optional attribute(Primary5Intensity) in AttributeList" + PICS: CC.S.A0026 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [38] + + - label: "Read the optional attribute(Primary6X) in AttributeList" + PICS: CC.S.A0028 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [40] + + - label: "Read the optional attribute(Primary6Y) in AttributeList" + PICS: CC.S.A0029 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [41] + + - label: "Read the optional attribute(Primary6Intensity) in AttributeList" + PICS: CC.S.A002a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [42] + + - label: "Read the optional attribute(WhitePointX) in AttributeList" + PICS: CC.S.A0030 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [48] + + - label: "Read the optional attribute(WhitePointY) in AttributeList" + PICS: CC.S.A0031 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [49] + + - label: "Read the optional attribute(ColorPointRX) in AttributeList" + PICS: CC.S.A0032 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [50] + + - label: "Read the optional attribute(ColorPointRY) in AttributeList" + PICS: CC.S.A0033 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [51] + + - label: + "Read the optional attribute(ColorPointRIntensity) in AttributeList" + PICS: CC.S.A0034 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [52] + + - label: "Read the optional attribute(ColorPointGX) in AttributeList" + PICS: CC.S.A0036 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [54] + + - label: "Read the optional attribute(ColorPointGY) in AttributeList" + PICS: CC.S.A0037 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [55] + + - label: + "Read the optional attribute(ColorPointGIntensity) in AttributeList" + PICS: CC.S.A0038 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [56] + + - label: "Read the optional attribute(ColorPointBX) in AttributeList" + PICS: CC.S.A003a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [58] + + - label: "Read the optional attribute(ColorPointBY) in AttributeList" + PICS: CC.S.A003b + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [59] + + - label: + "Read the optional attribute(ColorPointBIntensity) in AttributeList" + PICS: CC.S.A003c + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [60] + - label: "Read the optional attribute(EnhancedCurrentHue) in AttributeList" PICS: CC.S.A4000 command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml index e27f0167247638..996f47cf309a10 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml @@ -186,34 +186,34 @@ tests: verification: | ./chip-tool colorcontrol read current-y 1 1 - Verify response contains an uint16 in TH(all-clusters-app) Logs: + Verify response contains an uint16 value in TH(all-clusters-app) Logs: ReportDataMessage = [1666862605.149051][25129:25129] CHIP:DMG: { - [1666862605.149054][25129:25129] CHIP:DMG: AttributeReportIBs = - [1666862605.149059][25129:25129] CHIP:DMG: [ - [1666862605.149061][25129:25129] CHIP:DMG: AttributeReportIB = - [1666862605.149066][25129:25129] CHIP:DMG: { - [1666862605.149069][25129:25129] CHIP:DMG: AttributeDataIB = - [1666862605.149073][25129:25129] CHIP:DMG: { - [1666862605.149078][25129:25129] CHIP:DMG: DataVersion = 0xeff75486, - [1666862605.149083][25129:25129] CHIP:DMG: AttributePathIB = - [1666862605.149089][25129:25129] CHIP:DMG: { - [1666862605.149093][25129:25129] CHIP:DMG: Endpoint = 0x1, - [1666862605.149096][25129:25129] CHIP:DMG: Cluster = 0x300, - [1666862605.149100][25129:25129] CHIP:DMG: Attribute = 0x0000_0004, - [1666862605.149105][25129:25129] CHIP:DMG: } + [1666862605.149054][25129:25129] CHIP:DMG: AttributeReportIBs = + [1666862605.149059][25129:25129] CHIP:DMG: [ + [1666862605.149061][25129:25129] CHIP:DMG: AttributeReportIB = + [1666862605.149066][25129:25129] CHIP:DMG: { + [1666862605.149069][25129:25129] CHIP:DMG: AttributeDataIB = + [1666862605.149073][25129:25129] CHIP:DMG: { + [1666862605.149078][25129:25129] CHIP:DMG: DataVersion = 0xeff75486, + [1666862605.149083][25129:25129] CHIP:DMG: AttributePathIB = + [1666862605.149089][25129:25129] CHIP:DMG: { + [1666862605.149093][25129:25129] CHIP:DMG: Endpoint = 0x1, + [1666862605.149096][25129:25129] CHIP:DMG: Cluster = 0x300, + [1666862605.149100][25129:25129] CHIP:DMG: Attribute = 0x0000_0004, + [1666862605.149105][25129:25129] CHIP:DMG: } [1666862605.149110][25129:25129] CHIP:DMG: - [1666862605.149114][25129:25129] CHIP:DMG: Data = 24701, - [1666862605.149117][25129:25129] CHIP:DMG: }, + [1666862605.149114][25129:25129] CHIP:DMG: Data = 24701, + [1666862605.149117][25129:25129] CHIP:DMG: }, [1666862605.149122][25129:25129] CHIP:DMG: - [1666862605.149126][25129:25129] CHIP:DMG: }, + [1666862605.149126][25129:25129] CHIP:DMG: }, [1666862605.149133][25129:25129] CHIP:DMG: - [1666862605.149136][25129:25129] CHIP:DMG: ], + [1666862605.149136][25129:25129] CHIP:DMG: ], [1666862605.149143][25129:25129] CHIP:DMG: - [1666862605.149147][25129:25129] CHIP:DMG: SuppressResponse = true, - [1666862605.149152][25129:25129] CHIP:DMG: InteractionModelRevision = 1 + [1666862605.149147][25129:25129] CHIP:DMG: SuppressResponse = true, + [1666862605.149152][25129:25129] CHIP:DMG: InteractionModelRevision = 1 [1666862605.149155][25129:25129] CHIP:DMG: } disabled: true @@ -943,29 +943,29 @@ tests: ReportDataMessage = [1666863261.341318][25380:25380] CHIP:DMG: { - [1666863261.341321][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863261.341326][25380:25380] CHIP:DMG: [ - [1666863261.341329][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863261.341335][25380:25380] CHIP:DMG: { - [1666863261.341337][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863261.341341][25380:25380] CHIP:DMG: { - [1666863261.341345][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863261.341348][25380:25380] CHIP:DMG: AttributePathIB = - [1666863261.341351][25380:25380] CHIP:DMG: { - [1666863261.341354][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863261.341358][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863261.341362][25380:25380] CHIP:DMG: Attribute = 0x0000_0012, - [1666863261.341365][25380:25380] CHIP:DMG: } + [1666863261.341321][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863261.341326][25380:25380] CHIP:DMG: [ + [1666863261.341329][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863261.341335][25380:25380] CHIP:DMG: { + [1666863261.341337][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863261.341341][25380:25380] CHIP:DMG: { + [1666863261.341345][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863261.341348][25380:25380] CHIP:DMG: AttributePathIB = + [1666863261.341351][25380:25380] CHIP:DMG: { + [1666863261.341354][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863261.341358][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863261.341362][25380:25380] CHIP:DMG: Attribute = 0x0000_0012, + [1666863261.341365][25380:25380] CHIP:DMG: } [1666863261.341368][25380:25380] CHIP:DMG: - [1666863261.341373][25380:25380] CHIP:DMG: Data = 0, - [1666863261.341376][25380:25380] CHIP:DMG: }, + [1666863261.341373][25380:25380] CHIP:DMG: Data = 0, + [1666863261.341376][25380:25380] CHIP:DMG: }, [1666863261.341379][25380:25380] CHIP:DMG: - [1666863261.341382][25380:25380] CHIP:DMG: }, + [1666863261.341382][25380:25380] CHIP:DMG: }, [1666863261.341387][25380:25380] CHIP:DMG: - [1666863261.341393][25380:25380] CHIP:DMG: ], + [1666863261.341393][25380:25380] CHIP:DMG: ], [1666863261.341397][25380:25380] CHIP:DMG: - [1666863261.341401][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863261.341403][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863261.341401][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863261.341403][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863261.341405][25380:25380] CHIP:DMG: } disabled: true @@ -1054,29 +1054,29 @@ tests: ReportDataMessage = [1666863355.607138][25380:25380] CHIP:DMG: { - [1666863355.607140][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863355.607146][25380:25380] CHIP:DMG: [ - [1666863355.607148][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863355.607153][25380:25380] CHIP:DMG: { - [1666863355.607156][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863355.607159][25380:25380] CHIP:DMG: { - [1666863355.607163][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863355.607165][25380:25380] CHIP:DMG: AttributePathIB = - [1666863355.607169][25380:25380] CHIP:DMG: { - [1666863355.607173][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863355.607178][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863355.607181][25380:25380] CHIP:DMG: Attribute = 0x0000_0016, - [1666863355.607188][25380:25380] CHIP:DMG: } + [1666863355.607140][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863355.607146][25380:25380] CHIP:DMG: [ + [1666863355.607148][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863355.607153][25380:25380] CHIP:DMG: { + [1666863355.607156][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863355.607159][25380:25380] CHIP:DMG: { + [1666863355.607163][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863355.607165][25380:25380] CHIP:DMG: AttributePathIB = + [1666863355.607169][25380:25380] CHIP:DMG: { + [1666863355.607173][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863355.607178][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863355.607181][25380:25380] CHIP:DMG: Attribute = 0x0000_0016, + [1666863355.607188][25380:25380] CHIP:DMG: } [1666863355.607192][25380:25380] CHIP:DMG: - [1666863355.607196][25380:25380] CHIP:DMG: Data = 0, - [1666863355.607199][25380:25380] CHIP:DMG: }, + [1666863355.607196][25380:25380] CHIP:DMG: Data = 0, + [1666863355.607199][25380:25380] CHIP:DMG: }, [1666863355.607203][25380:25380] CHIP:DMG: - [1666863355.607206][25380:25380] CHIP:DMG: }, + [1666863355.607206][25380:25380] CHIP:DMG: }, [1666863355.607210][25380:25380] CHIP:DMG: - [1666863355.607213][25380:25380] CHIP:DMG: ], + [1666863355.607213][25380:25380] CHIP:DMG: ], [1666863355.607218][25380:25380] CHIP:DMG: - [1666863355.607221][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863355.607224][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863355.607221][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863355.607224][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863355.607226][25380:25380] CHIP:DMG: } [1666863355.607229][25380:25380] CHIP:DMG: disabled: true @@ -1126,29 +1126,29 @@ tests: ReportDataMessage = [1666863405.983475][25380:25380] CHIP:DMG: { - [1666863405.983477][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863405.983483][25380:25380] CHIP:DMG: [ - [1666863405.983485][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863405.983491][25380:25380] CHIP:DMG: { - [1666863405.983494][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863405.983498][25380:25380] CHIP:DMG: { - [1666863405.983502][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863405.983505][25380:25380] CHIP:DMG: AttributePathIB = - [1666863405.983510][25380:25380] CHIP:DMG: { - [1666863405.983513][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863405.983517][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863405.983523][25380:25380] CHIP:DMG: Attribute = 0x0000_0019, - [1666863405.983526][25380:25380] CHIP:DMG: } + [1666863405.983477][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863405.983483][25380:25380] CHIP:DMG: [ + [1666863405.983485][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863405.983491][25380:25380] CHIP:DMG: { + [1666863405.983494][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863405.983498][25380:25380] CHIP:DMG: { + [1666863405.983502][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863405.983505][25380:25380] CHIP:DMG: AttributePathIB = + [1666863405.983510][25380:25380] CHIP:DMG: { + [1666863405.983513][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863405.983517][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863405.983523][25380:25380] CHIP:DMG: Attribute = 0x0000_0019, + [1666863405.983526][25380:25380] CHIP:DMG: } [1666863405.983534][25380:25380] CHIP:DMG: - [1666863405.983540][25380:25380] CHIP:DMG: Data = 0, - [1666863405.983544][25380:25380] CHIP:DMG: }, + [1666863405.983540][25380:25380] CHIP:DMG: Data = 0, + [1666863405.983544][25380:25380] CHIP:DMG: }, [1666863405.983548][25380:25380] CHIP:DMG: - [1666863405.983551][25380:25380] CHIP:DMG: }, + [1666863405.983551][25380:25380] CHIP:DMG: }, [1666863405.983555][25380:25380] CHIP:DMG: - [1666863405.983558][25380:25380] CHIP:DMG: ], + [1666863405.983558][25380:25380] CHIP:DMG: ], [1666863405.983565][25380:25380] CHIP:DMG: - [1666863405.983568][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863405.983572][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863405.983568][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863405.983572][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863405.983575][25380:25380] CHIP:DMG: } [1666863405.983577][25380:25380] CHIP:DMG: disabled: true @@ -1163,29 +1163,29 @@ tests: ReportDataMessage = [1666863435.469111][25380:25380] CHIP:DMG: { - [1666863435.469114][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863435.469119][25380:25380] CHIP:DMG: [ - [1666863435.469122][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863435.469126][25380:25380] CHIP:DMG: { - [1666863435.469130][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863435.469133][25380:25380] CHIP:DMG: { - [1666863435.469137][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863435.469140][25380:25380] CHIP:DMG: AttributePathIB = - [1666863435.469143][25380:25380] CHIP:DMG: { - [1666863435.469147][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863435.469151][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863435.469154][25380:25380] CHIP:DMG: Attribute = 0x0000_001A, - [1666863435.469158][25380:25380] CHIP:DMG: } + [1666863435.469114][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863435.469119][25380:25380] CHIP:DMG: [ + [1666863435.469122][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863435.469126][25380:25380] CHIP:DMG: { + [1666863435.469130][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863435.469133][25380:25380] CHIP:DMG: { + [1666863435.469137][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863435.469140][25380:25380] CHIP:DMG: AttributePathIB = + [1666863435.469143][25380:25380] CHIP:DMG: { + [1666863435.469147][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863435.469151][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863435.469154][25380:25380] CHIP:DMG: Attribute = 0x0000_001A, + [1666863435.469158][25380:25380] CHIP:DMG: } [1666863435.469162][25380:25380] CHIP:DMG: - [1666863435.469166][25380:25380] CHIP:DMG: Data = 0, - [1666863435.469168][25380:25380] CHIP:DMG: }, + [1666863435.469166][25380:25380] CHIP:DMG: Data = 0, + [1666863435.469168][25380:25380] CHIP:DMG: }, [1666863435.469173][25380:25380] CHIP:DMG: - [1666863435.469175][25380:25380] CHIP:DMG: }, + [1666863435.469175][25380:25380] CHIP:DMG: }, [1666863435.469180][25380:25380] CHIP:DMG: - [1666863435.469182][25380:25380] CHIP:DMG: ], + [1666863435.469182][25380:25380] CHIP:DMG: ], [1666863435.469188][25380:25380] CHIP:DMG: - [1666863435.469191][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863435.469193][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863435.469191][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863435.469193][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863435.469196][25380:25380] CHIP:DMG: } disabled: true @@ -1198,29 +1198,29 @@ tests: ReportDataMessage = [1666863464.087690][25380:25380] CHIP:DMG: { - [1666863464.087693][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863464.087698][25380:25380] CHIP:DMG: [ - [1666863464.087700][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863464.087706][25380:25380] CHIP:DMG: { - [1666863464.087709][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863464.087712][25380:25380] CHIP:DMG: { - [1666863464.087715][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863464.087719][25380:25380] CHIP:DMG: AttributePathIB = - [1666863464.087723][25380:25380] CHIP:DMG: { - [1666863464.087727][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863464.087731][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863464.087735][25380:25380] CHIP:DMG: Attribute = 0x0000_001B, - [1666863464.087738][25380:25380] CHIP:DMG: } + [1666863464.087693][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863464.087698][25380:25380] CHIP:DMG: [ + [1666863464.087700][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863464.087706][25380:25380] CHIP:DMG: { + [1666863464.087709][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863464.087712][25380:25380] CHIP:DMG: { + [1666863464.087715][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863464.087719][25380:25380] CHIP:DMG: AttributePathIB = + [1666863464.087723][25380:25380] CHIP:DMG: { + [1666863464.087727][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863464.087731][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863464.087735][25380:25380] CHIP:DMG: Attribute = 0x0000_001B, + [1666863464.087738][25380:25380] CHIP:DMG: } [1666863464.087743][25380:25380] CHIP:DMG: - [1666863464.087746][25380:25380] CHIP:DMG: Data = 0, - [1666863464.087749][25380:25380] CHIP:DMG: }, + [1666863464.087746][25380:25380] CHIP:DMG: Data = 0, + [1666863464.087749][25380:25380] CHIP:DMG: }, [1666863464.087754][25380:25380] CHIP:DMG: - [1666863464.087757][25380:25380] CHIP:DMG: }, + [1666863464.087757][25380:25380] CHIP:DMG: }, [1666863464.087762][25380:25380] CHIP:DMG: - [1666863464.087764][25380:25380] CHIP:DMG: ], + [1666863464.087764][25380:25380] CHIP:DMG: ], [1666863464.087769][25380:25380] CHIP:DMG: - [1666863464.087772][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863464.087775][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863464.087772][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863464.087775][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863464.087778][25380:25380] CHIP:DMG: } [1666863464.087781][25380:25380] CHIP:DMG: @@ -1238,29 +1238,29 @@ tests: ReportDataMessage = [1666863490.271640][25380:25380] CHIP:DMG: { - [1666863490.271643][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863490.271648][25380:25380] CHIP:DMG: [ - [1666863490.271651][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863490.271656][25380:25380] CHIP:DMG: { - [1666863490.271659][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863490.271663][25380:25380] CHIP:DMG: { - [1666863490.271667][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863490.271670][25380:25380] CHIP:DMG: AttributePathIB = - [1666863490.271673][25380:25380] CHIP:DMG: { - [1666863490.271677][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863490.271680][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863490.271684][25380:25380] CHIP:DMG: Attribute = 0x0000_0020, - [1666863490.271690][25380:25380] CHIP:DMG: } + [1666863490.271643][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863490.271648][25380:25380] CHIP:DMG: [ + [1666863490.271651][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863490.271656][25380:25380] CHIP:DMG: { + [1666863490.271659][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863490.271663][25380:25380] CHIP:DMG: { + [1666863490.271667][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863490.271670][25380:25380] CHIP:DMG: AttributePathIB = + [1666863490.271673][25380:25380] CHIP:DMG: { + [1666863490.271677][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863490.271680][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863490.271684][25380:25380] CHIP:DMG: Attribute = 0x0000_0020, + [1666863490.271690][25380:25380] CHIP:DMG: } [1666863490.271694][25380:25380] CHIP:DMG: - [1666863490.271698][25380:25380] CHIP:DMG: Data = 0, - [1666863490.271702][25380:25380] CHIP:DMG: }, + [1666863490.271698][25380:25380] CHIP:DMG: Data = 0, + [1666863490.271702][25380:25380] CHIP:DMG: }, [1666863490.271707][25380:25380] CHIP:DMG: - [1666863490.271710][25380:25380] CHIP:DMG: }, + [1666863490.271710][25380:25380] CHIP:DMG: }, [1666863490.271715][25380:25380] CHIP:DMG: - [1666863490.271718][25380:25380] CHIP:DMG: ], + [1666863490.271718][25380:25380] CHIP:DMG: ], [1666863490.271723][25380:25380] CHIP:DMG: - [1666863490.271726][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863490.271729][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863490.271726][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863490.271729][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863490.271732][25380:25380] CHIP:DMG: } disabled: true @@ -1275,29 +1275,29 @@ tests: ReportDataMessage = [1666863522.473914][25380:25380] CHIP:DMG: { - [1666863522.473917][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863522.473923][25380:25380] CHIP:DMG: [ - [1666863522.473925][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863522.473930][25380:25380] CHIP:DMG: { - [1666863522.473933][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863522.473938][25380:25380] CHIP:DMG: { - [1666863522.473941][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863522.473944][25380:25380] CHIP:DMG: AttributePathIB = - [1666863522.473949][25380:25380] CHIP:DMG: { - [1666863522.473952][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863522.473957][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863522.473961][25380:25380] CHIP:DMG: Attribute = 0x0000_0021, - [1666863522.473964][25380:25380] CHIP:DMG: } + [1666863522.473917][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863522.473923][25380:25380] CHIP:DMG: [ + [1666863522.473925][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863522.473930][25380:25380] CHIP:DMG: { + [1666863522.473933][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863522.473938][25380:25380] CHIP:DMG: { + [1666863522.473941][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863522.473944][25380:25380] CHIP:DMG: AttributePathIB = + [1666863522.473949][25380:25380] CHIP:DMG: { + [1666863522.473952][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863522.473957][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863522.473961][25380:25380] CHIP:DMG: Attribute = 0x0000_0021, + [1666863522.473964][25380:25380] CHIP:DMG: } [1666863522.473968][25380:25380] CHIP:DMG: - [1666863522.473972][25380:25380] CHIP:DMG: Data = 0, - [1666863522.473975][25380:25380] CHIP:DMG: }, + [1666863522.473972][25380:25380] CHIP:DMG: Data = 0, + [1666863522.473975][25380:25380] CHIP:DMG: }, [1666863522.473979][25380:25380] CHIP:DMG: - [1666863522.473982][25380:25380] CHIP:DMG: }, + [1666863522.473982][25380:25380] CHIP:DMG: }, [1666863522.473987][25380:25380] CHIP:DMG: - [1666863522.473989][25380:25380] CHIP:DMG: ], + [1666863522.473989][25380:25380] CHIP:DMG: ], [1666863522.473994][25380:25380] CHIP:DMG: - [1666863522.473997][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863522.473999][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863522.473997][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863522.473999][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863522.474001][25380:25380] CHIP:DMG: } disabled: true @@ -1311,29 +1311,29 @@ tests: ReportDataMessage = [1666863555.278546][25380:25380] CHIP:DMG: { - [1666863555.278548][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863555.278552][25380:25380] CHIP:DMG: [ - [1666863555.278555][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863555.278559][25380:25380] CHIP:DMG: { - [1666863555.278563][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863555.278565][25380:25380] CHIP:DMG: { - [1666863555.278568][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863555.278571][25380:25380] CHIP:DMG: AttributePathIB = - [1666863555.278575][25380:25380] CHIP:DMG: { - [1666863555.278579][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863555.278583][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863555.278586][25380:25380] CHIP:DMG: Attribute = 0x0000_0022, - [1666863555.278592][25380:25380] CHIP:DMG: } + [1666863555.278548][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863555.278552][25380:25380] CHIP:DMG: [ + [1666863555.278555][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863555.278559][25380:25380] CHIP:DMG: { + [1666863555.278563][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863555.278565][25380:25380] CHIP:DMG: { + [1666863555.278568][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863555.278571][25380:25380] CHIP:DMG: AttributePathIB = + [1666863555.278575][25380:25380] CHIP:DMG: { + [1666863555.278579][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863555.278583][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863555.278586][25380:25380] CHIP:DMG: Attribute = 0x0000_0022, + [1666863555.278592][25380:25380] CHIP:DMG: } [1666863555.278596][25380:25380] CHIP:DMG: - [1666863555.278600][25380:25380] CHIP:DMG: Data = 0, - [1666863555.278603][25380:25380] CHIP:DMG: }, + [1666863555.278600][25380:25380] CHIP:DMG: Data = 0, + [1666863555.278603][25380:25380] CHIP:DMG: }, [1666863555.278607][25380:25380] CHIP:DMG: - [1666863555.278610][25380:25380] CHIP:DMG: }, + [1666863555.278610][25380:25380] CHIP:DMG: }, [1666863555.278615][25380:25380] CHIP:DMG: - [1666863555.278618][25380:25380] CHIP:DMG: ], + [1666863555.278618][25380:25380] CHIP:DMG: ], [1666863555.278622][25380:25380] CHIP:DMG: - [1666863555.278625][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863555.278629][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863555.278625][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863555.278629][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863555.278632][25380:25380] CHIP:DMG: } disabled: true @@ -1346,29 +1346,29 @@ tests: ReportDataMessage = [1666863587.103204][25380:25380] CHIP:DMG: { - [1666863587.103207][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863587.103211][25380:25380] CHIP:DMG: [ - [1666863587.103214][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863587.103219][25380:25380] CHIP:DMG: { - [1666863587.103222][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863587.103225][25380:25380] CHIP:DMG: { - [1666863587.103228][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863587.103231][25380:25380] CHIP:DMG: AttributePathIB = - [1666863587.103235][25380:25380] CHIP:DMG: { - [1666863587.103239][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863587.103245][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863587.103249][25380:25380] CHIP:DMG: Attribute = 0x0000_0024, - [1666863587.103254][25380:25380] CHIP:DMG: } + [1666863587.103207][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863587.103211][25380:25380] CHIP:DMG: [ + [1666863587.103214][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863587.103219][25380:25380] CHIP:DMG: { + [1666863587.103222][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863587.103225][25380:25380] CHIP:DMG: { + [1666863587.103228][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863587.103231][25380:25380] CHIP:DMG: AttributePathIB = + [1666863587.103235][25380:25380] CHIP:DMG: { + [1666863587.103239][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863587.103245][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863587.103249][25380:25380] CHIP:DMG: Attribute = 0x0000_0024, + [1666863587.103254][25380:25380] CHIP:DMG: } [1666863587.103258][25380:25380] CHIP:DMG: - [1666863587.103262][25380:25380] CHIP:DMG: Data = 0, - [1666863587.103266][25380:25380] CHIP:DMG: }, + [1666863587.103262][25380:25380] CHIP:DMG: Data = 0, + [1666863587.103266][25380:25380] CHIP:DMG: }, [1666863587.103271][25380:25380] CHIP:DMG: - [1666863587.103273][25380:25380] CHIP:DMG: }, + [1666863587.103273][25380:25380] CHIP:DMG: }, [1666863587.103278][25380:25380] CHIP:DMG: - [1666863587.103281][25380:25380] CHIP:DMG: ], + [1666863587.103281][25380:25380] CHIP:DMG: ], [1666863587.103286][25380:25380] CHIP:DMG: - [1666863587.103289][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863587.103292][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863587.103289][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863587.103292][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863587.103295][25380:25380] CHIP:DMG: } disabled: true @@ -1382,29 +1382,29 @@ tests: ReportDataMessage = [1666863613.004010][25380:25380] CHIP:DMG: { - [1666863613.004014][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863613.004021][25380:25380] CHIP:DMG: [ - [1666863613.004025][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863613.004033][25380:25380] CHIP:DMG: { - [1666863613.004036][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863613.004042][25380:25380] CHIP:DMG: { - [1666863613.004047][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863613.004052][25380:25380] CHIP:DMG: AttributePathIB = - [1666863613.004058][25380:25380] CHIP:DMG: { - [1666863613.004062][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863613.004067][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863613.004072][25380:25380] CHIP:DMG: Attribute = 0x0000_0025, - [1666863613.004076][25380:25380] CHIP:DMG: } + [1666863613.004014][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863613.004021][25380:25380] CHIP:DMG: [ + [1666863613.004025][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863613.004033][25380:25380] CHIP:DMG: { + [1666863613.004036][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863613.004042][25380:25380] CHIP:DMG: { + [1666863613.004047][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863613.004052][25380:25380] CHIP:DMG: AttributePathIB = + [1666863613.004058][25380:25380] CHIP:DMG: { + [1666863613.004062][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863613.004067][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863613.004072][25380:25380] CHIP:DMG: Attribute = 0x0000_0025, + [1666863613.004076][25380:25380] CHIP:DMG: } [1666863613.004081][25380:25380] CHIP:DMG: - [1666863613.004086][25380:25380] CHIP:DMG: Data = 0, - [1666863613.004093][25380:25380] CHIP:DMG: }, + [1666863613.004086][25380:25380] CHIP:DMG: Data = 0, + [1666863613.004093][25380:25380] CHIP:DMG: }, [1666863613.004099][25380:25380] CHIP:DMG: - [1666863613.004104][25380:25380] CHIP:DMG: }, + [1666863613.004104][25380:25380] CHIP:DMG: }, [1666863613.004110][25380:25380] CHIP:DMG: - [1666863613.004113][25380:25380] CHIP:DMG: ], + [1666863613.004113][25380:25380] CHIP:DMG: ], [1666863613.004119][25380:25380] CHIP:DMG: - [1666863613.004124][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863613.004129][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863613.004124][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863613.004129][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863613.004132][25380:25380] CHIP:DMG: } disabled: true @@ -1419,29 +1419,29 @@ tests: ReportDataMessage = [1666863640.702107][25380:25380] CHIP:DMG: { - [1666863640.702111][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863640.702118][25380:25380] CHIP:DMG: [ - [1666863640.702122][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863640.702129][25380:25380] CHIP:DMG: { - [1666863640.702134][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863640.702139][25380:25380] CHIP:DMG: { - [1666863640.702144][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863640.702148][25380:25380] CHIP:DMG: AttributePathIB = - [1666863640.702153][25380:25380] CHIP:DMG: { - [1666863640.702159][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863640.702165][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863640.702170][25380:25380] CHIP:DMG: Attribute = 0x0000_0026, - [1666863640.702175][25380:25380] CHIP:DMG: } + [1666863640.702111][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863640.702118][25380:25380] CHIP:DMG: [ + [1666863640.702122][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863640.702129][25380:25380] CHIP:DMG: { + [1666863640.702134][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863640.702139][25380:25380] CHIP:DMG: { + [1666863640.702144][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863640.702148][25380:25380] CHIP:DMG: AttributePathIB = + [1666863640.702153][25380:25380] CHIP:DMG: { + [1666863640.702159][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863640.702165][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863640.702170][25380:25380] CHIP:DMG: Attribute = 0x0000_0026, + [1666863640.702175][25380:25380] CHIP:DMG: } [1666863640.702181][25380:25380] CHIP:DMG: - [1666863640.702186][25380:25380] CHIP:DMG: Data = 0, - [1666863640.702191][25380:25380] CHIP:DMG: }, + [1666863640.702186][25380:25380] CHIP:DMG: Data = 0, + [1666863640.702191][25380:25380] CHIP:DMG: }, [1666863640.702199][25380:25380] CHIP:DMG: - [1666863640.702203][25380:25380] CHIP:DMG: }, + [1666863640.702203][25380:25380] CHIP:DMG: }, [1666863640.702210][25380:25380] CHIP:DMG: - [1666863640.702213][25380:25380] CHIP:DMG: ], + [1666863640.702213][25380:25380] CHIP:DMG: ], [1666863640.702220][25380:25380] CHIP:DMG: - [1666863640.702224][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863640.702229][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863640.702224][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863640.702229][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863640.702232][25380:25380] CHIP:DMG: } disabled: true @@ -1455,29 +1455,29 @@ tests: ReportDataMessage = [1666863670.226471][25380:25380] CHIP:DMG: { - [1666863670.226474][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863670.226479][25380:25380] CHIP:DMG: [ - [1666863670.226482][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863670.226488][25380:25380] CHIP:DMG: { - [1666863670.226491][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863670.226494][25380:25380] CHIP:DMG: { - [1666863670.226498][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863670.226501][25380:25380] CHIP:DMG: AttributePathIB = - [1666863670.226506][25380:25380] CHIP:DMG: { - [1666863670.226509][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863670.226514][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863670.226518][25380:25380] CHIP:DMG: Attribute = 0x0000_0028, - [1666863670.226524][25380:25380] CHIP:DMG: } + [1666863670.226474][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863670.226479][25380:25380] CHIP:DMG: [ + [1666863670.226482][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863670.226488][25380:25380] CHIP:DMG: { + [1666863670.226491][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863670.226494][25380:25380] CHIP:DMG: { + [1666863670.226498][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863670.226501][25380:25380] CHIP:DMG: AttributePathIB = + [1666863670.226506][25380:25380] CHIP:DMG: { + [1666863670.226509][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863670.226514][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863670.226518][25380:25380] CHIP:DMG: Attribute = 0x0000_0028, + [1666863670.226524][25380:25380] CHIP:DMG: } [1666863670.226529][25380:25380] CHIP:DMG: - [1666863670.226533][25380:25380] CHIP:DMG: Data = 0, - [1666863670.226536][25380:25380] CHIP:DMG: }, + [1666863670.226533][25380:25380] CHIP:DMG: Data = 0, + [1666863670.226536][25380:25380] CHIP:DMG: }, [1666863670.226543][25380:25380] CHIP:DMG: - [1666863670.226546][25380:25380] CHIP:DMG: }, + [1666863670.226546][25380:25380] CHIP:DMG: }, [1666863670.226551][25380:25380] CHIP:DMG: - [1666863670.226554][25380:25380] CHIP:DMG: ], + [1666863670.226554][25380:25380] CHIP:DMG: ], [1666863670.226559][25380:25380] CHIP:DMG: - [1666863670.226562][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863670.226566][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863670.226562][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863670.226566][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863670.226568][25380:25380] CHIP:DMG: } disabled: true @@ -1491,29 +1491,29 @@ tests: ReportDataMessage = [1666863704.984668][25380:25380] CHIP:DMG: { - [1666863704.984671][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863704.984676][25380:25380] CHIP:DMG: [ - [1666863704.984679][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863704.984684][25380:25380] CHIP:DMG: { - [1666863704.984687][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863704.984691][25380:25380] CHIP:DMG: { - [1666863704.984695][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863704.984701][25380:25380] CHIP:DMG: AttributePathIB = - [1666863704.984704][25380:25380] CHIP:DMG: { - [1666863704.984709][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863704.984712][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863704.984718][25380:25380] CHIP:DMG: Attribute = 0x0000_0029, - [1666863704.984721][25380:25380] CHIP:DMG: } + [1666863704.984671][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863704.984676][25380:25380] CHIP:DMG: [ + [1666863704.984679][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863704.984684][25380:25380] CHIP:DMG: { + [1666863704.984687][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863704.984691][25380:25380] CHIP:DMG: { + [1666863704.984695][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863704.984701][25380:25380] CHIP:DMG: AttributePathIB = + [1666863704.984704][25380:25380] CHIP:DMG: { + [1666863704.984709][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863704.984712][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863704.984718][25380:25380] CHIP:DMG: Attribute = 0x0000_0029, + [1666863704.984721][25380:25380] CHIP:DMG: } [1666863704.984725][25380:25380] CHIP:DMG: - [1666863704.984729][25380:25380] CHIP:DMG: Data = 0, - [1666863704.984732][25380:25380] CHIP:DMG: }, + [1666863704.984729][25380:25380] CHIP:DMG: Data = 0, + [1666863704.984732][25380:25380] CHIP:DMG: }, [1666863704.984737][25380:25380] CHIP:DMG: - [1666863704.984740][25380:25380] CHIP:DMG: }, + [1666863704.984740][25380:25380] CHIP:DMG: }, [1666863704.984744][25380:25380] CHIP:DMG: - [1666863704.984746][25380:25380] CHIP:DMG: ], + [1666863704.984746][25380:25380] CHIP:DMG: ], [1666863704.984751][25380:25380] CHIP:DMG: - [1666863704.984754][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863704.984757][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863704.984754][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863704.984757][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863704.984760][25380:25380] CHIP:DMG: } disabled: true @@ -1528,29 +1528,29 @@ tests: ReportDataMessage = [1666863735.953001][25380:25380] CHIP:DMG: { - [1666863735.953004][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863735.953010][25380:25380] CHIP:DMG: [ - [1666863735.953012][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863735.953017][25380:25380] CHIP:DMG: { - [1666863735.953020][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863735.953023][25380:25380] CHIP:DMG: { - [1666863735.953026][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863735.953030][25380:25380] CHIP:DMG: AttributePathIB = - [1666863735.953034][25380:25380] CHIP:DMG: { - [1666863735.953037][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863735.953041][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863735.953044][25380:25380] CHIP:DMG: Attribute = 0x0000_002A, - [1666863735.953048][25380:25380] CHIP:DMG: } + [1666863735.953004][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863735.953010][25380:25380] CHIP:DMG: [ + [1666863735.953012][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863735.953017][25380:25380] CHIP:DMG: { + [1666863735.953020][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863735.953023][25380:25380] CHIP:DMG: { + [1666863735.953026][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863735.953030][25380:25380] CHIP:DMG: AttributePathIB = + [1666863735.953034][25380:25380] CHIP:DMG: { + [1666863735.953037][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863735.953041][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863735.953044][25380:25380] CHIP:DMG: Attribute = 0x0000_002A, + [1666863735.953048][25380:25380] CHIP:DMG: } [1666863735.953053][25380:25380] CHIP:DMG: - [1666863735.953057][25380:25380] CHIP:DMG: Data = 0, - [1666863735.953061][25380:25380] CHIP:DMG: }, + [1666863735.953057][25380:25380] CHIP:DMG: Data = 0, + [1666863735.953061][25380:25380] CHIP:DMG: }, [1666863735.953066][25380:25380] CHIP:DMG: - [1666863735.953069][25380:25380] CHIP:DMG: }, + [1666863735.953069][25380:25380] CHIP:DMG: }, [1666863735.953073][25380:25380] CHIP:DMG: - [1666863735.953076][25380:25380] CHIP:DMG: ], + [1666863735.953076][25380:25380] CHIP:DMG: ], [1666863735.953081][25380:25380] CHIP:DMG: - [1666863735.953084][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863735.953089][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863735.953084][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863735.953089][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863735.953091][25380:25380] CHIP:DMG: } disabled: true @@ -1677,29 +1677,29 @@ tests: ReportDataMessage = [1666863871.297604][25380:25380] CHIP:DMG: { - [1666863871.297607][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863871.297612][25380:25380] CHIP:DMG: [ - [1666863871.297615][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863871.297621][25380:25380] CHIP:DMG: { - [1666863871.297624][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863871.297628][25380:25380] CHIP:DMG: { - [1666863871.297631][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863871.297635][25380:25380] CHIP:DMG: AttributePathIB = - [1666863871.297638][25380:25380] CHIP:DMG: { - [1666863871.297642][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863871.297645][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863871.297650][25380:25380] CHIP:DMG: Attribute = 0x0000_0033, - [1666863871.297653][25380:25380] CHIP:DMG: } + [1666863871.297607][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863871.297612][25380:25380] CHIP:DMG: [ + [1666863871.297615][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863871.297621][25380:25380] CHIP:DMG: { + [1666863871.297624][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863871.297628][25380:25380] CHIP:DMG: { + [1666863871.297631][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863871.297635][25380:25380] CHIP:DMG: AttributePathIB = + [1666863871.297638][25380:25380] CHIP:DMG: { + [1666863871.297642][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863871.297645][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863871.297650][25380:25380] CHIP:DMG: Attribute = 0x0000_0033, + [1666863871.297653][25380:25380] CHIP:DMG: } [1666863871.297657][25380:25380] CHIP:DMG: - [1666863871.297661][25380:25380] CHIP:DMG: Data = 0, - [1666863871.297664][25380:25380] CHIP:DMG: }, + [1666863871.297661][25380:25380] CHIP:DMG: Data = 0, + [1666863871.297664][25380:25380] CHIP:DMG: }, [1666863871.297676][25380:25380] CHIP:DMG: - [1666863871.297680][25380:25380] CHIP:DMG: }, + [1666863871.297680][25380:25380] CHIP:DMG: }, [1666863871.297685][25380:25380] CHIP:DMG: - [1666863871.297687][25380:25380] CHIP:DMG: ], + [1666863871.297687][25380:25380] CHIP:DMG: ], [1666863871.297692][25380:25380] CHIP:DMG: - [1666863871.297695][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863871.297697][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863871.297695][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863871.297697][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863871.297700][25380:25380] CHIP:DMG: } disabled: true @@ -1792,29 +1792,29 @@ tests: ReportDataMessage = [1666863962.602460][25380:25380] CHIP:DMG: { - [1666863962.602464][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863962.602471][25380:25380] CHIP:DMG: [ - [1666863962.602475][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863962.602481][25380:25380] CHIP:DMG: { - [1666863962.602486][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863962.602491][25380:25380] CHIP:DMG: { - [1666863962.602496][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863962.602501][25380:25380] CHIP:DMG: AttributePathIB = - [1666863962.602506][25380:25380] CHIP:DMG: { - [1666863962.602511][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863962.602516][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863962.602521][25380:25380] CHIP:DMG: Attribute = 0x0000_0037, - [1666863962.602527][25380:25380] CHIP:DMG: } + [1666863962.602464][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863962.602471][25380:25380] CHIP:DMG: [ + [1666863962.602475][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863962.602481][25380:25380] CHIP:DMG: { + [1666863962.602486][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863962.602491][25380:25380] CHIP:DMG: { + [1666863962.602496][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863962.602501][25380:25380] CHIP:DMG: AttributePathIB = + [1666863962.602506][25380:25380] CHIP:DMG: { + [1666863962.602511][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863962.602516][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863962.602521][25380:25380] CHIP:DMG: Attribute = 0x0000_0037, + [1666863962.602527][25380:25380] CHIP:DMG: } [1666863962.602533][25380:25380] CHIP:DMG: - [1666863962.602539][25380:25380] CHIP:DMG: Data = 0, - [1666863962.602543][25380:25380] CHIP:DMG: }, + [1666863962.602539][25380:25380] CHIP:DMG: Data = 0, + [1666863962.602543][25380:25380] CHIP:DMG: }, [1666863962.602549][25380:25380] CHIP:DMG: - [1666863962.602553][25380:25380] CHIP:DMG: }, + [1666863962.602553][25380:25380] CHIP:DMG: }, [1666863962.602559][25380:25380] CHIP:DMG: - [1666863962.602563][25380:25380] CHIP:DMG: ], + [1666863962.602563][25380:25380] CHIP:DMG: ], [1666863962.602571][25380:25380] CHIP:DMG: - [1666863962.602574][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863962.602579][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863962.602574][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863962.602579][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863962.602582][25380:25380] CHIP:DMG: } disabled: true @@ -1907,29 +1907,29 @@ tests: ReportDataMessage = [1666864059.275756][25380:25380] CHIP:DMG: { - [1666864059.275759][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666864059.275765][25380:25380] CHIP:DMG: [ - [1666864059.275767][25380:25380] CHIP:DMG: AttributeReportIB = - [1666864059.275771][25380:25380] CHIP:DMG: { - [1666864059.275774][25380:25380] CHIP:DMG: AttributeDataIB = - [1666864059.275778][25380:25380] CHIP:DMG: { - [1666864059.275780][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666864059.275784][25380:25380] CHIP:DMG: AttributePathIB = - [1666864059.275787][25380:25380] CHIP:DMG: { - [1666864059.275791][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666864059.275794][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666864059.275800][25380:25380] CHIP:DMG: Attribute = 0x0000_003B, - [1666864059.275806][25380:25380] CHIP:DMG: } + [1666864059.275759][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666864059.275765][25380:25380] CHIP:DMG: [ + [1666864059.275767][25380:25380] CHIP:DMG: AttributeReportIB = + [1666864059.275771][25380:25380] CHIP:DMG: { + [1666864059.275774][25380:25380] CHIP:DMG: AttributeDataIB = + [1666864059.275778][25380:25380] CHIP:DMG: { + [1666864059.275780][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666864059.275784][25380:25380] CHIP:DMG: AttributePathIB = + [1666864059.275787][25380:25380] CHIP:DMG: { + [1666864059.275791][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666864059.275794][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666864059.275800][25380:25380] CHIP:DMG: Attribute = 0x0000_003B, + [1666864059.275806][25380:25380] CHIP:DMG: } [1666864059.275811][25380:25380] CHIP:DMG: - [1666864059.275816][25380:25380] CHIP:DMG: Data = 0, - [1666864059.275820][25380:25380] CHIP:DMG: }, + [1666864059.275816][25380:25380] CHIP:DMG: Data = 0, + [1666864059.275820][25380:25380] CHIP:DMG: }, [1666864059.275826][25380:25380] CHIP:DMG: - [1666864059.275830][25380:25380] CHIP:DMG: }, + [1666864059.275830][25380:25380] CHIP:DMG: }, [1666864059.275836][25380:25380] CHIP:DMG: - [1666864059.275838][25380:25380] CHIP:DMG: ], + [1666864059.275838][25380:25380] CHIP:DMG: ], [1666864059.275844][25380:25380] CHIP:DMG: - [1666864059.275847][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666864059.275850][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666864059.275847][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666864059.275850][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666864059.275854][25380:25380] CHIP:DMG: } disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml deleted file mode 100644 index 08bef983ed74d7..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml +++ /dev/null @@ -1,375 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.4. [TC-CC-3.4] Hue functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Precondition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F00(HS) - disabled: true - - - label: "DUT sends MoveToHue command to TH" - PICS: CC.C.C00.Tx - verification: | - ./chip-tool colorcontrol move-to-hue 1 0 300 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870032.550840][28972:28972] CHIP:DMG: { - [1666870032.550844][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870032.550847][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870032.550852][28972:28972] CHIP:DMG: [ - [1666870032.550855][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870032.550861][28972:28972] CHIP:DMG: { - [1666870032.550864][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870032.550867][28972:28972] CHIP:DMG: { - [1666870032.550870][28972:28972] CHIP:DMG: CommandPathIB = - [1666870032.550874][28972:28972] CHIP:DMG: { - [1666870032.550877][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870032.550881][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870032.550888][28972:28972] CHIP:DMG: CommandId = 0x0, - [1666870032.550892][28972:28972] CHIP:DMG: }, - [1666870032.550898][28972:28972] CHIP:DMG: - [1666870032.550901][28972:28972] CHIP:DMG: StatusIB = - [1666870032.550905][28972:28972] CHIP:DMG: { - [1666870032.550909][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870032.550912][28972:28972] CHIP:DMG: }, - [1666870032.550915][28972:28972] CHIP:DMG: - [1666870032.550918][28972:28972] CHIP:DMG: }, - [1666870032.550923][28972:28972] CHIP:DMG: - [1666870032.550926][28972:28972] CHIP:DMG: }, - [1666870032.550930][28972:28972] CHIP:DMG: - [1666870032.550932][28972:28972] CHIP:DMG: ], - [1666870032.550936][28972:28972] CHIP:DMG: - [1666870032.550939][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870032.550942][28972:28972] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentHue attribute from TH (potentially multiple times)" - PICS: CC.C.C00.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - After 30 Seconds, Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666949574.856267][53285:53285] CHIP:DMG: { - [1666949574.856270][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949574.856277][53285:53285] CHIP:DMG: [ - [1666949574.856282][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949574.856288][53285:53285] CHIP:DMG: { - [1666949574.856293][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949574.856300][53285:53285] CHIP:DMG: { - [1666949574.856305][53285:53285] CHIP:DMG: DataVersion = 0x2574734d, - [1666949574.856312][53285:53285] CHIP:DMG: AttributePathIB = - [1666949574.856317][53285:53285] CHIP:DMG: { - [1666949574.856323][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949574.856328][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949574.856334][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949574.856338][53285:53285] CHIP:DMG: } - [1666949574.856346][53285:53285] CHIP:DMG: - [1666949574.856351][53285:53285] CHIP:DMG: Data = 1, - [1666949574.856355][53285:53285] CHIP:DMG: }, - [1666949574.856361][53285:53285] CHIP:DMG: - [1666949574.856366][53285:53285] CHIP:DMG: }, - [1666949574.856372][53285:53285] CHIP:DMG: - [1666949574.856376][53285:53285] CHIP:DMG: ], - [1666949574.856382][53285:53285] CHIP:DMG: - [1666949574.856388][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949574.856392][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949574.856395][53285:53285] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveHue command to TH" - PICS: CC.C.C01.Tx - verification: | - ./chip-tool colorcontrol move-hue 1 10 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870102.191351][28972:28972] CHIP:DMG: { - [1666870102.191354][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870102.191357][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870102.191362][28972:28972] CHIP:DMG: [ - [1666870102.191365][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870102.191370][28972:28972] CHIP:DMG: { - [1666870102.191373][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870102.191377][28972:28972] CHIP:DMG: { - [1666870102.191380][28972:28972] CHIP:DMG: CommandPathIB = - [1666870102.191383][28972:28972] CHIP:DMG: { - [1666870102.191387][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870102.191390][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870102.191394][28972:28972] CHIP:DMG: CommandId = 0x1, - [1666870102.191396][28972:28972] CHIP:DMG: }, - [1666870102.191401][28972:28972] CHIP:DMG: - [1666870102.191404][28972:28972] CHIP:DMG: StatusIB = - [1666870102.191408][28972:28972] CHIP:DMG: { - [1666870102.191411][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870102.191414][28972:28972] CHIP:DMG: }, - [1666870102.191418][28972:28972] CHIP:DMG: - [1666870102.191421][28972:28972] CHIP:DMG: }, - [1666870102.191426][28972:28972] CHIP:DMG: - [1666870102.191428][28972:28972] CHIP:DMG: }, - [1666870102.191432][28972:28972] CHIP:DMG: - [1666870102.191435][28972:28972] CHIP:DMG: ], - [1666870102.191439][28972:28972] CHIP:DMG: - [1666870102.191442][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870102.191444][28972:28972] CHIP:DMG: }, - disabled: true - - - label: "DUT reads CurrentHue attribute (potentially multiple times)" - PICS: CC.C.C01.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - - After 10 seconds, Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949623.429109][53285:53285] CHIP:DMG: { - [1666949623.429112][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949623.429117][53285:53285] CHIP:DMG: [ - [1666949623.429120][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949623.429125][53285:53285] CHIP:DMG: { - [1666949623.429128][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949623.429130][53285:53285] CHIP:DMG: { - [1666949623.429134][53285:53285] CHIP:DMG: DataVersion = 0x25747484, - [1666949623.429137][53285:53285] CHIP:DMG: AttributePathIB = - [1666949623.429141][53285:53285] CHIP:DMG: { - [1666949623.429144][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949623.429147][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949623.429153][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949623.429156][53285:53285] CHIP:DMG: } - [1666949623.429161][53285:53285] CHIP:DMG: - [1666949623.429164][53285:53285] CHIP:DMG: Data = 101, - [1666949623.429167][53285:53285] CHIP:DMG: }, - [1666949623.429172][53285:53285] CHIP:DMG: - [1666949623.429175][53285:53285] CHIP:DMG: }, - [1666949623.429180][53285:53285] CHIP:DMG: - [1666949623.429182][53285:53285] CHIP:DMG: ], - [1666949623.429187][53285:53285] CHIP:DMG: - [1666949623.429191][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949623.429193][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949623.429196][53285:53285] CHIP:DMG: } - - [1666870203.891709][28972:28972] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepHue command to TH" - PICS: CC.C.C02.Tx - verification: | - ./chip-tool colorcontrol step-hue 1 10 200 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870245.178660][28972:28972] CHIP:DMG: { - [1666870245.178664][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870245.178668][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870245.178675][28972:28972] CHIP:DMG: [ - [1666870245.178678][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870245.178687][28972:28972] CHIP:DMG: { - [1666870245.178691][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870245.178696][28972:28972] CHIP:DMG: { - [1666870245.178700][28972:28972] CHIP:DMG: CommandPathIB = - [1666870245.178705][28972:28972] CHIP:DMG: { - [1666870245.178710][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870245.178715][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870245.178720][28972:28972] CHIP:DMG: CommandId = 0x2, - [1666870245.178724][28972:28972] CHIP:DMG: }, - [1666870245.178731][28972:28972] CHIP:DMG: - [1666870245.178736][28972:28972] CHIP:DMG: StatusIB = - [1666870245.178740][28972:28972] CHIP:DMG: { - [1666870245.178745][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870245.178749][28972:28972] CHIP:DMG: }, - [1666870245.178755][28972:28972] CHIP:DMG: - [1666870245.178759][28972:28972] CHIP:DMG: }, - [1666870245.178764][28972:28972] CHIP:DMG: - [1666870245.178769][28972:28972] CHIP:DMG: }, - [1666870245.178776][28972:28972] CHIP:DMG: - [1666870245.178779][28972:28972] CHIP:DMG: ], - [1666870245.178785][28972:28972] CHIP:DMG: - [1666870245.178789][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870245.178793][28972:28972] CHIP:DMG: }, - [1666870245.178797][28972:28972] CHIP:DMG: - disabled: true - - - label: - "DUT reads CurrentHue attribute from TH (potentially multiple times)" - PICS: CC.C.C02.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - After 20 Seconds, Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949869.970496][53285:53285] CHIP:DMG: { - [1666949869.970499][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949869.970506][53285:53285] CHIP:DMG: [ - [1666949869.970510][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949869.970518][53285:53285] CHIP:DMG: { - [1666949869.970522][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949869.970527][53285:53285] CHIP:DMG: { - [1666949869.970532][53285:53285] CHIP:DMG: DataVersion = 0x2574821f, - [1666949869.970538][53285:53285] CHIP:DMG: AttributePathIB = - [1666949869.970543][53285:53285] CHIP:DMG: { - [1666949869.970548][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949869.970554][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949869.970560][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949869.970565][53285:53285] CHIP:DMG: } - [1666949869.970571][53285:53285] CHIP:DMG: - [1666949869.970576][53285:53285] CHIP:DMG: Data = 111, - [1666949869.970581][53285:53285] CHIP:DMG: }, - [1666949869.970590][53285:53285] CHIP:DMG: - [1666949869.970595][53285:53285] CHIP:DMG: }, - [1666949869.970601][53285:53285] CHIP:DMG: - [1666949869.970605][53285:53285] CHIP:DMG: ], - [1666949869.970612][53285:53285] CHIP:DMG: - [1666949869.970617][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949869.970621][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949869.970625][53285:53285] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870295.408009][28972:28972] CHIP:DMG: { - [1666870295.408013][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870295.408016][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870295.408021][28972:28972] CHIP:DMG: [ - [1666870295.408023][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870295.408029][28972:28972] CHIP:DMG: { - [1666870295.408032][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870295.408036][28972:28972] CHIP:DMG: { - [1666870295.408039][28972:28972] CHIP:DMG: CommandPathIB = - [1666870295.408042][28972:28972] CHIP:DMG: { - [1666870295.408045][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870295.408050][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870295.408054][28972:28972] CHIP:DMG: CommandId = 0x47, - [1666870295.408057][28972:28972] CHIP:DMG: }, - [1666870295.408062][28972:28972] CHIP:DMG: - [1666870295.408065][28972:28972] CHIP:DMG: StatusIB = - [1666870295.408070][28972:28972] CHIP:DMG: { - [1666870295.408074][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870295.408078][28972:28972] CHIP:DMG: }, - [1666870295.408082][28972:28972] CHIP:DMG: - [1666870295.408085][28972:28972] CHIP:DMG: }, - [1666870295.408090][28972:28972] CHIP:DMG: - [1666870295.408093][28972:28972] CHIP:DMG: }, - [1666870295.408098][28972:28972] CHIP:DMG: - [1666870295.408101][28972:28972] CHIP:DMG: ], - [1666870295.408106][28972:28972] CHIP:DMG: - [1666870295.408109][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870295.408111][28972:28972] CHIP:DMG: }, - disabled: true - - - label: "Over TransitionTime, DUT reads CurrentHue attribute from TH." - PICS: CC.C.C47.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666949915.651039][53285:53285] CHIP:DMG: { - [1666949915.651042][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949915.651048][53285:53285] CHIP:DMG: [ - [1666949915.651051][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949915.651056][53285:53285] CHIP:DMG: { - [1666949915.651059][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949915.651062][53285:53285] CHIP:DMG: { - [1666949915.651066][53285:53285] CHIP:DMG: DataVersion = 0x2574821f, - [1666949915.651069][53285:53285] CHIP:DMG: AttributePathIB = - [1666949915.651072][53285:53285] CHIP:DMG: { - [1666949915.651079][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949915.651084][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949915.651089][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949915.651093][53285:53285] CHIP:DMG: } - [1666949915.651100][53285:53285] CHIP:DMG: - [1666949915.651105][53285:53285] CHIP:DMG: Data = 111, - [1666949915.651110][53285:53285] CHIP:DMG: }, - [1666949915.651116][53285:53285] CHIP:DMG: - [1666949915.651121][53285:53285] CHIP:DMG: }, - [1666949915.651128][53285:53285] CHIP:DMG: - [1666949915.651131][53285:53285] CHIP:DMG: ], - [1666949915.651137][53285:53285] CHIP:DMG: - [1666949915.651141][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949915.651145][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949915.651148][53285:53285] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_4_Simulated.yaml new file mode 100644 index 00000000000000..df1730a3d47568 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_3_4_Simulated.yaml @@ -0,0 +1,123 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.4. [TC-CC-3.4] Hue functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + endpoint: 1 + timeout: 300 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToHue command to TH an Hue with _TransitionTime 300" + wait: "MoveToHue" + PICS: CC.C.C00.Tx && CC.C.F00 + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C00.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C00.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "DUT sends MoveHue command to TH" + wait: "MoveHue" + PICS: CC.C.C01.Tx && CC.C.F00 + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C01.Tx && CC.C.A0000 && CC.C.F00 + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C01.Tx && CC.C.A0000 && CC.C.F00 + + - label: "DUT sends StepHue command to TH" + wait: "StepHue" + PICS: CC.C.C02.Tx && CC.C.F00 + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C02.Tx && CC.C.A0000 && CC.C.F00 + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C02.Tx && CC.C.A0000 && CC.C.F00 + + - label: "DUT sends StopMoveStep command to TH" + wait: "StopMoveStep" + PICS: CC.C.C03.Tx && CC.C.A0000 && CC.C.F00 + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "Over TransitionTime, DUT reads CurrentHue attribute from TH" + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C03.Tx && CC.C.A0000 && CC.C.F00 diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml deleted file mode 100644 index bcd7cdee8cfe3e..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml +++ /dev/null @@ -1,486 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.9. [TC-CC-4.5] Saturation functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Pre-Condition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F00(HS) - disabled: true - - - label: "DUT sends MoveToSaturation command to TH" - PICS: CC.C.C03.Tx - verification: | - ./chip-tool colorcontrol move-to-saturation 200 300 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - [InvokeResponseMessage = - [1666948929.559593][53014:53014] CHIP:DMG: { - [1666948929.559597][53014:53014] CHIP:DMG: suppressResponse = false, - [1666948929.559601][53014:53014] CHIP:DMG: InvokeResponseIBs = - [1666948929.559609][53014:53014] CHIP:DMG: [ - [1666948929.559613][53014:53014] CHIP:DMG: InvokeResponseIB = - [1666948929.559620][53014:53014] CHIP:DMG: { - [1666948929.559625][53014:53014] CHIP:DMG: CommandStatusIB = - [1666948929.559630][53014:53014] CHIP:DMG: { - [1666948929.559635][53014:53014] CHIP:DMG: CommandPathIB = - [1666948929.559641][53014:53014] CHIP:DMG: { - [1666948929.559646][53014:53014] CHIP:DMG: EndpointId = 0x1, - [1666948929.559652][53014:53014] CHIP:DMG: ClusterId = 0x300, - [1666948929.559658][53014:53014] CHIP:DMG: CommandId = 0x3, - [1666948929.559663][53014:53014] CHIP:DMG: }, - [1666948929.559671][53014:53014] CHIP:DMG: - [1666948929.559676][53014:53014] CHIP:DMG: StatusIB = - [1666948929.559682][53014:53014] CHIP:DMG: { - [1666948929.559687][53014:53014] CHIP:DMG: status = 0x00 (SUCCESS), - [1666948929.559692][53014:53014] CHIP:DMG: }, - [1666948929.559698][53014:53014] CHIP:DMG: - [1666948929.559702][53014:53014] CHIP:DMG: }, - [1666948929.559710][53014:53014] CHIP:DMG: - [1666948929.559713][53014:53014] CHIP:DMG: }, - [1666948929.559719][53014:53014] CHIP:DMG: - [1666948929.559723][53014:53014] CHIP:DMG: ], - [1666948929.559731][53014:53014] CHIP:DMG: - [1666948929.559735][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666948929.559739][53014:53014] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentSaturation attribute from TH (potentially multiple - times)" - PICS: CC.C.C03.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - - - After 30 Seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948964.837074][53014:53014] CHIP:DMG: { - [1666948964.837078][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666948964.837086][53014:53014] CHIP:DMG: [ - [1666948964.837088][53014:53014] CHIP:DMG: AttributeReportIB = - [1666948964.837095][53014:53014] CHIP:DMG: { - [1666948964.837098][53014:53014] CHIP:DMG: AttributeDataIB = - [1666948964.837103][53014:53014] CHIP:DMG: { - [1666948964.837108][53014:53014] CHIP:DMG: DataVersion = 0x3aac1e2f, - [1666948964.837112][53014:53014] CHIP:DMG: AttributePathIB = - [1666948964.837118][53014:53014] CHIP:DMG: { - [1666948964.837122][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666948964.837127][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666948964.837132][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666948964.837136][53014:53014] CHIP:DMG: } - [1666948964.837141][53014:53014] CHIP:DMG: - [1666948964.837146][53014:53014] CHIP:DMG: Data = 200, - [1666948964.837150][53014:53014] CHIP:DMG: }, - [1666948964.837155][53014:53014] CHIP:DMG: - [1666948964.837159][53014:53014] CHIP:DMG: }, - [1666948964.837166][53014:53014] CHIP:DMG: - [1666948964.837168][53014:53014] CHIP:DMG: ], - [1666948964.837175][53014:53014] CHIP:DMG: - [1666948964.837178][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666948964.837182][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666948964.837185][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveSaturation command to TH" - PICS: CC.C.C04.Tx - verification: | - ./chip-tool colorcontrol move-saturation 1 10 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - - InvokeResponseMessage = - [1666871847.999808][30461:30461] CHIP:DMG: { - [1666871847.999811][30461:30461] CHIP:DMG: suppressResponse = false, - [1666871847.999814][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666871847.999819][30461:30461] CHIP:DMG: [ - [1666871847.999821][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666871847.999826][30461:30461] CHIP:DMG: { - [1666871847.999829][30461:30461] CHIP:DMG: CommandStatusIB = - [1666871847.999832][30461:30461] CHIP:DMG: { - [1666871847.999835][30461:30461] CHIP:DMG: CommandPathIB = - [1666871847.999842][30461:30461] CHIP:DMG: { - [1666871847.999845][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666871847.999850][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666871847.999853][30461:30461] CHIP:DMG: CommandId = 0x4, - [1666871847.999858][30461:30461] CHIP:DMG: }, - [1666871847.999863][30461:30461] CHIP:DMG: - [1666871847.999866][30461:30461] CHIP:DMG: StatusIB = - [1666871847.999871][30461:30461] CHIP:DMG: { - [1666871847.999874][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666871847.999878][30461:30461] CHIP:DMG: }, - [1666871847.999882][30461:30461] CHIP:DMG: - [1666871847.999887][30461:30461] CHIP:DMG: }, - [1666871847.999893][30461:30461] CHIP:DMG: - [1666871847.999896][30461:30461] CHIP:DMG: }, - [1666871847.999900][30461:30461] CHIP:DMG: - [1666871847.999903][30461:30461] CHIP:DMG: ], - [1666871847.999908][30461:30461] CHIP:DMG: - [1666871847.999911][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666871847.999913][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentSaturation attribute (potentially multiple times)" - PICS: CC.C.C04.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - - After 10 seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949021.698047][53014:53014] CHIP:DMG: { - [1666949021.698049][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949021.698056][53014:53014] CHIP:DMG: [ - [1666949021.698060][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949021.698066][53014:53014] CHIP:DMG: { - [1666949021.698069][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949021.698072][53014:53014] CHIP:DMG: { - [1666949021.698076][53014:53014] CHIP:DMG: DataVersion = 0x3aac1ed2, - [1666949021.698082][53014:53014] CHIP:DMG: AttributePathIB = - [1666949021.698087][53014:53014] CHIP:DMG: { - [1666949021.698093][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949021.698097][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949021.698102][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666949021.698106][53014:53014] CHIP:DMG: } - [1666949021.698110][53014:53014] CHIP:DMG: - [1666949021.698114][53014:53014] CHIP:DMG: Data = 254, - [1666949021.698117][53014:53014] CHIP:DMG: }, - [1666949021.698123][53014:53014] CHIP:DMG: - [1666949021.698127][53014:53014] CHIP:DMG: }, - [1666949021.698133][53014:53014] CHIP:DMG: - [1666949021.698135][53014:53014] CHIP:DMG: ], - [1666949021.698142][53014:53014] CHIP:DMG: - [1666949021.698146][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949021.698151][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949021.698154][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepSaturation command to TH" - PICS: CC.C.C05.Tx - verification: | - ./chip-tool colorcontrol step-saturation 1 10 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666871905.186632][30461:30461] CHIP:DMG: { - [1666871905.186635][30461:30461] CHIP:DMG: suppressResponse = false, - [1666871905.186638][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666871905.186643][30461:30461] CHIP:DMG: [ - [1666871905.186646][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666871905.186651][30461:30461] CHIP:DMG: { - [1666871905.186654][30461:30461] CHIP:DMG: CommandStatusIB = - [1666871905.186657][30461:30461] CHIP:DMG: { - [1666871905.186660][30461:30461] CHIP:DMG: CommandPathIB = - [1666871905.186664][30461:30461] CHIP:DMG: { - [1666871905.186668][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666871905.186671][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666871905.186675][30461:30461] CHIP:DMG: CommandId = 0x5, - [1666871905.186679][30461:30461] CHIP:DMG: }, - [1666871905.186684][30461:30461] CHIP:DMG: - [1666871905.186688][30461:30461] CHIP:DMG: StatusIB = - [1666871905.186692][30461:30461] CHIP:DMG: { - [1666871905.186696][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666871905.186699][30461:30461] CHIP:DMG: }, - [1666871905.186703][30461:30461] CHIP:DMG: - [1666871905.186705][30461:30461] CHIP:DMG: }, - [1666871905.186710][30461:30461] CHIP:DMG: - [1666871905.186713][30461:30461] CHIP:DMG: }, - [1666871905.186717][30461:30461] CHIP:DMG: - [1666871905.186719][30461:30461] CHIP:DMG: ], - [1666871905.186723][30461:30461] CHIP:DMG: - [1666871905.186726][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666871905.186728][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentSaturation attribute from TH (potentially multiple - times)" - PICS: CC.C.C05.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - After 20 Seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666949085.456270][53014:53014] CHIP:DMG: { - [1666949085.456272][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949085.456278][53014:53014] CHIP:DMG: [ - [1666949085.456281][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949085.456286][53014:53014] CHIP:DMG: { - [1666949085.456289][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949085.456292][53014:53014] CHIP:DMG: { - [1666949085.456296][53014:53014] CHIP:DMG: DataVersion = 0x3aac212b, - [1666949085.456299][53014:53014] CHIP:DMG: AttributePathIB = - [1666949085.456303][53014:53014] CHIP:DMG: { - [1666949085.456308][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949085.456311][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949085.456316][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666949085.456320][53014:53014] CHIP:DMG: } - [1666949085.456324][53014:53014] CHIP:DMG: - [1666949085.456328][53014:53014] CHIP:DMG: Data = 254, - [1666949085.456332][53014:53014] CHIP:DMG: }, - [1666949085.456337][53014:53014] CHIP:DMG: - [1666949085.456340][53014:53014] CHIP:DMG: }, - [1666949085.456344][53014:53014] CHIP:DMG: - [1666949085.456347][53014:53014] CHIP:DMG: ], - [1666949085.456352][53014:53014] CHIP:DMG: - [1666949085.456355][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949085.456358][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949085.456360][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveToHueAndSaturation command to TH" - PICS: CC.C.C06.Tx - verification: | - ./chip-tool colorcontrol move-to-hue-and-saturation 100 200 200 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666871966.930094][30461:30461] CHIP:DMG: { - [1666871966.930098][30461:30461] CHIP:DMG: suppressResponse = false, - [1666871966.930101][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666871966.930107][30461:30461] CHIP:DMG: [ - [1666871966.930112][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666871966.930120][30461:30461] CHIP:DMG: { - [1666871966.930123][30461:30461] CHIP:DMG: CommandStatusIB = - [1666871966.930127][30461:30461] CHIP:DMG: { - [1666871966.930131][30461:30461] CHIP:DMG: CommandPathIB = - [1666871966.930135][30461:30461] CHIP:DMG: { - [1666871966.930139][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666871966.930145][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666871966.930150][30461:30461] CHIP:DMG: CommandId = 0x6, - [1666871966.930154][30461:30461] CHIP:DMG: }, - [1666871966.930160][30461:30461] CHIP:DMG: - [1666871966.930164][30461:30461] CHIP:DMG: StatusIB = - [1666871966.930170][30461:30461] CHIP:DMG: { - [1666871966.930173][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666871966.930177][30461:30461] CHIP:DMG: }, - [1666871966.930181][30461:30461] CHIP:DMG: - [1666871966.930185][30461:30461] CHIP:DMG: }, - [1666871966.930189][30461:30461] CHIP:DMG: - [1666871966.930193][30461:30461] CHIP:DMG: }, - [1666871966.930198][30461:30461] CHIP:DMG: - [1666871966.930200][30461:30461] CHIP:DMG: ], - [1666871966.930205][30461:30461] CHIP:DMG: - [1666871966.930208][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666871966.930213][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentHue and CurrentSaturation attributes from TH - (potentially multiple times)" - PICS: CC.C.C06.Tx && CC.C.A0000 && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - After 20 Seconds, Verify response contains CurrentHue value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949242.902165][53014:53014] CHIP:DMG: { - [1666949242.902168][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949242.902173][53014:53014] CHIP:DMG: [ - [1666949242.902176][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949242.902181][53014:53014] CHIP:DMG: { - [1666949242.902184][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949242.902188][53014:53014] CHIP:DMG: { - [1666949242.902192][53014:53014] CHIP:DMG: DataVersion = 0x3aac244c, - [1666949242.902194][53014:53014] CHIP:DMG: AttributePathIB = - [1666949242.902198][53014:53014] CHIP:DMG: { - [1666949242.902201][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949242.902206][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949242.902209][53014:53014] CHIP:DMG: Attribute = 0x0000_0000, - [1666949242.902213][53014:53014] CHIP:DMG: } - [1666949242.902218][53014:53014] CHIP:DMG: - [1666949242.902222][53014:53014] CHIP:DMG: Data = 100, - [1666949242.902225][53014:53014] CHIP:DMG: }, - [1666949242.902229][53014:53014] CHIP:DMG: - [1666949242.902232][53014:53014] CHIP:DMG: }, - [1666949242.902236][53014:53014] CHIP:DMG: - [1666949242.902239][53014:53014] CHIP:DMG: ], - [1666949242.902244][53014:53014] CHIP:DMG: - [1666949242.902248][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949242.902250][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949242.902252][53014:53014] CHIP:DMG: } - - ./chip-tool colorcontrol read current-saturation 1 1 - - After 20 Seconds, Verify response contains an CurrentSaturation value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949267.581331][53014:53014] CHIP:DMG: { - [1666949267.581334][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949267.581339][53014:53014] CHIP:DMG: [ - [1666949267.581342][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949267.581347][53014:53014] CHIP:DMG: { - [1666949267.581351][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949267.581355][53014:53014] CHIP:DMG: { - [1666949267.581359][53014:53014] CHIP:DMG: DataVersion = 0x3aac244c, - [1666949267.581365][53014:53014] CHIP:DMG: AttributePathIB = - [1666949267.581369][53014:53014] CHIP:DMG: { - [1666949267.581373][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949267.581377][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949267.581381][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666949267.581384][53014:53014] CHIP:DMG: } - [1666949267.581388][53014:53014] CHIP:DMG: - [1666949267.581392][53014:53014] CHIP:DMG: Data = 200, - [1666949267.581394][53014:53014] CHIP:DMG: }, - [1666949267.581400][53014:53014] CHIP:DMG: - [1666949267.581403][53014:53014] CHIP:DMG: }, - [1666949267.581409][53014:53014] CHIP:DMG: - [1666949267.581411][53014:53014] CHIP:DMG: ], - [1666949267.581416][53014:53014] CHIP:DMG: - [1666949267.581418][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949267.581422][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949267.581424][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666872053.240013][30461:30461] CHIP:DMG: { - [1666872053.240017][30461:30461] CHIP:DMG: suppressResponse = false, - [1666872053.240021][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666872053.240029][30461:30461] CHIP:DMG: [ - [1666872053.240033][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666872053.240041][30461:30461] CHIP:DMG: { - [1666872053.240046][30461:30461] CHIP:DMG: CommandStatusIB = - [1666872053.240051][30461:30461] CHIP:DMG: { - [1666872053.240056][30461:30461] CHIP:DMG: CommandPathIB = - [1666872053.240061][30461:30461] CHIP:DMG: { - [1666872053.240066][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666872053.240073][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666872053.240077][30461:30461] CHIP:DMG: CommandId = 0x47, - [1666872053.240082][30461:30461] CHIP:DMG: }, - [1666872053.240088][30461:30461] CHIP:DMG: - [1666872053.240093][30461:30461] CHIP:DMG: StatusIB = - [1666872053.240098][30461:30461] CHIP:DMG: { - [1666872053.240103][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666872053.240108][30461:30461] CHIP:DMG: }, - [1666872053.240113][30461:30461] CHIP:DMG: - [1666872053.240118][30461:30461] CHIP:DMG: }, - [1666872053.240124][30461:30461] CHIP:DMG: - [1666872053.240129][30461:30461] CHIP:DMG: }, - [1666872053.240136][30461:30461] CHIP:DMG: - [1666872053.240140][30461:30461] CHIP:DMG: ], - [1666872053.240148][30461:30461] CHIP:DMG: - [1666872053.240152][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666872053.240156][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "Over TransitionTime, DUT reads CurrentSaturation attribute from TH." - PICS: CC.C.C47.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - - Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1667371661.960880][9339:9339] CHIP:DMG: { - [1667371661.960882][9339:9339] CHIP:DMG: AttributeReportIBs = - [1667371661.960887][9339:9339] CHIP:DMG: [ - [1667371661.960890][9339:9339] CHIP:DMG: AttributeReportIB = - [1667371661.960896][9339:9339] CHIP:DMG: { - [1667371661.960898][9339:9339] CHIP:DMG: AttributeDataIB = - [1667371661.960901][9339:9339] CHIP:DMG: { - [1667371661.960905][9339:9339] CHIP:DMG: DataVersion = 0xc1914ea4, - [1667371661.960908][9339:9339] CHIP:DMG: AttributePathIB = - [1667371661.960911][9339:9339] CHIP:DMG: { - [1667371661.960917][9339:9339] CHIP:DMG: Endpoint = 0x1, - [1667371661.960924][9339:9339] CHIP:DMG: Cluster = 0x300, - [1667371661.960928][9339:9339] CHIP:DMG: Attribute = 0x0000_0001, - [1667371661.960931][9339:9339] CHIP:DMG: } - [1667371661.960935][9339:9339] CHIP:DMG: - [1667371661.960940][9339:9339] CHIP:DMG: Data = 200, - [1667371661.960943][9339:9339] CHIP:DMG: }, - [1667371661.960948][9339:9339] CHIP:DMG: - [1667371661.960951][9339:9339] CHIP:DMG: }, - [1667371661.960957][9339:9339] CHIP:DMG: - [1667371661.960961][9339:9339] CHIP:DMG: ], - [1667371661.960966][9339:9339] CHIP:DMG: - [1667371661.960971][9339:9339] CHIP:DMG: SuppressResponse = true, - [1667371661.960974][9339:9339] CHIP:DMG: InteractionModelRevision = 1 - [1667371661.960977][9339:9339] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_5_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_5_Simulated.yaml new file mode 100644 index 00000000000000..aaabef575fc439 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_4_5_Simulated.yaml @@ -0,0 +1,157 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.9. [TC-CC-4.5] Saturation functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + endpoint: 1 + timeout: 500 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToSaturation command to TH" + PICS: CC.C.C03.Tx && CC.C.F00 + wait: "MoveToSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH periodically" + PICS: CC.C.C03.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH periodically" + PICS: CC.C.C03.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends MoveSaturation command to TH" + PICS: CC.C.C04.Tx && CC.C.F00 + wait: "MoveSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C04.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C04.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends StepSaturation command to TH" + PICS: CC.C.C05.Tx && CC.C.F00 + wait: "StepSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C05.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C05.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends MoveToHueAndSaturation command to TH" + PICS: CC.C.C06.Tx && CC.C.F00 + wait: "MoveToHueAndSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C06.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C06.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C06.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C06.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx && CC.C.F00 + wait: "StopMoveStep" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "Over TransitionTime, DUT reads CurrentSaturation attribute from TH" + wait: "readAttribute" + attribute: "CurrentSaturation" + PICS: CC.C.C47.Tx && CC.C.A0001 && CC.C.F00 diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml deleted file mode 100644 index dead0bb8c67e9f..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml +++ /dev/null @@ -1,494 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.13. [TC-CC-5.4] Color functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Pre-Condition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F03(XY) - disabled: true - - - label: "DUT sends MoveToColor command to TH" - PICS: CC.C.C07.Tx - verification: | - ./chip-tool colorcontrol move-to-color 400 500 300 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666934571.869647][27709:27709] CHIP:DMG: { - [1666934571.869651][27709:27709] CHIP:DMG: suppressResponse = false, - [1666934571.869654][27709:27709] CHIP:DMG: InvokeResponseIBs = - [1666934571.869658][27709:27709] CHIP:DMG: [ - [1666934571.869661][27709:27709] CHIP:DMG: InvokeResponseIB = - [1666934571.869666][27709:27709] CHIP:DMG: { - [1666934571.869669][27709:27709] CHIP:DMG: CommandStatusIB = - [1666934571.869672][27709:27709] CHIP:DMG: { - [1666934571.869675][27709:27709] CHIP:DMG: CommandPathIB = - [1666934571.869678][27709:27709] CHIP:DMG: { - [1666934571.869683][27709:27709] CHIP:DMG: EndpointId = 0x1, - [1666934571.869686][27709:27709] CHIP:DMG: ClusterId = 0x300, - [1666934571.869690][27709:27709] CHIP:DMG: CommandId = 0x7, - [1666934571.869693][27709:27709] CHIP:DMG: }, - [1666934571.869697][27709:27709] CHIP:DMG: - [1666934571.869701][27709:27709] CHIP:DMG: StatusIB = - [1666934571.869706][27709:27709] CHIP:DMG: { - [1666934571.869709][27709:27709] CHIP:DMG: status = 0x00 (SUCCESS), - [1666934571.869714][27709:27709] CHIP:DMG: }, - [1666934571.869718][27709:27709] CHIP:DMG: - [1666934571.869720][27709:27709] CHIP:DMG: }, - [1666934571.869725][27709:27709] CHIP:DMG: - [1666934571.869728][27709:27709] CHIP:DMG: }, - [1666934571.869733][27709:27709] CHIP:DMG: - [1666934571.869736][27709:27709] CHIP:DMG: ], - [1666934571.869741][27709:27709] CHIP:DMG: - [1666934571.869743][27709:27709] CHIP:DMG: InteractionModelRevision = 1 - [1666934571.869746][27709:27709] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C07.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - After 30 Seconds, Verify response contains CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666937465.689943][47283:47283] CHIP:DMG: { - [1666937465.689946][47283:47283] CHIP:DMG: AttributeReportIBs = - [1666937465.689952][47283:47283] CHIP:DMG: [ - [1666937465.689955][47283:47283] CHIP:DMG: AttributeReportIB = - [1666937465.689962][47283:47283] CHIP:DMG: { - [1666937465.689965][47283:47283] CHIP:DMG: AttributeDataIB = - [1666937465.689970][47283:47283] CHIP:DMG: { - [1666937465.689975][47283:47283] CHIP:DMG: DataVersion = 0xd5f334b2, - [1666937465.689981][47283:47283] CHIP:DMG: AttributePathIB = - [1666937465.689985][47283:47283] CHIP:DMG: { - [1666937465.689990][47283:47283] CHIP:DMG: Endpoint = 0x1, - [1666937465.689995][47283:47283] CHIP:DMG: Cluster = 0x300, - [1666937465.690001][47283:47283] CHIP:DMG: Attribute = 0x0000_0003, - [1666937465.690006][47283:47283] CHIP:DMG: } - [1666937465.690011][47283:47283] CHIP:DMG: - [1666937465.690017][47283:47283] CHIP:DMG: Data = 400, - [1666937465.690021][47283:47283] CHIP:DMG: }, - [1666937465.690027][47283:47283] CHIP:DMG: - [1666937465.690029][47283:47283] CHIP:DMG: }, - [1666937465.690033][47283:47283] CHIP:DMG: - [1666937465.690036][47283:47283] CHIP:DMG: ], - [1666937465.690041][47283:47283] CHIP:DMG: - [1666937465.690045][47283:47283] CHIP:DMG: SuppressResponse = true, - [1666937465.690049][47283:47283] CHIP:DMG: InteractionModelRevision = 1 - [1666937465.690053][47283:47283] CHIP:DMG: } - - ./chip-tool colorcontrol read current-y 1 1 - - After 30 Seconds, Verify response contains a CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666937453.573485][47283:47283] CHIP:DMG: { - [1666937453.573488][47283:47283] CHIP:DMG: AttributeReportIBs = - [1666937453.573494][47283:47283] CHIP:DMG: [ - [1666937453.573496][47283:47283] CHIP:DMG: AttributeReportIB = - [1666937453.573501][47283:47283] CHIP:DMG: { - [1666937453.573504][47283:47283] CHIP:DMG: AttributeDataIB = - [1666937453.573508][47283:47283] CHIP:DMG: { - [1666937453.573512][47283:47283] CHIP:DMG: DataVersion = 0xd5f334b2, - [1666937453.573514][47283:47283] CHIP:DMG: AttributePathIB = - [1666937453.573518][47283:47283] CHIP:DMG: { - [1666937453.573523][47283:47283] CHIP:DMG: Endpoint = 0x1, - [1666937453.573527][47283:47283] CHIP:DMG: Cluster = 0x300, - [1666937453.573533][47283:47283] CHIP:DMG: Attribute = 0x0000_0004, - [1666937453.573536][47283:47283] CHIP:DMG: } - [1666937453.573541][47283:47283] CHIP:DMG: - [1666937453.573544][47283:47283] CHIP:DMG: Data = 500, - [1666937453.573548][47283:47283] CHIP:DMG: }, - [1666937453.573553][47283:47283] CHIP:DMG: - [1666937453.573556][47283:47283] CHIP:DMG: }, - [1666937453.573561][47283:47283] CHIP:DMG: - [1666937453.573564][47283:47283] CHIP:DMG: ], - [1666937453.573568][47283:47283] CHIP:DMG: - [1666937453.573571][47283:47283] CHIP:DMG: SuppressResponse = true, - [1666937453.573573][47283:47283] CHIP:DMG: InteractionModelRevision = 1 - [1666937453.573576][47283:47283] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveColor command to TH" - PICS: CC.C.C08.Tx - verification: | - ./chip-tool colorcontrol move-color 10 20 0 0 1 1 - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666934658.164192][27709:27709] CHIP:DMG: { - [1666934658.164196][27709:27709] CHIP:DMG: suppressResponse = false, - [1666934658.164199][27709:27709] CHIP:DMG: InvokeResponseIBs = - [1666934658.164205][27709:27709] CHIP:DMG: [ - [1666934658.164208][27709:27709] CHIP:DMG: InvokeResponseIB = - [1666934658.164214][27709:27709] CHIP:DMG: { - [1666934658.164218][27709:27709] CHIP:DMG: CommandStatusIB = - [1666934658.164224][27709:27709] CHIP:DMG: { - [1666934658.164228][27709:27709] CHIP:DMG: CommandPathIB = - [1666934658.164232][27709:27709] CHIP:DMG: { - [1666934658.164237][27709:27709] CHIP:DMG: EndpointId = 0x1, - [1666934658.164241][27709:27709] CHIP:DMG: ClusterId = 0x300, - [1666934658.164246][27709:27709] CHIP:DMG: CommandId = 0x8, - [1666934658.164250][27709:27709] CHIP:DMG: }, - [1666934658.164257][27709:27709] CHIP:DMG: - [1666934658.164260][27709:27709] CHIP:DMG: StatusIB = - [1666934658.164264][27709:27709] CHIP:DMG: { - [1666934658.164270][27709:27709] CHIP:DMG: status = 0x00 (SUCCESS), - [1666934658.164273][27709:27709] CHIP:DMG: }, - [1666934658.164277][27709:27709] CHIP:DMG: - [1666934658.164281][27709:27709] CHIP:DMG: }, - [1666934658.164287][27709:27709] CHIP:DMG: - [1666934658.164291][27709:27709] CHIP:DMG: }, - [1666934658.164297][27709:27709] CHIP:DMG: - [1666934658.164299][27709:27709] CHIP:DMG: ], - [1666934658.164305][27709:27709] CHIP:DMG: - [1666934658.164309][27709:27709] CHIP:DMG: InteractionModelRevision = 1 - [1666934658.164312][27709:27709] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C08.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - After 10 seconds, Verify response contains CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948520.819763][52742:52742] CHIP:DMG: { - [1666948520.819766][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948520.819772][52742:52742] CHIP:DMG: [ - [1666948520.819775][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948520.819780][52742:52742] CHIP:DMG: { - [1666948520.819783][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948520.819787][52742:52742] CHIP:DMG: { - [1666948520.819791][52742:52742] CHIP:DMG: DataVersion = 0x2b8892f5, - [1666948520.819794][52742:52742] CHIP:DMG: AttributePathIB = - [1666948520.819798][52742:52742] CHIP:DMG: { - [1666948520.819804][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948520.819816][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948520.819820][52742:52742] CHIP:DMG: Attribute = 0x0000_0003, - [1666948520.819824][52742:52742] CHIP:DMG: } - [1666948520.819828][52742:52742] CHIP:DMG: - [1666948520.819833][52742:52742] CHIP:DMG: Data = 500, - [1666948520.819835][52742:52742] CHIP:DMG: }, - [1666948520.819840][52742:52742] CHIP:DMG: - [1666948520.819843][52742:52742] CHIP:DMG: }, - [1666948520.819851][52742:52742] CHIP:DMG: - [1666948520.819854][52742:52742] CHIP:DMG: ], - [1666948520.819859][52742:52742] CHIP:DMG: - [1666948520.819863][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948520.819867][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948520.819870][52742:52742] CHIP:DMG: - - ./chip-tool colorcontrol read current-y 1 1 - - After 10 seconds, Verify response contains CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948542.982566][52742:52742] CHIP:DMG: { - [1666948542.982570][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948542.982576][52742:52742] CHIP:DMG: [ - [1666948542.982579][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948542.982586][52742:52742] CHIP:DMG: { - [1666948542.982590][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948542.982594][52742:52742] CHIP:DMG: { - [1666948542.982598][52742:52742] CHIP:DMG: DataVersion = 0x2b889669, - [1666948542.982603][52742:52742] CHIP:DMG: AttributePathIB = - [1666948542.982607][52742:52742] CHIP:DMG: { - [1666948542.982612][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948542.982617][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948542.982622][52742:52742] CHIP:DMG: Attribute = 0x0000_0004, - [1666948542.982627][52742:52742] CHIP:DMG: } - [1666948542.982632][52742:52742] CHIP:DMG: - [1666948542.982638][52742:52742] CHIP:DMG: Data = 700, - [1666948542.982646][52742:52742] CHIP:DMG: }, - [1666948542.982650][52742:52742] CHIP:DMG: - [1666948542.982653][52742:52742] CHIP:DMG: }, - [1666948542.982658][52742:52742] CHIP:DMG: - [1666948542.982662][52742:52742] CHIP:DMG: ], - [1666948542.982668][52742:52742] CHIP:DMG: - [1666948542.982671][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948542.982674][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948542.982676][52742:52742] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepColor command to TH" - PICS: CC.C.C09.Tx - verification: | - ./chip-tool colorcontrol step-color 100 100 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666948582.730257][52742:52742] CHIP:DMG: { - [1666948582.730259][52742:52742] CHIP:DMG: suppressResponse = false, - [1666948582.730262][52742:52742] CHIP:DMG: InvokeResponseIBs = - [1666948582.730266][52742:52742] CHIP:DMG: [ - [1666948582.730269][52742:52742] CHIP:DMG: InvokeResponseIB = - [1666948582.730274][52742:52742] CHIP:DMG: { - [1666948582.730277][52742:52742] CHIP:DMG: CommandStatusIB = - [1666948582.730280][52742:52742] CHIP:DMG: { - [1666948582.730283][52742:52742] CHIP:DMG: CommandPathIB = - [1666948582.730286][52742:52742] CHIP:DMG: { - [1666948582.730289][52742:52742] CHIP:DMG: EndpointId = 0x1, - [1666948582.730293][52742:52742] CHIP:DMG: ClusterId = 0x300, - [1666948582.730296][52742:52742] CHIP:DMG: CommandId = 0x9, - [1666948582.730302][52742:52742] CHIP:DMG: }, - [1666948582.730307][52742:52742] CHIP:DMG: - [1666948582.730310][52742:52742] CHIP:DMG: StatusIB = - [1666948582.730314][52742:52742] CHIP:DMG: { - [1666948582.730318][52742:52742] CHIP:DMG: status = 0x00 (SUCCESS), - [1666948582.730321][52742:52742] CHIP:DMG: }, - [1666948582.730324][52742:52742] CHIP:DMG: - [1666948582.730326][52742:52742] CHIP:DMG: }, - [1666948582.730331][52742:52742] CHIP:DMG: - [1666948582.730334][52742:52742] CHIP:DMG: }, - [1666948582.730339][52742:52742] CHIP:DMG: - [1666948582.730341][52742:52742] CHIP:DMG: ], - [1666948582.730345][52742:52742] CHIP:DMG: - [1666948582.730348][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948582.730351][52742:52742] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C09.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - - After 20 Seconds, Verify response contains a CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948591.930750][52742:52742] CHIP:DMG: { - [1666948591.930752][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948591.930757][52742:52742] CHIP:DMG: [ - [1666948591.930760][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948591.930764][52742:52742] CHIP:DMG: { - [1666948591.930767][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948591.930770][52742:52742] CHIP:DMG: { - [1666948591.930774][52742:52742] CHIP:DMG: DataVersion = 0x2b889e06, - [1666948591.930777][52742:52742] CHIP:DMG: AttributePathIB = - [1666948591.930780][52742:52742] CHIP:DMG: { - [1666948591.930787][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948591.930790][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948591.930796][52742:52742] CHIP:DMG: Attribute = 0x0000_0003, - [1666948591.930799][52742:52742] CHIP:DMG: } - [1666948591.930805][52742:52742] CHIP:DMG: - [1666948591.930808][52742:52742] CHIP:DMG: Data = 600, - [1666948591.930812][52742:52742] CHIP:DMG: }, - [1666948591.930816][52742:52742] CHIP:DMG: - [1666948591.930819][52742:52742] CHIP:DMG: }, - [1666948591.930824][52742:52742] CHIP:DMG: - [1666948591.930827][52742:52742] CHIP:DMG: ], - [1666948591.930831][52742:52742] CHIP:DMG: - [1666948591.930834][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948591.930837][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948591.930839][52742:52742] CHIP:DMG: } - - - ./chip-tool colorcontrol read current-y 1 1 - - After 20 Seconds, Verify response contains a CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948667.570081][52742:52742] CHIP:DMG: { - [1666948667.570084][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948667.570089][52742:52742] CHIP:DMG: [ - [1666948667.570092][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948667.570097][52742:52742] CHIP:DMG: { - [1666948667.570100][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948667.570103][52742:52742] CHIP:DMG: { - [1666948667.570107][52742:52742] CHIP:DMG: DataVersion = 0x2b889fba, - [1666948667.570110][52742:52742] CHIP:DMG: AttributePathIB = - [1666948667.570115][52742:52742] CHIP:DMG: { - [1666948667.570118][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948667.570124][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948667.570127][52742:52742] CHIP:DMG: Attribute = 0x0000_0004, - [1666948667.570132][52742:52742] CHIP:DMG: } - [1666948667.570137][52742:52742] CHIP:DMG: - [1666948667.570141][52742:52742] CHIP:DMG: Data = 800, - [1666948667.570143][52742:52742] CHIP:DMG: }, - [1666948667.570147][52742:52742] CHIP:DMG: - [1666948667.570150][52742:52742] CHIP:DMG: }, - [1666948667.570155][52742:52742] CHIP:DMG: - [1666948667.570158][52742:52742] CHIP:DMG: ], - [1666948667.570163][52742:52742] CHIP:DMG: - [1666948667.570166][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948667.570169][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948667.570171][52742:52742] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666948695.762310][52742:52742] CHIP:DMG: { - [1666948695.762313][52742:52742] CHIP:DMG: suppressResponse = false, - [1666948695.762316][52742:52742] CHIP:DMG: InvokeResponseIBs = - [1666948695.762322][52742:52742] CHIP:DMG: [ - [1666948695.762325][52742:52742] CHIP:DMG: InvokeResponseIB = - [1666948695.762332][52742:52742] CHIP:DMG: { - [1666948695.762335][52742:52742] CHIP:DMG: CommandStatusIB = - [1666948695.762340][52742:52742] CHIP:DMG: { - [1666948695.762344][52742:52742] CHIP:DMG: CommandPathIB = - [1666948695.762349][52742:52742] CHIP:DMG: { - [1666948695.762354][52742:52742] CHIP:DMG: EndpointId = 0x1, - [1666948695.762358][52742:52742] CHIP:DMG: ClusterId = 0x300, - [1666948695.762364][52742:52742] CHIP:DMG: CommandId = 0x47, - [1666948695.762368][52742:52742] CHIP:DMG: }, - [1666948695.762375][52742:52742] CHIP:DMG: - [1666948695.762379][52742:52742] CHIP:DMG: StatusIB = - [1666948695.762383][52742:52742] CHIP:DMG: { - [1666948695.762389][52742:52742] CHIP:DMG: status = 0x00 (SUCCESS), - [1666948695.762393][52742:52742] CHIP:DMG: }, - [1666948695.762399][52742:52742] CHIP:DMG: - [1666948695.762404][52742:52742] CHIP:DMG: }, - [1666948695.762409][52742:52742] CHIP:DMG: - [1666948695.762413][52742:52742] CHIP:DMG: }, - [1666948695.762418][52742:52742] CHIP:DMG: - [1666948695.762422][52742:52742] CHIP:DMG: ], - [1666948695.762428][52742:52742] CHIP:DMG: - [1666948695.762431][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948695.762435][52742:52742] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C47.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - Verify response contains CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948762.408750][52742:52742] CHIP:DMG: { - [1666948762.408753][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948762.408758][52742:52742] CHIP:DMG: [ - [1666948762.408761][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948762.408767][52742:52742] CHIP:DMG: { - [1666948762.408770][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948762.408774][52742:52742] CHIP:DMG: { - [1666948762.408778][52742:52742] CHIP:DMG: DataVersion = 0x2b889fba, - [1666948762.408781][52742:52742] CHIP:DMG: AttributePathIB = - [1666948762.408784][52742:52742] CHIP:DMG: { - [1666948762.408788][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948762.408793][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948762.408797][52742:52742] CHIP:DMG: Attribute = 0x0000_0003, - [1666948762.408800][52742:52742] CHIP:DMG: } - [1666948762.408805][52742:52742] CHIP:DMG: - [1666948762.408809][52742:52742] CHIP:DMG: Data = 600, - [1666948762.408812][52742:52742] CHIP:DMG: }, - [1666948762.408818][52742:52742] CHIP:DMG: - [1666948762.408821][52742:52742] CHIP:DMG: }, - [1666948762.408825][52742:52742] CHIP:DMG: - [1666948762.408828][52742:52742] CHIP:DMG: ], - [1666948762.408833][52742:52742] CHIP:DMG: - [1666948762.408837][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948762.408839][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948762.408842][52742:52742] CHIP:DMG: } - - - ./chip-tool colorcontrol read current-y 1 1 - - Verify response contains CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948770.658007][52742:52742] CHIP:DMG: { - [1666948770.658010][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948770.658017][52742:52742] CHIP:DMG: [ - [1666948770.658021][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948770.658029][52742:52742] CHIP:DMG: { - [1666948770.658033][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948770.658038][52742:52742] CHIP:DMG: { - [1666948770.658043][52742:52742] CHIP:DMG: DataVersion = 0x2b889fba, - [1666948770.658050][52742:52742] CHIP:DMG: AttributePathIB = - [1666948770.658055][52742:52742] CHIP:DMG: { - [1666948770.658060][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948770.658068][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948770.658073][52742:52742] CHIP:DMG: Attribute = 0x0000_0004, - [1666948770.658079][52742:52742] CHIP:DMG: } - [1666948770.658086][52742:52742] CHIP:DMG: - [1666948770.658092][52742:52742] CHIP:DMG: Data = 800, - [1666948770.658096][52742:52742] CHIP:DMG: }, - [1666948770.658105][52742:52742] CHIP:DMG: - [1666948770.658110][52742:52742] CHIP:DMG: }, - [1666948770.658116][52742:52742] CHIP:DMG: - [1666948770.658120][52742:52742] CHIP:DMG: ], - [1666948770.658127][52742:52742] CHIP:DMG: - [1666948770.658131][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948770.658136][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948770.658140][52742:52742] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_4_Simulated.yaml new file mode 100644 index 00000000000000..dcae56a5d9c56e --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_5_4_Simulated.yaml @@ -0,0 +1,166 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 25.3.13. [TC-CC-5.4] Color functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + timeout: 500 + endpoint: 1 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToColor command to TH" + PICS: CC.C.C07.Tx && CC.C.F03 + wait: "MoveToColor" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "DUT sends MoveColor command to TH" + PICS: CC.C.C08.Tx && CC.C.F03 + wait: "MoveColor" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "DUT sends StepColor command to TH" + PICS: CC.C.C09.Tx + wait: "StepColor" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx + wait: "StopMoveStep" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: + "DUT reads CurrentY attribute from ConfiguredTime: type: int16u + defaultValue: 30000TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml deleted file mode 100644 index 7f56af96c79ea2..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml +++ /dev/null @@ -1,445 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.17. [TC-CC-6.4] Color Temperature functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Precondition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F04(CT) - disabled: true - - - label: - "* TH provides a server implementation of Color Control with - F04(CT)=true and reasonable values of ColorTempPhysicalMinMireds (e.g. - 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) * DUT might - read attributes like ColorTempPhysicalMinMireds, - ColorTempPhysicalMaxMireds from TH (now or in later steps) to use - those." - verification: | - ./chip-tool colorcontrol read color-temp-physical-min-mireds 1 1 - - - Verify response contains ColorTempPhysicalMinMireds in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666938560.591915][48087:48087] CHIP:DMG: { - [1666938560.591917][48087:48087] CHIP:DMG: AttributeReportIBs = - [1666938560.591922][48087:48087] CHIP:DMG: [ - [1666938560.591925][48087:48087] CHIP:DMG: AttributeReportIB = - [1666938560.591930][48087:48087] CHIP:DMG: { - [1666938560.591933][48087:48087] CHIP:DMG: AttributeDataIB = - [1666938560.591936][48087:48087] CHIP:DMG: { - [1666938560.591939][48087:48087] CHIP:DMG: DataVersion = 0x184221a8, - [1666938560.591943][48087:48087] CHIP:DMG: AttributePathIB = - [1666938560.591947][48087:48087] CHIP:DMG: { - [1666938560.591950][48087:48087] CHIP:DMG: Endpoint = 0x1, - [1666938560.591954][48087:48087] CHIP:DMG: Cluster = 0x300, - [1666938560.591959][48087:48087] CHIP:DMG: Attribute = 0x0000_400B, - [1666938560.591963][48087:48087] CHIP:DMG: } - [1666938560.591968][48087:48087] CHIP:DMG: - [1666938560.591973][48087:48087] CHIP:DMG: Data = 0, - [1666938560.591976][48087:48087] CHIP:DMG: }, - [1666938560.591980][48087:48087] CHIP:DMG: - [1666938560.591983][48087:48087] CHIP:DMG: }, - [1666938560.591987][48087:48087] CHIP:DMG: - [1666938560.591990][48087:48087] CHIP:DMG: ], - [1666938560.591995][48087:48087] CHIP:DMG: - [1666938560.591997][48087:48087] CHIP:DMG: SuppressResponse = true, - [1666938560.592000][48087:48087] CHIP:DMG: InteractionModelRevision = 1 - [1666938560.592002][48087:48087] CHIP:DMG: } - - ./chip-tool colorcontrol read color-temp-physical-max-mireds 1 1 - - - Verify response contains an ColorTempPhysicalMaxMireds in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666938672.872078][48087:48087] CHIP:DMG: { - [1666938672.872081][48087:48087] CHIP:DMG: AttributeReportIBs = - [1666938672.872088][48087:48087] CHIP:DMG: [ - [1666938672.872092][48087:48087] CHIP:DMG: AttributeReportIB = - [1666938672.872097][48087:48087] CHIP:DMG: { - [1666938672.872102][48087:48087] CHIP:DMG: AttributeDataIB = - [1666938672.872107][48087:48087] CHIP:DMG: { - [1666938672.872113][48087:48087] CHIP:DMG: DataVersion = 0x184221a8, - [1666938672.872117][48087:48087] CHIP:DMG: AttributePathIB = - [1666938672.872123][48087:48087] CHIP:DMG: { - [1666938672.872127][48087:48087] CHIP:DMG: Endpoint = 0x1, - [1666938672.872132][48087:48087] CHIP:DMG: Cluster = 0x300, - [1666938672.872137][48087:48087] CHIP:DMG: Attribute = 0x0000_400C, - [1666938672.872143][48087:48087] CHIP:DMG: } - [1666938672.872148][48087:48087] CHIP:DMG: - [1666938672.872154][48087:48087] CHIP:DMG: Data = 65279, - [1666938672.872158][48087:48087] CHIP:DMG: }, - [1666938672.872163][48087:48087] CHIP:DMG: - [1666938672.872167][48087:48087] CHIP:DMG: }, - [1666938672.872172][48087:48087] CHIP:DMG: - [1666938672.872175][48087:48087] CHIP:DMG: ], - [1666938672.872182][48087:48087] CHIP:DMG: - [1666938672.872185][48087:48087] CHIP:DMG: SuppressResponse = true, - [1666938672.872188][48087:48087] CHIP:DMG: InteractionModelRevision = 1 - [1666938672.872190][48087:48087] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveToColorTemperature command to TH" - PICS: CC.C.C0a.Tx - verification: | - ./chip-tool colorcontrol move-to-color-temperature 150 300 0 0 1 1 - - - Verify response contains ColorTemperatureMireds in TH(all-clusters-app) Logs: - InvokeRequestMessage = - [1666938707.093236][48087:48087] CHIP:DMG: { - [1666938707.093240][48087:48087] CHIP:DMG: suppressResponse = false, - [1666938707.093245][48087:48087] CHIP:DMG: timedRequest = false, - [1666938707.093249][48087:48087] CHIP:DMG: InvokeRequests = - [1666938707.093258][48087:48087] CHIP:DMG: [ - [1666938707.093262][48087:48087] CHIP:DMG: CommandDataIB = - [1666938707.093267][48087:48087] CHIP:DMG: { - [1666938707.093272][48087:48087] CHIP:DMG: CommandPathIB = - [1666938707.093277][48087:48087] CHIP:DMG: { - [1666938707.093282][48087:48087] CHIP:DMG: EndpointId = 0x1, - [1666938707.093287][48087:48087] CHIP:DMG: ClusterId = 0x300, - [1666938707.093292][48087:48087] CHIP:DMG: CommandId = 0xa, - [1666938707.093296][48087:48087] CHIP:DMG: }, - [1666938707.093302][48087:48087] CHIP:DMG: - [1666938707.093306][48087:48087] CHIP:DMG: CommandFields = - [1666938707.093311][48087:48087] CHIP:DMG: { - [1666938707.093318][48087:48087] CHIP:DMG: 0x0 = 150, - [1666938707.093323][48087:48087] CHIP:DMG: 0x1 = 300, - [1666938707.093328][48087:48087] CHIP:DMG: 0x2 = 0, - [1666938707.093333][48087:48087] CHIP:DMG: 0x3 = 0, - [1666938707.093338][48087:48087] CHIP:DMG: }, - [1666938707.093341][48087:48087] CHIP:DMG: }, - [1666938707.093349][48087:48087] CHIP:DMG: - [1666938707.093354][48087:48087] CHIP:DMG: ], - [1666938707.093361][48087:48087] CHIP:DMG: - [1666938707.093365][48087:48087] CHIP:DMG: InteractionModelRevision = 1 - [1666938707.093369][48087:48087] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C0a.Tx && CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - - - After 30s, Verify response contains ColorTemperatureMireds value same as step 2a in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947907.661931][52495:52495] CHIP:DMG: { - [1666947907.661934][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666947907.661940][52495:52495] CHIP:DMG: [ - [1666947907.661945][52495:52495] CHIP:DMG: AttributeReportIB = - [1666947907.661952][52495:52495] CHIP:DMG: { - [1666947907.661957][52495:52495] CHIP:DMG: AttributeDataIB = - [1666947907.661961][52495:52495] CHIP:DMG: { - [1666947907.661966][52495:52495] CHIP:DMG: DataVersion = 0x7dbacdb5, - [1666947907.661971][52495:52495] CHIP:DMG: AttributePathIB = - [1666947907.661975][52495:52495] CHIP:DMG: { - [1666947907.661980][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666947907.661985][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666947907.661990][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666947907.661994][52495:52495] CHIP:DMG: } - [1666947907.661999][52495:52495] CHIP:DMG: - [1666947907.662004][52495:52495] CHIP:DMG: Data = 150, - [1666947907.662009][52495:52495] CHIP:DMG: }, - [1666947907.662015][52495:52495] CHIP:DMG: - [1666947907.662019][52495:52495] CHIP:DMG: }, - [1666947907.662025][52495:52495] CHIP:DMG: - [1666947907.662028][52495:52495] CHIP:DMG: ], - [1666947907.662034][52495:52495] CHIP:DMG: - [1666947907.662038][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666947907.662042][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666947907.662045][52495:52495] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveColorTemperature command to TH" - PICS: CC.C.C4b.Tx - verification: | - ./chip-tool colorcontrol move-color-temperature 1 16319 0 65279 0 0 1 1 - - Verify response contains ColorTemperatureMireds in TH(all-clusters-app) Logs: - - InvokeRequestMessage = - [1666947955.621548][52495:52495] CHIP:DMG: { - [1666947955.621551][52495:52495] CHIP:DMG: suppressResponse = false, - [1666947955.621555][52495:52495] CHIP:DMG: timedRequest = false, - [1666947955.621559][52495:52495] CHIP:DMG: InvokeRequests = - [1666947955.621565][52495:52495] CHIP:DMG: [ - [1666947955.621568][52495:52495] CHIP:DMG: CommandDataIB = - [1666947955.621572][52495:52495] CHIP:DMG: { - [1666947955.621575][52495:52495] CHIP:DMG: CommandPathIB = - [1666947955.621578][52495:52495] CHIP:DMG: { - [1666947955.621584][52495:52495] CHIP:DMG: EndpointId = 0x1, - [1666947955.621588][52495:52495] CHIP:DMG: ClusterId = 0x300, - [1666947955.621593][52495:52495] CHIP:DMG: CommandId = 0x4b, - [1666947955.621596][52495:52495] CHIP:DMG: }, - [1666947955.621601][52495:52495] CHIP:DMG: - [1666947955.621604][52495:52495] CHIP:DMG: CommandFields = - [1666947955.621608][52495:52495] CHIP:DMG: { - [1666947955.621611][52495:52495] CHIP:DMG: 0x0 = 1, - [1666947955.621615][52495:52495] CHIP:DMG: 0x1 = 16319, - [1666947955.621618][52495:52495] CHIP:DMG: 0x2 = 0, - [1666947955.621622][52495:52495] CHIP:DMG: 0x3 = 65279, - [1666947955.621627][52495:52495] CHIP:DMG: 0x4 = 0, - [1666947955.621630][52495:52495] CHIP:DMG: 0x5 = 0, - [1666947955.621637][52495:52495] CHIP:DMG: }, - [1666947955.621639][52495:52495] CHIP:DMG: }, - [1666947955.621645][52495:52495] CHIP:DMG: - [1666947955.621648][52495:52495] CHIP:DMG: ], - [1666947955.621653][52495:52495] CHIP:DMG: - [1666947955.621656][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666947955.621658][52495:52495] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C4b.Tx && CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - - After 10 Seconds, Verify response contains ColorTemperatureMireds value same as step 3a in TH(all-clusters-app) Logs: - [ReportDataMessage = - [1666947999.628386][52495:52495] CHIP:DMG: { - [1666947999.628389][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666947999.628394][52495:52495] CHIP:DMG: [ - [1666947999.628397][52495:52495] CHIP:DMG: AttributeReportIB = - [1666947999.628402][52495:52495] CHIP:DMG: { - [1666947999.628405][52495:52495] CHIP:DMG: AttributeDataIB = - [1666947999.628408][52495:52495] CHIP:DMG: { - [1666947999.628413][52495:52495] CHIP:DMG: DataVersion = 0x7dbace04, - [1666947999.628419][52495:52495] CHIP:DMG: AttributePathIB = - [1666947999.628423][52495:52495] CHIP:DMG: { - [1666947999.628427][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666947999.628430][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666947999.628433][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666947999.628437][52495:52495] CHIP:DMG: } - [1666947999.628441][52495:52495] CHIP:DMG: - [1666947999.628445][52495:52495] CHIP:DMG: Data = 65279, - [1666947999.628447][52495:52495] CHIP:DMG: }, - [1666947999.628452][52495:52495] CHIP:DMG: - [1666947999.628454][52495:52495] CHIP:DMG: }, - [1666947999.628459][52495:52495] CHIP:DMG: - [1666947999.628462][52495:52495] CHIP:DMG: ], - [1666947999.628466][52495:52495] CHIP:DMG: - [1666947999.628470][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666947999.628473][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666947999.628475][52495:52495] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepColorTemperature command to TH" - PICS: CC.C.C4c.Tx - verification: | - ./chip-tool colorcontrol step-color-temperature 1 32639 200 0 65279 0 0 1 1 - - Verify the all fields are within their allowed bounds in CommandFields on TH(all-clusters-app) Logs: - - InvokeRequestMessage = - [1666948023.234384][52495:52495] CHIP:DMG: { - [1666948023.234387][52495:52495] CHIP:DMG: suppressResponse = false, - [1666948023.234391][52495:52495] CHIP:DMG: timedRequest = false, - [1666948023.234393][52495:52495] CHIP:DMG: InvokeRequests = - [1666948023.234398][52495:52495] CHIP:DMG: [ - [1666948023.234401][52495:52495] CHIP:DMG: CommandDataIB = - [1666948023.234405][52495:52495] CHIP:DMG: { - [1666948023.234408][52495:52495] CHIP:DMG: CommandPathIB = - [1666948023.234412][52495:52495] CHIP:DMG: { - [1666948023.234415][52495:52495] CHIP:DMG: EndpointId = 0x1, - [1666948023.234420][52495:52495] CHIP:DMG: ClusterId = 0x300, - [1666948023.234424][52495:52495] CHIP:DMG: CommandId = 0x4c, - [1666948023.234427][52495:52495] CHIP:DMG: }, - [1666948023.234431][52495:52495] CHIP:DMG: - [1666948023.234434][52495:52495] CHIP:DMG: CommandFields = - [1666948023.234438][52495:52495] CHIP:DMG: { - [1666948023.234442][52495:52495] CHIP:DMG: 0x0 = 1, - [1666948023.234446][52495:52495] CHIP:DMG: 0x1 = 32639, - [1666948023.234450][52495:52495] CHIP:DMG: 0x2 = 200, - [1666948023.234457][52495:52495] CHIP:DMG: 0x3 = 0, - [1666948023.234460][52495:52495] CHIP:DMG: 0x4 = 65279, - [1666948023.234463][52495:52495] CHIP:DMG: 0x5 = 0, - [1666948023.234467][52495:52495] CHIP:DMG: 0x6 = 0, - [1666948023.234471][52495:52495] CHIP:DMG: }, - [1666948023.234474][52495:52495] CHIP:DMG: }, - [1666948023.234482][52495:52495] CHIP:DMG: - [1666948023.234484][52495:52495] CHIP:DMG: ], - [1666948023.234490][52495:52495] CHIP:DMG: - [1666948023.234493][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948023.234496][52495:52495] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C4c.Tx & CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - After 20 Seconds, Verify response contains an ColorTemperatureMireds value same as step 4a in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948066.695666][52495:52495] CHIP:DMG: { - [1666948066.695669][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666948066.695676][52495:52495] CHIP:DMG: [ - [1666948066.695680][52495:52495] CHIP:DMG: AttributeReportIB = - [1666948066.695689][52495:52495] CHIP:DMG: { - [1666948066.695692][52495:52495] CHIP:DMG: AttributeDataIB = - [1666948066.695696][52495:52495] CHIP:DMG: { - [1666948066.695700][52495:52495] CHIP:DMG: DataVersion = 0x7dbacf95, - [1666948066.695703][52495:52495] CHIP:DMG: AttributePathIB = - [1666948066.695707][52495:52495] CHIP:DMG: { - [1666948066.695712][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666948066.695716][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666948066.695722][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666948066.695725][52495:52495] CHIP:DMG: } - [1666948066.695730][52495:52495] CHIP:DMG: - [1666948066.695734][52495:52495] CHIP:DMG: Data = 65279, - [1666948066.695736][52495:52495] CHIP:DMG: }, - [1666948066.695741][52495:52495] CHIP:DMG: - [1666948066.695744][52495:52495] CHIP:DMG: }, - [1666948066.695748][52495:52495] CHIP:DMG: - [1666948066.695751][52495:52495] CHIP:DMG: ], - [1666948066.695756][52495:52495] CHIP:DMG: - [1666948066.695760][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666948066.695763][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948066.695766][52495:52495] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - Verify the all fields are within their allowed bounds in CommandFields on TH(all-clusters-app) Logs: - - - InvokeRequestMessage = - [1666948096.448918][52495:52495] CHIP:DMG: { - [1666948096.448922][52495:52495] CHIP:DMG: suppressResponse = false, - [1666948096.448927][52495:52495] CHIP:DMG: timedRequest = false, - [1666948096.448931][52495:52495] CHIP:DMG: InvokeRequests = - [1666948096.448939][52495:52495] CHIP:DMG: [ - [1666948096.448942][52495:52495] CHIP:DMG: CommandDataIB = - [1666948096.448948][52495:52495] CHIP:DMG: { - [1666948096.448953][52495:52495] CHIP:DMG: CommandPathIB = - [1666948096.448958][52495:52495] CHIP:DMG: { - [1666948096.448964][52495:52495] CHIP:DMG: EndpointId = 0x1, - [1666948096.448969][52495:52495] CHIP:DMG: ClusterId = 0x300, - [1666948096.448976][52495:52495] CHIP:DMG: CommandId = 0x47, - [1666948096.448980][52495:52495] CHIP:DMG: }, - [1666948096.448986][52495:52495] CHIP:DMG: - [1666948096.448991][52495:52495] CHIP:DMG: CommandFields = - [1666948096.448997][52495:52495] CHIP:DMG: { - [1666948096.449002][52495:52495] CHIP:DMG: 0x0 = 0, - [1666948096.449007][52495:52495] CHIP:DMG: 0x1 = 0, - [1666948096.449013][52495:52495] CHIP:DMG: }, - [1666948096.449017][52495:52495] CHIP:DMG: }, - [1666948096.449024][52495:52495] CHIP:DMG: - [1666948096.449028][52495:52495] CHIP:DMG: ], - [1666948096.449035][52495:52495] CHIP:DMG: - [1666948096.449039][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948096.449043][52495:52495] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C47.Tx && CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - - Verify response contains an ColorTemperatureMireds value same as step 5a in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948158.878426][52495:52495] CHIP:DMG: { - [1666948158.878428][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666948158.878434][52495:52495] CHIP:DMG: [ - [1666948158.878437][52495:52495] CHIP:DMG: AttributeReportIB = - [1666948158.878442][52495:52495] CHIP:DMG: { - [1666948158.878445][52495:52495] CHIP:DMG: AttributeDataIB = - [1666948158.878448][52495:52495] CHIP:DMG: { - [1666948158.878452][52495:52495] CHIP:DMG: DataVersion = 0x7dbacf95, - [1666948158.878455][52495:52495] CHIP:DMG: AttributePathIB = - [1666948158.878458][52495:52495] CHIP:DMG: { - [1666948158.878462][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666948158.878465][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666948158.878470][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666948158.878473][52495:52495] CHIP:DMG: } - [1666948158.878478][52495:52495] CHIP:DMG: - [1666948158.878482][52495:52495] CHIP:DMG: Data = 65279, - [1666948158.878485][52495:52495] CHIP:DMG: }, - [1666948158.878489][52495:52495] CHIP:DMG: - [1666948158.878492][52495:52495] CHIP:DMG: }, - [1666948158.878497][52495:52495] CHIP:DMG: - [1666948158.878499][52495:52495] CHIP:DMG: ], - [1666948158.878505][52495:52495] CHIP:DMG: - [1666948158.878508][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666948158.878511][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948158.878514][52495:52495] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_4_Simulated.yaml new file mode 100644 index 00000000000000..440eb878716b3c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_6_4_Simulated.yaml @@ -0,0 +1,151 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.17. [TC-CC-6.4] Color Temperature functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + timeout: 500 + endpoint: 1 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: + "* TH provides a server implementation of Color Control with + F04(CT)=true and reasonable values of ColorTempPhysicalMinMireds (e.g. + 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read + attribute ColorTempPhysicalMinMireds from TH" + PICS: CC.C.A400b && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTempPhysicalMinMireds" + + - label: + "* TH provides a server implementation of Color Control with + F04(CT)=true and reasonable values of ColorTempPhysicalMinMireds (e.g. + 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read + attribute ColorTempPhysicalMaxMireds from TH" + PICS: CC.C.A400c && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTempPhysicalMaxMireds" + + - label: "DUT sends MoveToColorTemperature command to TH" + PICS: CC.C.C0a.Tx && CC.C.F04 + wait: "MoveToColorTemperature" + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "DUT sends MoveColorTemperatureMireds command to TH" + PICS: CC.C.C4b.Tx && CC.C.F04 + wait: "MoveColorTemperature" + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "DUT sends StepColorTemperature command to TH" + PICS: CC.C.C4c.Tx && CC.C.F04 + wait: "StepColorTemperature" + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx && CC.C.F04 + wait: "StopMoveStep" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml deleted file mode 100644 index b37d3b5fa7ec88..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml +++ /dev/null @@ -1,478 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.22. [TC-CC-7.5] Enhanced Hue functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Pre-Condition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F01(EHUE) - disabled: true - - - label: "DUT sends EnhancedMoveToHue command to TH" - PICS: CC.C.C40.Tx - verification: | - ./chip-tool colorcontrol enhanced-move-to-hue 1000 3 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666946934.676799][52174:52174] CHIP:DMG: { - [1666946934.676802][52174:52174] CHIP:DMG: suppressResponse = false, - [1666946934.676805][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666946934.676809][52174:52174] CHIP:DMG: [ - [1666946934.676812][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666946934.676817][52174:52174] CHIP:DMG: { - [1666946934.676820][52174:52174] CHIP:DMG: CommandStatusIB = - [1666946934.676823][52174:52174] CHIP:DMG: { - [1666946934.676826][52174:52174] CHIP:DMG: CommandPathIB = - [1666946934.676830][52174:52174] CHIP:DMG: { - [1666946934.676834][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666946934.676838][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666946934.676841][52174:52174] CHIP:DMG: CommandId = 0x40, - [1666946934.676844][52174:52174] CHIP:DMG: }, - [1666946934.676850][52174:52174] CHIP:DMG: - [1666946934.676854][52174:52174] CHIP:DMG: StatusIB = - [1666946934.676858][52174:52174] CHIP:DMG: { - [1666946934.676863][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666946934.676866][52174:52174] CHIP:DMG: }, - [1666946934.676870][52174:52174] CHIP:DMG: - [1666946934.676873][52174:52174] CHIP:DMG: }, - [1666946934.676877][52174:52174] CHIP:DMG: - [1666946934.676880][52174:52174] CHIP:DMG: }, - [1666946934.676885][52174:52174] CHIP:DMG: - [1666946934.676887][52174:52174] CHIP:DMG: ], - [1666946934.676891][52174:52174] CHIP:DMG: - [1666946934.676894][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666946934.676898][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple - times)" - PICS: CC.C.C40.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - - After 20s, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943789.581293][50952:50952] CHIP:DMG: { - [1666943789.581297][50952:50952] CHIP:DMG: AttributeReportIBs = - [1666943789.581303][50952:50952] CHIP:DMG: [ - [1666943789.581307][50952:50952] CHIP:DMG: AttributeReportIB = - [1666943789.581313][50952:50952] CHIP:DMG: { - [1666943789.581317][50952:50952] CHIP:DMG: AttributeDataIB = - [1666943789.581321][50952:50952] CHIP:DMG: { - [1666943789.581325][50952:50952] CHIP:DMG: DataVersion = 0xa88bfd64, - [1666943789.581330][50952:50952] CHIP:DMG: AttributePathIB = - [1666943789.581335][50952:50952] CHIP:DMG: { - [1666943789.581340][50952:50952] CHIP:DMG: Endpoint = 0x1, - [1666943789.581344][50952:50952] CHIP:DMG: Cluster = 0x300, - [1666943789.581350][50952:50952] CHIP:DMG: Attribute = 0x0000_4000, - [1666943789.581354][50952:50952] CHIP:DMG: } - [1666943789.581360][50952:50952] CHIP:DMG: - [1666943789.581366][50952:50952] CHIP:DMG: Data = 1000, - [1666943789.581370][50952:50952] CHIP:DMG: }, - [1666943789.581376][50952:50952] CHIP:DMG: - [1666943789.581380][50952:50952] CHIP:DMG: }, - [1666943789.581385][50952:50952] CHIP:DMG: - [1666943789.581389][50952:50952] CHIP:DMG: ], - [1666943789.581396][50952:50952] CHIP:DMG: - [1666943789.581398][50952:50952] CHIP:DMG: SuppressResponse = true, - [1666943789.581402][50952:50952] CHIP:DMG: InteractionModelRevision = 1 - [1666943789.581405][50952:50952] CHIP:DMG: } - disabled: true - - - label: "DUT sends EnhancedMoveHue command to TH" - PICS: CC.C.C41.Tx - verification: | - ./chip-tool colorcontrol enhanced-move-hue 0 100 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666943815.452312][50952:50952] CHIP:DMG: { - [1666943815.452317][50952:50952] CHIP:DMG: suppressResponse = false, - [1666943815.452321][50952:50952] CHIP:DMG: InvokeResponseIBs = - [1666943815.452329][50952:50952] CHIP:DMG: [ - [1666943815.452332][50952:50952] CHIP:DMG: InvokeResponseIB = - [1666943815.452340][50952:50952] CHIP:DMG: { - [1666943815.452345][50952:50952] CHIP:DMG: CommandStatusIB = - [1666943815.452350][50952:50952] CHIP:DMG: { - [1666943815.452355][50952:50952] CHIP:DMG: CommandPathIB = - [1666943815.452360][50952:50952] CHIP:DMG: { - [1666943815.452365][50952:50952] CHIP:DMG: EndpointId = 0x1, - [1666943815.452372][50952:50952] CHIP:DMG: ClusterId = 0x300, - [1666943815.452377][50952:50952] CHIP:DMG: CommandId = 0x41, - [1666943815.452383][50952:50952] CHIP:DMG: }, - [1666943815.452390][50952:50952] CHIP:DMG: - [1666943815.452394][50952:50952] CHIP:DMG: StatusIB = - [1666943815.452399][50952:50952] CHIP:DMG: { - [1666943815.452404][50952:50952] CHIP:DMG: status = 0x00 (SUCCESS), - [1666943815.452409][50952:50952] CHIP:DMG: }, - [1666943815.452414][50952:50952] CHIP:DMG: - [1666943815.452418][50952:50952] CHIP:DMG: }, - [1666943815.452425][50952:50952] CHIP:DMG: - [1666943815.452429][50952:50952] CHIP:DMG: }, - [1666943815.452436][50952:50952] CHIP:DMG: - [1666943815.452440][50952:50952] CHIP:DMG: ], - [1666943815.452448][50952:50952] CHIP:DMG: - [1666943815.452452][50952:50952] CHIP:DMG: InteractionModelRevision = 1 - [1666943815.452456][50952:50952] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue attribute (potentially multiple times)" - PICS: CC.C.C41.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - After 10 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947043.201089][52174:52174] CHIP:DMG: { - [1666947043.201091][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947043.201096][52174:52174] CHIP:DMG: [ - [1666947043.201098][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947043.201103][52174:52174] CHIP:DMG: { - [1666947043.201106][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947043.201109][52174:52174] CHIP:DMG: { - [1666947043.201113][52174:52174] CHIP:DMG: DataVersion = 0x257527a5, - [1666947043.201115][52174:52174] CHIP:DMG: AttributePathIB = - [1666947043.201119][52174:52174] CHIP:DMG: { - [1666947043.201124][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947043.201127][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947043.201131][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947043.201134][52174:52174] CHIP:DMG: } - [1666947043.201138][52174:52174] CHIP:DMG: - [1666947043.201141][52174:52174] CHIP:DMG: Data = 1000, - [1666947043.201144][52174:52174] CHIP:DMG: }, - [1666947043.201148][52174:52174] CHIP:DMG: - [1666947043.201151][52174:52174] CHIP:DMG: }, - [1666947043.201156][52174:52174] CHIP:DMG: - [1666947043.201158][52174:52174] CHIP:DMG: ], - [1666947043.201163][52174:52174] CHIP:DMG: - [1666947043.201166][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947043.201168][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947043.201170][52174:52174] CHIP:DMG: } - [1666947043.201172][52174:52174] CHIP:DMG: - disabled: true - - - label: "DUT sends EnhancedStepHue command to TH" - PICS: CC.C.C42.Tx - verification: | - ./chip-tool colorcontrol enhanced-step-hue 1 1000 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666947258.127499][52174:52174] CHIP:DMG: { - [1666947258.127504][52174:52174] CHIP:DMG: suppressResponse = false, - [1666947258.127511][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666947258.127520][52174:52174] CHIP:DMG: [ - [1666947258.127524][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666947258.127530][52174:52174] CHIP:DMG: { - [1666947258.127534][52174:52174] CHIP:DMG: CommandStatusIB = - [1666947258.127539][52174:52174] CHIP:DMG: { - [1666947258.127542][52174:52174] CHIP:DMG: CommandPathIB = - [1666947258.127547][52174:52174] CHIP:DMG: { - [1666947258.127552][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666947258.127556][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666947258.127564][52174:52174] CHIP:DMG: CommandId = 0x42, - [1666947258.127568][52174:52174] CHIP:DMG: }, - [1666947258.127576][52174:52174] CHIP:DMG: - [1666947258.127580][52174:52174] CHIP:DMG: StatusIB = - [1666947258.127585][52174:52174] CHIP:DMG: { - [1666947258.127589][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666947258.127592][52174:52174] CHIP:DMG: }, - [1666947258.127596][52174:52174] CHIP:DMG: - [1666947258.127599][52174:52174] CHIP:DMG: }, - [1666947258.127605][52174:52174] CHIP:DMG: - [1666947258.127609][52174:52174] CHIP:DMG: }, - [1666947258.127615][52174:52174] CHIP:DMG: - [1666947258.127618][52174:52174] CHIP:DMG: ], - [1666947258.127626][52174:52174] CHIP:DMG: - [1666947258.127630][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947258.127633][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple - times)" - PICS: CC.C.C42.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - After 20 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947270.561812][52174:52174] CHIP:DMG: { - [1666947270.561820][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947270.561840][52174:52174] CHIP:DMG: [ - [1666947270.561851][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947270.561869][52174:52174] CHIP:DMG: { - [1666947270.561881][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947270.561896][52174:52174] CHIP:DMG: { - [1666947270.561908][52174:52174] CHIP:DMG: DataVersion = 0x257542b7, - [1666947270.561922][52174:52174] CHIP:DMG: AttributePathIB = - [1666947270.561936][52174:52174] CHIP:DMG: { - [1666947270.561952][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947270.561967][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947270.561978][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947270.561991][52174:52174] CHIP:DMG: } - [1666947270.562007][52174:52174] CHIP:DMG: - [1666947270.562022][52174:52174] CHIP:DMG: Data = 2000, - [1666947270.562034][52174:52174] CHIP:DMG: }, - [1666947270.562050][52174:52174] CHIP:DMG: - [1666947270.562059][52174:52174] CHIP:DMG: }, - [1666947270.562076][52174:52174] CHIP:DMG: - [1666947270.562087][52174:52174] CHIP:DMG: ], - [1666947270.562105][52174:52174] CHIP:DMG: - [1666947270.562117][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947270.562129][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947270.562140][52174:52174] CHIP:DMG: } - disabled: true - - - label: "DUT sends EnhancedMoveToHueAndSaturation command to TH" - PICS: CC.C.C43.Tx - verification: | - ./chip-tool colorcontrol enhanced-move-to-hue-and-saturation 2500 100 200 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - [InvokeResponseMessage = - [1666947366.279459][52174:52174] CHIP:DMG: { - [1666947366.279463][52174:52174] CHIP:DMG: suppressResponse = false, - [1666947366.279466][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666947366.279473][52174:52174] CHIP:DMG: [ - [1666947366.279476][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666947366.279483][52174:52174] CHIP:DMG: { - [1666947366.279486][52174:52174] CHIP:DMG: CommandStatusIB = - [1666947366.279490][52174:52174] CHIP:DMG: { - [1666947366.279493][52174:52174] CHIP:DMG: CommandPathIB = - [1666947366.279498][52174:52174] CHIP:DMG: { - [1666947366.279503][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666947366.279508][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666947366.279513][52174:52174] CHIP:DMG: CommandId = 0x43, - [1666947366.279518][52174:52174] CHIP:DMG: }, - [1666947366.279524][52174:52174] CHIP:DMG: - [1666947366.279529][52174:52174] CHIP:DMG: StatusIB = - [1666947366.279534][52174:52174] CHIP:DMG: { - [1666947366.279539][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666947366.279543][52174:52174] CHIP:DMG: }, - [1666947366.279548][52174:52174] CHIP:DMG: - [1666947366.279552][52174:52174] CHIP:DMG: }, - [1666947366.279558][52174:52174] CHIP:DMG: - [1666947366.279562][52174:52174] CHIP:DMG: }, - [1666947366.279568][52174:52174] CHIP:DMG: - [1666947366.279571][52174:52174] CHIP:DMG: ], - [1666947366.279577][52174:52174] CHIP:DMG: - [1666947366.279581][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947366.279584][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue and CurrentSaturation attributes from TH - (potentially multiple times)" - PICS: CC.C.C43.Tx && CC.C.A4000 && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - - After 20 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947536.315693][52174:52174] CHIP:DMG: { - [1666947536.315696][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947536.315703][52174:52174] CHIP:DMG: [ - [1666947536.315707][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947536.315714][52174:52174] CHIP:DMG: { - [1666947536.315718][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947536.315722][52174:52174] CHIP:DMG: { - [1666947536.315727][52174:52174] CHIP:DMG: DataVersion = 0x257547d6, - [1666947536.315732][52174:52174] CHIP:DMG: AttributePathIB = - [1666947536.315738][52174:52174] CHIP:DMG: { - [1666947536.315742][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947536.315747][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947536.315751][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947536.315755][52174:52174] CHIP:DMG: } - [1666947536.315760][52174:52174] CHIP:DMG: - [1666947536.315766][52174:52174] CHIP:DMG: Data = 2500, - [1666947536.315770][52174:52174] CHIP:DMG: }, - [1666947536.315776][52174:52174] CHIP:DMG: - [1666947536.315779][52174:52174] CHIP:DMG: }, - [1666947536.315785][52174:52174] CHIP:DMG: - [1666947536.315789][52174:52174] CHIP:DMG: ], - [1666947536.315795][52174:52174] CHIP:DMG: - [1666947536.315798][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947536.315803][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947536.315805][52174:52174] CHIP:DMG: } - - ./chip-tool colorcontrol read current-saturation 1 1 - After 20 Seconds, Verify response contains Current-saturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947452.160090][52174:52174] CHIP:DMG: { - [1666947452.160094][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947452.160100][52174:52174] CHIP:DMG: [ - [1666947452.160105][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947452.160113][52174:52174] CHIP:DMG: { - [1666947452.160117][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947452.160122][52174:52174] CHIP:DMG: { - [1666947452.160127][52174:52174] CHIP:DMG: DataVersion = 0x257547d6, - [1666947452.160132][52174:52174] CHIP:DMG: AttributePathIB = - [1666947452.160140][52174:52174] CHIP:DMG: { - [1666947452.160145][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947452.160151][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947452.160156][52174:52174] CHIP:DMG: Attribute = 0x0000_0001, - [1666947452.160162][52174:52174] CHIP:DMG: } - [1666947452.160168][52174:52174] CHIP:DMG: - [1666947452.160174][52174:52174] CHIP:DMG: Data = 100, - [1666947452.160178][52174:52174] CHIP:DMG: }, - [1666947452.160186][52174:52174] CHIP:DMG: - [1666947452.160191][52174:52174] CHIP:DMG: }, - [1666947452.160197][52174:52174] CHIP:DMG: - [1666947452.160201][52174:52174] CHIP:DMG: ], - [1666947452.160209][52174:52174] CHIP:DMG: - [1666947452.160213][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947452.160218][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947452.160222][52174:52174] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - [InvokeResponseMessage = - [1666947649.150999][52174:52174] CHIP:DMG: { - [1666947649.151002][52174:52174] CHIP:DMG: suppressResponse = false, - [1666947649.151005][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666947649.151011][52174:52174] CHIP:DMG: [ - [1666947649.151014][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666947649.151023][52174:52174] CHIP:DMG: { - [1666947649.151027][52174:52174] CHIP:DMG: CommandStatusIB = - [1666947649.151031][52174:52174] CHIP:DMG: { - [1666947649.151035][52174:52174] CHIP:DMG: CommandPathIB = - [1666947649.151041][52174:52174] CHIP:DMG: { - [1666947649.151045][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666947649.151052][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666947649.151057][52174:52174] CHIP:DMG: CommandId = 0x47, - [1666947649.151062][52174:52174] CHIP:DMG: }, - [1666947649.151067][52174:52174] CHIP:DMG: - [1666947649.151071][52174:52174] CHIP:DMG: StatusIB = - [1666947649.151076][52174:52174] CHIP:DMG: { - [1666947649.151081][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666947649.151085][52174:52174] CHIP:DMG: }, - [1666947649.151090][52174:52174] CHIP:DMG: - [1666947649.151095][52174:52174] CHIP:DMG: }, - [1666947649.151101][52174:52174] CHIP:DMG: - [1666947649.151105][52174:52174] CHIP:DMG: }, - [1666947649.151110][52174:52174] CHIP:DMG: - [1666947649.151114][52174:52174] CHIP:DMG: ], - [1666947649.151121][52174:52174] CHIP:DMG: - [1666947649.151124][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947649.151127][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "Over TransitionTime, DUT reads EnhancedCurrentHue attribute from TH." - PICS: CC.C.C47.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - - Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947687.412287][52174:52174] CHIP:DMG: { - [1666947687.412291][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947687.412301][52174:52174] CHIP:DMG: [ - [1666947687.412305][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947687.412313][52174:52174] CHIP:DMG: { - [1666947687.412318][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947687.412324][52174:52174] CHIP:DMG: { - [1666947687.412329][52174:52174] CHIP:DMG: DataVersion = 0x257547d6, - [1666947687.412335][52174:52174] CHIP:DMG: AttributePathIB = - [1666947687.412341][52174:52174] CHIP:DMG: { - [1666947687.412347][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947687.412353][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947687.412360][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947687.412367][52174:52174] CHIP:DMG: } - [1666947687.412374][52174:52174] CHIP:DMG: - [1666947687.412380][52174:52174] CHIP:DMG: Data = 2500, - [1666947687.412386][52174:52174] CHIP:DMG: }, - [1666947687.412393][52174:52174] CHIP:DMG: - [1666947687.412398][52174:52174] CHIP:DMG: }, - [1666947687.412405][52174:52174] CHIP:DMG: - [1666947687.412409][52174:52174] CHIP:DMG: ], - [1666947687.412418][52174:52174] CHIP:DMG: - [1666947687.412423][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947687.412428][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947687.412432][52174:52174] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_5_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_5_Simulated.yaml new file mode 100644 index 00000000000000..cff10bfd0df4ec --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_7_5_Simulated.yaml @@ -0,0 +1,180 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.22. [TC-CC-7.5] Enhanced Hue functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + timeout: 500 + endpoint: 1 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToEnhancedHue command to TH" + PICS: CC.C.C40.Tx && CC.C.F01 + wait: "EnhancedMoveToHue" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C40.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C40.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "DUT sends MoveEnhanced Hue command to TH" + PICS: CC.C.C41.Tx + wait: "EnhancedMoveHue" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C41.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C41.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "DUT sends StepEnhanced command to TH" + PICS: CC.C.C42.Tx + wait: "EnhancedStepHue" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C42.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C42.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "DUT sends EnhancedMoveToHueAndSaturation command to TH" + PICS: CC.C.C43.Tx && CC.C.F01 + wait: "EnhancedMoveToHueAndSaturation" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: + "DUT reads CurrentSaturation attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A0001 && CC.C.F01 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: + "DUT reads CurrentSaturation attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A0001 && CC.C.F01 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx && CC.C.F01 + wait: "StopMoveStep" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C47.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C47.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml deleted file mode 100644 index 33e064b8c35b0a..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml +++ /dev/null @@ -1,286 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.27. [TC-CC-9.4] ColorLoopSet Validation with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Precondition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F02(CL) and CC.C.F01(EHUE) - disabled: true - - - label: "DUT sends ColorLoopSet command to TH." - PICS: CC.C.C44.Tx - verification: | - ./chip-tool colorcontrol color-loop-set 15 0 0 30 160 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666943432.354542][50787:50787] CHIP:DMG: { - [1666943432.354546][50787:50787] CHIP:DMG: suppressResponse = false, - [1666943432.354549][50787:50787] CHIP:DMG: InvokeResponseIBs = - [1666943432.354554][50787:50787] CHIP:DMG: [ - [1666943432.354558][50787:50787] CHIP:DMG: InvokeResponseIB = - [1666943432.354563][50787:50787] CHIP:DMG: { - [1666943432.354565][50787:50787] CHIP:DMG: CommandStatusIB = - [1666943432.354570][50787:50787] CHIP:DMG: { - [1666943432.354573][50787:50787] CHIP:DMG: CommandPathIB = - [1666943432.354578][50787:50787] CHIP:DMG: { - [1666943432.354582][50787:50787] CHIP:DMG: EndpointId = 0x1, - [1666943432.354586][50787:50787] CHIP:DMG: ClusterId = 0x300, - [1666943432.354590][50787:50787] CHIP:DMG: CommandId = 0x44, - [1666943432.354594][50787:50787] CHIP:DMG: }, - [1666943432.354600][50787:50787] CHIP:DMG: - [1666943432.354604][50787:50787] CHIP:DMG: StatusIB = - [1666943432.354608][50787:50787] CHIP:DMG: { - [1666943432.354612][50787:50787] CHIP:DMG: status = 0x00 (SUCCESS), - [1666943432.354616][50787:50787] CHIP:DMG: }, - [1666943432.354620][50787:50787] CHIP:DMG: - [1666943432.354623][50787:50787] CHIP:DMG: }, - [1666943432.354628][50787:50787] CHIP:DMG: - [1666943432.354632][50787:50787] CHIP:DMG: }, - [1666943432.354637][50787:50787] CHIP:DMG: - [1666943432.354639][50787:50787] CHIP:DMG: ], - [1666943432.354644][50787:50787] CHIP:DMG: - [1666943432.354647][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943432.354651][50787:50787] CHIP:DMG: }, - disabled: true - - - label: "DUT read ColorLoopActive attribute from TH." - PICS: CC.C.A4002 - verification: | - ./chip-tool colorcontrol read color-loop-active 1 1 - - Verify response contains colorLoopActive value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943470.409724][50787:50787] CHIP:DMG: { - [1666943470.409725][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943470.409730][50787:50787] CHIP:DMG: [ - [1666943470.409733][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943470.409738][50787:50787] CHIP:DMG: { - [1666943470.409742][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943470.409745][50787:50787] CHIP:DMG: { - [1666943470.409749][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943470.409752][50787:50787] CHIP:DMG: AttributePathIB = - [1666943470.409756][50787:50787] CHIP:DMG: { - [1666943470.409761][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943470.409766][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943470.409770][50787:50787] CHIP:DMG: Attribute = 0x0000_4002, - [1666943470.409773][50787:50787] CHIP:DMG: } - [1666943470.409777][50787:50787] CHIP:DMG: - [1666943470.409780][50787:50787] CHIP:DMG: Data = 0, - [1666943470.409784][50787:50787] CHIP:DMG: }, - [1666943470.409789][50787:50787] CHIP:DMG: - [1666943470.409791][50787:50787] CHIP:DMG: }, - [1666943470.409795][50787:50787] CHIP:DMG: - [1666943470.409798][50787:50787] CHIP:DMG: ], - [1666943470.409802][50787:50787] CHIP:DMG: - [1666943470.409805][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943470.409808][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943470.409811][50787:50787] CHIP:DMG: } - disabled: true - - - label: "DUT read ColorLoopDirection attribute from TH." - PICS: CC.C.A4003 - verification: | - ./chip-tool colorcontrol read color-loop-direction 1 1 - - Verify response contains ColorLoopDirection value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943502.981937][50787:50787] CHIP:DMG: { - [1666943502.981940][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943502.981945][50787:50787] CHIP:DMG: [ - [1666943502.981948][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943502.981953][50787:50787] CHIP:DMG: { - [1666943502.981956][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943502.981960][50787:50787] CHIP:DMG: { - [1666943502.981965][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943502.981968][50787:50787] CHIP:DMG: AttributePathIB = - [1666943502.981971][50787:50787] CHIP:DMG: { - [1666943502.981977][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943502.981980][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943502.981984][50787:50787] CHIP:DMG: Attribute = 0x0000_4003, - [1666943502.981987][50787:50787] CHIP:DMG: } - [1666943502.981991][50787:50787] CHIP:DMG: - [1666943502.981995][50787:50787] CHIP:DMG: Data = 0, - [1666943502.981998][50787:50787] CHIP:DMG: }, - [1666943502.982003][50787:50787] CHIP:DMG: - [1666943502.982006][50787:50787] CHIP:DMG: }, - [1666943502.982010][50787:50787] CHIP:DMG: - [1666943502.982013][50787:50787] CHIP:DMG: ], - [1666943502.982018][50787:50787] CHIP:DMG: - [1666943502.982021][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943502.982026][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943502.982028][50787:50787] CHIP:DMG: } - disabled: true - - - label: "DUT read ColorLoopTime attribute from TH." - PICS: CC.C.A4004 - verification: | - ./chip-tool colorcontrol read color-loop-time 1 1 - - Verify response contains ColorLoopTime value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943523.885364][50787:50787] CHIP:DMG: { - [1666943523.885366][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943523.885371][50787:50787] CHIP:DMG: [ - [1666943523.885374][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943523.885378][50787:50787] CHIP:DMG: { - [1666943523.885381][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943523.885384][50787:50787] CHIP:DMG: { - [1666943523.885387][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943523.885390][50787:50787] CHIP:DMG: AttributePathIB = - [1666943523.885393][50787:50787] CHIP:DMG: { - [1666943523.885397][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943523.885400][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943523.885403][50787:50787] CHIP:DMG: Attribute = 0x0000_4004, - [1666943523.885407][50787:50787] CHIP:DMG: } - [1666943523.885411][50787:50787] CHIP:DMG: - [1666943523.885415][50787:50787] CHIP:DMG: Data = 30, - [1666943523.885419][50787:50787] CHIP:DMG: }, - [1666943523.885424][50787:50787] CHIP:DMG: - [1666943523.885427][50787:50787] CHIP:DMG: }, - [1666943523.885431][50787:50787] CHIP:DMG: - [1666943523.885434][50787:50787] CHIP:DMG: ], - [1666943523.885439][50787:50787] CHIP:DMG: - [1666943523.885442][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943523.885445][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943523.885448][50787:50787] CHIP:DMG: } - disabled: true - - - label: "DUT read ColorLoopStartEnhancedHue attribute from TH." - PICS: CC.C.A4005 - verification: | - ./chip-tool colorcontrol read color-loop-start-enhanced-hue 1 1 - Verify response contains ColorLoopStartEnhancedHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943561.448178][50787:50787] CHIP:DMG: { - [1666943561.448181][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943561.448186][50787:50787] CHIP:DMG: [ - [1666943561.448189][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943561.448193][50787:50787] CHIP:DMG: { - [1666943561.448196][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943561.448199][50787:50787] CHIP:DMG: { - [1666943561.448203][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943561.448206][50787:50787] CHIP:DMG: AttributePathIB = - [1666943561.448209][50787:50787] CHIP:DMG: { - [1666943561.448213][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943561.448216][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943561.448220][50787:50787] CHIP:DMG: Attribute = 0x0000_4005, - [1666943561.448224][50787:50787] CHIP:DMG: } - [1666943561.448228][50787:50787] CHIP:DMG: - [1666943561.448232][50787:50787] CHIP:DMG: Data = 160, - [1666943561.448235][50787:50787] CHIP:DMG: }, - [1666943561.448240][50787:50787] CHIP:DMG: - [1666943561.448243][50787:50787] CHIP:DMG: }, - [1666943561.448247][50787:50787] CHIP:DMG: - [1666943561.448250][50787:50787] CHIP:DMG: ], - [1666943561.448254][50787:50787] CHIP:DMG: - [1666943561.448257][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943561.448260][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943561.448263][50787:50787] CHIP:DMG: } - disabled: true - - - label: - "Over next 30 seconds, at 5 seconds interval, DUT read - EnhancedCurrentHue attribute from TH." - PICS: CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - After 30s, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - [ReportDataMessage = - [1666943589.470649][50787:50787] CHIP:DMG: { - [1666943589.470651][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943589.470656][50787:50787] CHIP:DMG: [ - [1666943589.470659][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943589.470664][50787:50787] CHIP:DMG: { - [1666943589.470667][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943589.470670][50787:50787] CHIP:DMG: { - [1666943589.470673][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943589.470676][50787:50787] CHIP:DMG: AttributePathIB = - [1666943589.470680][50787:50787] CHIP:DMG: { - [1666943589.470684][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943589.470687][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943589.470691][50787:50787] CHIP:DMG: Attribute = 0x0000_4000, - [1666943589.470694][50787:50787] CHIP:DMG: } - [1666943589.470698][50787:50787] CHIP:DMG: - [1666943589.470703][50787:50787] CHIP:DMG: Data = 0, - [1666943589.470706][50787:50787] CHIP:DMG: }, - [1666943589.470710][50787:50787] CHIP:DMG: - [1666943589.470713][50787:50787] CHIP:DMG: }, - [1666943589.470717][50787:50787] CHIP:DMG: - [1666943589.470720][50787:50787] CHIP:DMG: ], - [1666943589.470725][50787:50787] CHIP:DMG: - [1666943589.470728][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943589.470731][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943589.470733][50787:50787] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_4_Simulated.yaml new file mode 100644 index 00000000000000..f19978ea16ff5b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_9_4_Simulated.yaml @@ -0,0 +1,147 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.2.27. [TC-CC-9.4] ColorLoopSet Validation with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + timeout: 500 + cluster: "Color Control" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends ColorLoopSet command to TH" + PICS: CC.C.C44.Tx && CC.C.F02 && CC.C.F01 + wait: "ColorLoopSet" + + - label: "DUT reads ColorLoopActive attribute from TH periodically" + PICS: CC.C.A4002 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopActive" + + - label: "DUT reads ColorLoopDirection attribute from TH periodically" + PICS: CC.C.A4003 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopDirection" + + - label: "DUT reads ColorLoopTime attribute from TH periodically" + PICS: CC.C.A4004 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopTime" + + - label: + "DUT reads ColorLoopStartEnhancedHue attribute from TH periodically" + PICS: CC.C.A4005 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopStartEnhancedHue" + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml index 1fabbbb907a625..6ec3c9f86e2892 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml @@ -41,7 +41,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: ( !CHANNEL.S.CL && !CHANNEL.S.LI ) + PICS: ( !CHANNEL.S.F00 && !CHANNEL.S.F01 ) command: "readAttribute" attribute: "FeatureMap" response: @@ -49,8 +49,9 @@ tests: constraints: type: bitmap32 - - label: "Given CHANNEL.S.CL ensure featuremap has the correct bit set" - PICS: CHANNEL.S.CL + - label: + "Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set" + PICS: CHANNEL.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -58,8 +59,8 @@ tests: type: bitmap32 hasMasksSet: [0x1] - - label: "Given CHANNEL.S.LI ensure featuremap has the correct bit set" - PICS: CHANNEL.S.LI + - label: "Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set" + PICS: CHANNEL.S.F01 command: "readAttribute" attribute: "FeatureMap" response: @@ -132,7 +133,7 @@ tests: contains: [3] - label: "Read the global attribute: GeneratedCommandList" - PICS: ( !CHANNEL.S.CL && !CHANNEL.S.LI ) + PICS: ( !CHANNEL.S.F00 && !CHANNEL.S.F01 ) command: "readAttribute" attribute: "GeneratedCommandList" response: @@ -141,7 +142,7 @@ tests: type: list - label: "Read the global attribute: GeneratedCommandList" - PICS: CHANNEL.S.CL || CHANNEL.S.LI + PICS: CHANNEL.S.F00 || CHANNEL.S.F01 command: "readAttribute" attribute: "GeneratedCommandList" response: diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml index 1a85df436ed44c..7de4f61f1ea817 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: ( !CONTENTLAUNCHER.S.CS && !CONTENTLAUNCHER.S.UP ) + PICS: ( !CONTENTLAUNCHER.S.F00 && !CONTENTLAUNCHER.S.F01 ) command: "readAttribute" attribute: "FeatureMap" response: @@ -51,8 +51,9 @@ tests: type: bitmap32 - label: - "Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set" - PICS: CONTENTLAUNCHER.S.CS + "Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct + bit set" + PICS: CONTENTLAUNCHER.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -61,8 +62,9 @@ tests: hasMasksSet: [0x1] - label: - "Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set" - PICS: CONTENTLAUNCHER.S.UP + "Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit + set" + PICS: CONTENTLAUNCHER.S.F01 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml index 419277d04f4fde..92e3853436072e 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml @@ -35,7 +35,7 @@ tests: verification: | To generate the Attestation Nonce give below command - echo hex:$(hexdump -vn32 -e'4/4 "%08X"' /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) The generated Attestation Nonce is hex:97B823C0207728BEC509CFE4D413C95AA693140D1F5D60215913ABB1F220E631 disabled: true @@ -303,7 +303,7 @@ tests: AttestationResponse Command received by TH1 from DUT" verification: | To get attestation nonce give below command - echo hex:$(hexdump -vn32 -e'4/4 "%08X"' /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) ./chip-tool operationalcredentials attestation-request hex:3577CA6EFFFC560E287604663AE5BE2F11D1B1CF99BE326AF5B3B114A2E91395 1 0 --trace_decode 1 @@ -729,7 +729,7 @@ tests: ,security level = 0 ,security_information = 0 ,version_number is an integer in range 0..65535 ,certification_type has a value between 1..2" verification: | - Verify Verify for the following contents of CD (certificate declaration) in TH (chip-tool) log: + Verify for the following contents of CD (certificate declaration) in TH (chip-tool) log: format_version = 1, vendor_id matches the basic_info_vendor_id, product_id_array matches the basic_info_product_id saved earlier, @@ -740,6 +740,8 @@ tests: version_number should be in range 0..65535, certification_type should be between 1..2 + As per Spec, certification_type value for test_app_all-clusters-app) can be 0 but in real devices the value should be between 1..2 + Verify if the VID PID info in here matches with the steps above [1655374218.453303][35023:35028] CHIP:DMG: Attestation Elements (585 bytes) = @@ -1092,7 +1094,7 @@ tests: verified with the well-known Certification Declaration public key used to originally sign the Certification Declaration" verification: | - Out of scope for V1.0, + Out of scope disabled: true - label: @@ -1127,14 +1129,14 @@ tests: secure session over which the AttestationResponse was obtained, using the subject public key found in the DAC." verification: | - Out of scope for V1.0, which requires a specific decode tool in chip-cert tool to decode the signature & construct a new message. + Out of scope, which requires a specific decode tool in chip-cert tool to decode the signature & construct a new message. disabled: true - label: "Verify that the PAA subject public key and subject match one of the official PAA certificates found in the Distributed Compliance Ledger." verification: | - For SVE-2, verify if the PAA subject key matches with the list of PAA stored in the TH. For 1.0 certification, verify the PAA subject matches one of the official PAA certificates found in DCL. To get the PAA subject public key from the test PAA stored in TH, use the command below. For 1.0 cert, Extract the subject public key in similar way and compare if it matches with the certs stored in DCL. + For certification, verify the PAA subject matches one of the official PAA certificates found in DCL. To get the PAA subject public key from the test PAA stored in TH, use the command below. For cert, Extract the subject public key in a similar way and compare if it matches with the certs stored in DCL. $openssl x509 -in credentials/development/paa-root-certs/Chip-Test-PAA-FFF1-Cert.pem -text Certificate: diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml index 8b1291cae3a823..9480811840e699 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml @@ -40,7 +40,7 @@ tests: - label: "Start the commissioning process of TH1 on DUT" verification: | - ./chip-all-clusters-app --wifi --trace_decode 1 + sudo ./chip-all-clusters-app --wifi --trace_decode 1 DUT as commissioner side: ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3840 --trace_decode 1 @@ -213,7 +213,7 @@ tests: - label: "Start the commissioning process of TH1 on DUT again" verification: | - ./chip-all-clusters-app --wifi --trace_decode 1 --discriminator 3841 + sudo ./chip-all-clusters-app --wifi --trace_decode 1 --discriminator 3841 ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml index 686ea04a00f784..3b83eaf4e81e87 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml @@ -220,24 +220,19 @@ tests: ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662456484.492166][32193:32198] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662456484.492170][32193:32198] CHIP:CTL: Received Attestation Information from the device - [1662456484.492173][32193:32198] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662456484.492179][32193:32198] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662456484.492181][32193:32198] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662456484.492183][32193:32198] CHIP:CTL: Verifying attestation - [1662456484.492990][32193:32198] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 605. Look at AttestationVerificationResult enum to understand the errors - [1662456484.493000][32193:32198] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662456484.493005][32193:32198] CHIP:CTL: Failed to perform commissioning step 8 - [1662456484.493007][32193:32198] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662456484.493011][32193:32198] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662456484.493013][32193:32198] CHIP:CTL: Expiring failsafe on proxy 0x7fd0a40236a0 - [1662456484.493022][32193:32198] CHIP:DMG: ICR moving to [AddingComm] - [1662456484.493026][32193:32198] CHIP:DMG: ICR moving to [AddedComma] - [1662456484.493070][32193:32198] CHIP:IN: Prepared secure message 0x7fd0a4031c78 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 58630i with MessageCounter:1810755. - [1662456484.493076][32193:32198] CHIP:IN: Sending encrypted msg 0x7fd0a4031c78 with MessageCounter:1810755 to 0xFFFFFFFB00000000 (0) at monotonic time: 00000000039222AD msec - [1662456484.493127][32193:32198] CHIP:DMG: >> to UDP:[fe80::b7b8:ff3e:9ace:3e12%wlp0s20f3]:5540 | 1810755 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 29920 / Exchange = 58630] - [1662456484.493132][32193:32198] CHIP:DMG: Header Flags = + [1684494307.862989][176412:176414] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684494307.862994][176412:176414] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684494307.862996][176412:176414] CHIP:CTL: Verifying attestation + [1684494307.864806][176412:176414] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 303. Look at AttestationVerificationResult enum to understand the errors + [1684494307.864822][176412:176414] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494307.864826][176412:176414] CHIP:CTL: Failed to perform commissioning step 8 + [1684494307.864829][176412:176414] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684494307.864837][176412:176414] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494307.864844][176412:176414] CHIP:CTL: Expiring failsafe on proxy 0x7f2308036bd0 + [1684494307.864860][176412:176414] CHIP:DMG: ICR moving to [AddingComm] + [1684494307.864865][176412:176414] CHIP:DMG: ICR moving to [AddedComma] + [1684494307.864945][176412:176414] CHIP:EM: <<< [E:6835i M:18286748] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + @@ -258,23 +253,18 @@ tests: If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662459474.547436][32792:32797] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662459474.547441][32792:32797] CHIP:CTL: Received Attestation Information from the device - [1662459474.547445][32792:32797] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662459474.547452][32792:32797] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662459474.547456][32792:32797] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662459474.547458][32792:32797] CHIP:CTL: Verifying attestation - [1662459474.548034][32792:32797] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 301. Look at AttestationVerificationResult enum to understand the errors - [1662459474.548043][32792:32797] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662459474.548047][32792:32797] CHIP:CTL: Failed to perform commissioning step 8 - [1662459474.548051][32792:32797] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662459474.548055][32792:32797] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662459474.548059][32792:32797] CHIP:CTL: Expiring failsafe on proxy 0x7f71200236a0 - [1662459474.548073][32792:32797] CHIP:DMG: ICR moving to [AddingComm] - [1662459474.548077][32792:32797] CHIP:DMG: ICR moving to [AddedComma] - [1662459474.548122][32792:32797] CHIP:IN: Prepared secure message 0x7f7120031f38 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 51350i with MessageCounter:196537634. - [1662459474.548128][32792:32797] CHIP:IN: Sending encrypted msg 0x7f7120031f38 with MessageCounter:196537634 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000003BFC294 msec - [1662459474.548181][32792:32797] CHIP:DMG: >> to UDP:[fe80::b7b8:ff3e:9ace:3e12%wlp0s20f3]:5540 | 196537634 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 10880 / Exchange = 51350] + [1684494415.854066][176461:176463] CHIP:CTL: Received Attestation Information from the device + [1684494415.854069][176461:176463] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' + [1684494415.854072][176461:176463] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 + [1684494415.854080][176461:176463] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684494415.854085][176461:176463] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684494415.854088][176461:176463] CHIP:CTL: Verifying attestation + [1684494415.860949][176461:176463] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 300. Look at AttestationVerificationResult enum to understand the errors + [1684494415.860970][176461:176463] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494415.860974][176461:176463] CHIP:CTL: Failed to perform commissioning step 8 + [1684494415.860978][176461:176463] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684494415.860990][176461:176463] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494415.860994][176461:176463] CHIP:CTL: Expiring failsafe on proxy 0x7f617c036bd0 disabled: true - label: @@ -336,18 +326,26 @@ tests: Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662460172.864493][32929:32934] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662460172.864502][32929:32934] CHIP:CTL: Received Attestation Information from the device - [1662460172.864510][32929:32934] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662460172.864522][32929:32934] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662460172.864526][32929:32934] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662460172.864528][32929:32934] CHIP:CTL: Verifying attestation - [1662460172.865422][32929:32934] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors - [1662460172.865435][32929:32934] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460172.865439][32929:32934] CHIP:CTL: Failed to perform commissioning step 8 - [1662460172.865442][32929:32934] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662460172.865447][32929:32934] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460172.865449][32929:32934] CHIP:CTL: Expiring failsafe on proxy 0x7fa380023460 + [1684495876.434738][176910:176912] CHIP:DMG: }, + [1684495876.434750][176910:176912] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 + [1684495876.434754][176910:176912] CHIP:CTL: Received Attestation Information from the device + [1684495876.434758][176910:176912] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' + [1684495876.434761][176910:176912] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 + [1684495876.434768][176910:176912] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684495876.434772][176910:176912] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684495876.434774][176910:176912] CHIP:CTL: Verifying attestation + [1684495876.441867][176910:176912] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 604. Look at AttestationVerificationResult enum to understand the errors + [1684495876.441878][176910:176912] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495876.441881][176910:176912] CHIP:CTL: Failed to perform commissioning step 8 + [1684495876.441885][176910:176912] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684495876.441891][176910:176912] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495876.441894][176910:176912] CHIP:CTL: Expiring failsafe on proxy 0x7f1fc0036bd0 + [1684495876.441907][176910:176912] CHIP:DMG: ICR moving to [AddingComm] + [1684495876.441912][176910:176912] CHIP:DMG: ICR moving to [AddedComma] + [1684495876.441967][176910:176912] CHIP:EM: <<< [E:25914i M:173255705] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + [1684495876.441973][176910:176912] CHIP:IN: (S) Sending msg 173255705 on secure session with LSID: 21068 + [1684495876.442029][176910:176912] CHIP:DMG: >> to UDP:[fe80::529f:9f59:cfec:7130%wlp0s20f3]:5540 | 173255705 | [Interaction Model (1) / InvokeCommandRequest + @@ -366,16 +364,23 @@ tests: Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662460606.271896][33030:33035] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662460606.271904][33030:33035] CHIP:CTL: Received Attestation Information from the device - [1662460606.271914][33030:33035] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662460606.271930][33030:33035] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662460606.271938][33030:33035] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662460606.271942][33030:33035] CHIP:CTL: Verifying attestation - [1662460606.272912][33030:33035] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors - [1662460606.272924][33030:33035] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460606.272927][33030:33035] CHIP:CTL: Failed to perform commissioning step 8 - [1662460606.272932][33030:33035] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684495930.801406][176931:176933] CHIP:CTL: Received Attestation Information from the device + [1684495930.801409][176931:176933] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' + [1684495930.801411][176931:176933] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 + [1684495930.801417][176931:176933] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684495930.801420][176931:176933] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684495930.801421][176931:176933] CHIP:CTL: Verifying attestation + [1684495930.808506][176931:176933] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 604. Look at AttestationVerificationResult enum to understand the errors + [1684495930.808521][176931:176933] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495930.808524][176931:176933] CHIP:CTL: Failed to perform commissioning step 8 + [1684495930.808526][176931:176933] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684495930.808533][176931:176933] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495930.808535][176931:176933] CHIP:CTL: Expiring failsafe on proxy 0x7fc730036bd0 + [1684495930.808548][176931:176933] CHIP:DMG: ICR moving to [AddingComm] + [1684495930.808551][176931:176933] CHIP:DMG: ICR moving to [AddedComma] + [1684495930.808609][176931:176933] CHIP:EM: <<< [E:8667i M:71525087] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + [1684495930.808614][176931:176933] CHIP:IN: (S) Sending msg 71525087 on secure session with LSID: 21274 + @@ -396,11 +401,17 @@ tests: Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662460943.774883][33107:33112] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662460943.774887][33107:33112] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662460943.774889][33107:33112] CHIP:CTL: Verifying attestation - [1662460943.775749][33107:33112] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors - [1662460943.775757][33107:33112] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460943.775760][33107:33112] CHIP:CTL: Failed to perform commissioning step 8 - [1662460943.775763][33107:33112] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup + [1684496002.435208][176959:176961] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684496002.435210][176959:176961] CHIP:CTL: Verifying attestation + [1684496002.442231][176959:176961] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 605. Look at AttestationVerificationResult enum to understand the errors + [1684496002.442244][176959:176961] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684496002.442248][176959:176961] CHIP:CTL: Failed to perform commissioning step 8 + [1684496002.442252][176959:176961] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684496002.442259][176959:176961] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684496002.442262][176959:176961] CHIP:CTL: Expiring failsafe on proxy 0x7f0354036bd0 + [1684496002.442275][176959:176961] CHIP:DMG: ICR moving to [AddingComm] + [1684496002.442279][176959:176961] CHIP:DMG: ICR moving to [AddedComma] + [1684496002.442334][176959:176961] CHIP:EM: <<< [E:26577i M:70580591] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + [1684496002.442340][176959:176961] CHIP:IN: (S) Sending msg 70580591 on secure session with LSID: 56268 + [1684496002.442397][176959:176961] CHIP:DMG: >> to UDP:[fe80::529f:9f59:cfec:7130%wlp0s20f3]:5540 | 70580591 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 4448 / Exchange = 26577] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml index 2e9e57934cbdfa..b43bc99d093692 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml @@ -30,13 +30,14 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: "Scan the DUTs QR code using the TH." verification: | 1. Run DUT. Example for DUT=all-clusters-app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 + ... [1657213978.633542][366513:366513] CHIP:DL: Device Configuration: [1657213978.633637][366513:366513] CHIP:DL: Serial Number: (not set) @@ -71,7 +72,7 @@ tests: Verify in TH (CHIP-TOOL) - ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 + ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 ... [1657214364908] [29006:16612760] CHIP: [CTL] Starting commissioning discovery over DNS-SD diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml index 249a8208dd3a00..79002c585ce2e2 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml @@ -30,7 +30,8 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). + To put the DUT into commissionable state and verify commissionable state. This step is same in couple of other cases (like DD) so use the same verification method here too i.e. if your DUT is discoverable over mDNS then use 'chiptool discover commissionables' to discover mDNS adv and provision the device using 'chip-tool pairing code node-id payload'. otherwise if your DUT is advertising over BLE , pls use the '/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1' command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT) diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml index 3d3d3bf40504da..8e2d1736cda97a 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml @@ -30,7 +30,7 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + 1 - 5.1.3 - QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: "Power on the DUT device." @@ -71,7 +71,7 @@ tests: - label: "Follow any DUT-specific steps, guided by a service provided by the - DUTs manufacturer for initial device setup, then place the DUT + DUT's manufacturer for initial device setup, then place the DUT Commissionee into commissioning mode." verification: | 1. Follow DUT vendor-specific steps to put DUT into commissioning mode diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml index 628974999e6d84..be91a20c477bac 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml @@ -27,7 +27,7 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1 - Onboarding payload is printed on the device or in additional provided materials (ex: manual) through a QR Code, a manually entered code or as content in an NFC tag. + 1 - 5.1 - Onboarding payload is printed on the device or in additional provided materials (ex: manual, companion app, web service) through a QR Code, a Manual Pairing Code or as content in an NFC tag. disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml index 70227d3b471e6f..47e0c8ac8b0683 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml @@ -27,10 +27,18 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.4.2 - Manual Pairing Code is printed on the device or in additional provided materials (ex: manual)" + Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: "Verify using instruments" verification: | - Vendor specific field testcase that should be manually verified using the requirements in the Expected Outcome. + The Manual Pairing Code shall meet the following requirements: + + - Printed using a minimum font size of 6 points, typically producing a typeface height of 2.1 mm (6/72 inches) + + - Include dashes between the groups of Manual Pairing Code digits (e.g. "MATTER 1234-5678-901") + + - If the code is presented in audio format it SHOULD be read in groups of 4 digits, with the last group being only 3 or 1 digits depending on overall size. + + - If a Matter logo cannot be printed alongside the code then the code SHOULD be prefixed with MATTER (e.g. "MATTER 1234-5678-901") disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml index 7156ab378bc336..f7db55889fe58c 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml @@ -34,7 +34,7 @@ tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). Device also has additional TLV data with a non-zero length appended to the end of the QR code. + 1 - 5.1.3 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). Device also has additional TLV data with a non-zero length appended to the end of the QR code. An example onboarding QR code could be "MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -107,10 +107,10 @@ tests: Verify in DUT(CHIP-TOOL) CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 CHIP:CTL: Received CommissioningComplete response, errorCode=0 - CHIP:CTL: Successfully finished commissioning step "SendComplete" - CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - CHIP:CTL: Performing next commissioning step "Cleanup" - CHIP:CTL: Successfully finished commissioning step "Cleanup" + CHIP:CTL: Successfully finished commissioning step 'SendComplete' + CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + CHIP:CTL: Performing next commissioning step 'Cleanup' + CHIP:CTL: Successfully finished commissioning step 'Cleanup' CHIP:TOO: Device commissioning completed with success CHIP:DMG: ICR moving to [AwaitingDe] disabled: true @@ -118,7 +118,7 @@ tests: - label: "Scan the TH Devices QR code (that includes the additional TLV data) using DUT. Using the example provided above, the payload would be - MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40." + 'MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40'." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Launch the TH commissionee app and get QR code from TH side @@ -131,7 +131,7 @@ tests: [1667807422.508591][12415:12415] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: [1667807422.508608][12415:12415] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 - 2. Build TLV Data into TH"s QR code using chip-tool"s generate-qrcode command + 2. Build TLV Data into TH's QR code using chip-tool's generate-qrcode command ./chip-tool payload generate-qrcode --existing-payload MT:-24J042C00KA0648G00 --tlvBytes hex:152C000A3132333435363738393018 [1667807462.804398][10254:10254] CHIP:TOO: QR Code: MT:-24J042C00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40 disabled: true @@ -144,10 +144,10 @@ tests: Verify in DUT(CHIP-TOOL) [1657210956708] [28601:16575811] CHIP: [CTL] Received CommissioningComplete response, errorCode=0 - [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657210956708] [28601:16575811] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657210956708] [28601:16575811] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657210956708] [28601:16575811] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657210956708] [28601:16575811] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657210956709] [28601:16575811] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -155,10 +155,10 @@ tests: "Scan the TH Devices QR code (that includes the additional large TLV data) using DUT. For an example using 1000 bytes of data, the payload would be - MT:-24J0AFN00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T11UXS0. + 'MT:-24J0AFN00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T11UXS0'. Where the TLV payload was 0x15 0x2d 0x82 0xe8 0x03 <1000 bytes of - data> 0x18 (using tag type 0x2d=UTF-8 string, 2-octet length, vendor - tag 0x82, length 0x03e8)" + data> 0x18 (using tag type 0x2d=''UTF-8 string, 2-octet length'', + vendor tag 0x82, length 0x03e8)" PICS: MCORE.DD.SCAN_QR_CODE verification: | No applicable TH logs. @@ -173,7 +173,7 @@ tests: [1667807539.277261][12433:12433] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 - 2. Build TLV Data into TH's QR code using chip-tool"s generate-qrcode command. To generate the QR code containing the 1000-byte TLV data, use the following command and piece together the 2 log lines of output. + 2. Build TLV Data into TH's QR code using chip-tool's generate-qrcode command. To generate the QR code containing the 1000-byte TLV data, use the following command and piece together the 2 log lines of output. NOTE: The finished QR code is in the verification step already. ./chip-tool payload generate-qrcode --existing-payload MT:-24J042C00KA0648G00 --tlvBytes hex:152d82e8033132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393018 diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml index 9a59369735cd10..066402b7167fa6 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml @@ -34,7 +34,7 @@ tests: - label: "Preconditions" verification: | - Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: @@ -67,7 +67,7 @@ tests: 2. Parse 11-digit Manual Pairing code - ./chip-tool payload parse-setup-payload 34970112332 + ./chip-tool payload parse-setup-payload 34970112332 Verify in DUT(CHIP-TOOL) [1667811737.160767][10335:10335] CHIP:SPL: Parsing decimalRepresentation: 34970112332 @@ -81,7 +81,7 @@ tests: 3. Parse 21-digit Manual Pairing code - ./chip-tool payload parse-setup-payload 749701123365521327694 + ./chip-tool payload parse-setup-payload 749701123365521327694 Verify in DUT as commissoiner side: CHIP:SPL: Parsing decimalRepresentation: 749701123365521327694 @@ -99,10 +99,10 @@ tests: Verify in DUT(CHIP-TOOL) [1653556303.582797][4071:4076] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 [1653556303.582850][4071:4076] CHIP:CTL: Received CommissioningComplete response, errorCode=0 - [1653556303.582891][4071:4076] CHIP:CTL: Successfully finished commissioning step "SendComplete" - [1653556303.582927][4071:4076] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - [1653556303.582964][4071:4076] CHIP:CTL: Performing next commissioning step "Cleanup" - [1653556303.583040][4071:4076] CHIP:CTL: Successfully finished commissioning step "Cleanup" + [1653556303.582891][4071:4076] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1653556303.582927][4071:4076] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1653556303.582964][4071:4076] CHIP:CTL: Performing next commissioning step 'Cleanup' + [1653556303.583040][4071:4076] CHIP:CTL: Successfully finished commissioning step 'Cleanup' [1653556303.583110][4071:4076] CHIP:TOO: Device commissioning completed with success [1653556303.583209][4071:4076] CHIP:DMG: ICR moving to [AwaitingDe] [1653556303.583255][4071:4076] CHIP:EM: Sending Standalone Ack for MessageCounter:9735725 on exchange 24476i diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml index 308445ff364a84..3edd959864b175 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml @@ -37,7 +37,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -105,10 +105,10 @@ tests: ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 [1657232374820] [31379:16804218] CHIP: [CTL] Received CommissioningComplete response, errorCode=0 - [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657232374820] [31379:16804218] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657232374820] [31379:16804218] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657232374820] [31379:16804218] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657232374820] [31379:16804218] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657232374820] [31379:16804218] CHIP: [TOO] Device commissioning completed with success Verifiy on TH(ALL-CLUSTER-APP): @@ -160,10 +160,10 @@ tests: ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651105530854] [95067:65607294] CHIP: [CTL] Received CommissioningComplete response - [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651105530854] [95067:65607294] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651105530854] [95067:65607294] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651105530854] [95067:65607294] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651105530854] [95067:65607294] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651105530854] [95067:65607294] CHIP: [TOO] Device commissioning completed with success Verifiy on TH(ALL-CLUSTER-APP): diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml index f61869fdc2b1fd..3cee8442b562c6 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml @@ -37,7 +37,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - 5.1.3 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -108,10 +108,10 @@ tests: Verify on the DUT (CHIP-TOOL): ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 - [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657234147237] [31454:16822562] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -162,10 +162,10 @@ tests: Verify on the DUT (CHIP-TOOL): ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 - [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657234324847] [31475:16824564] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml index e9e517757f305b..292d6f8650dc97 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml @@ -37,7 +37,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -116,7 +116,7 @@ tests: Verify on the DUT (Chip-tool): ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 - [1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657235087918] [31502:16832693] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -177,7 +177,7 @@ tests: Verify on the DUT (Chip-tool): ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 - [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657235198856] [31506:16834043] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml index 9b85eaf3df8809..9f3933b56e83f3 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml @@ -36,7 +36,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - 5.1.3 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -84,7 +84,7 @@ tests: but substituting out the current Version String with an invalid Version String (i.e. '010' or any non-zero 3-bit value)" verification: | - 1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code + 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code Verify on the TH (All-cluster-app) ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --version 2 [1657235626568] [31698:16839018] CHIP: [TOO] QR Code: MT:034J029Q00KA0648G00 @@ -108,7 +108,7 @@ tests: discovery capability)" PICS: MCORE.DD.DISCOVERY_BLE verification: | - 1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code + 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code Verify on the TH (All-cluster-app) ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --rendezvous 4 [1657235754393] [31702:16840391] CHIP: [TOO] QR Code: MT:-24J029Q00KA0648G00 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml index 75cade09e4c756..77e900f73e04e1 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml @@ -37,7 +37,7 @@ tests: Preconditions 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.4.2 - Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual). + 2 - 5.1.4.2 - Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding payload could be "34970112332" (11-digit) or could be "749701123365521327694" (21-digit) (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include: @@ -95,10 +95,10 @@ tests: ./chip-tool pairing code 1 34970112332 [1651109112823] [95528:65650355] CHIP: [CTL] Received CommissioningComplete response - [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651109112823] [95528:65650355] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651109112823] [95528:65650355] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651109112823] [95528:65650355] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651109112823] [95528:65650355] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651109112823] [95528:65650355] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -150,9 +150,9 @@ tests: ./chip-tool pairing code 1 749701123365521327694 [1651109219028] [95536:65652322] CHIP: [CTL] Received CommissioningComplete response - [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651109219028] [95536:65652322] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651109219028] [95536:65652322] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651109219028] [95536:65652322] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651109219028] [95536:65652322] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651109219028] [95536:65652322] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml index 713836a53bda4b..00dccf424bfd47 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml @@ -35,7 +35,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.4.2 - 11-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual). + 2 - 5.1.4.2 - 11-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding payload could be "34970112332" (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include: @@ -82,7 +82,7 @@ tests: code but substituting out the current VERSION with an invalid VERSION: 2" verification: | - 1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): ./chip-tool payload verhoeff-generate 8497011233 @@ -108,7 +108,7 @@ tests: manual code but substituting out the current VID_PID_PRESENT with an invalid VID_PID_PRESENT set to 1" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): ./chip-tool payload generate-manualcode --discriminator 0xF00 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 2 --force-short-code 1 @@ -137,7 +137,7 @@ tests: discriminator value and adheres to rules of section 5.1.1.5. 'Discriminator value')" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): ./chip-tool payload generate-manualcode --existing-payload 34970112332 --discriminator 0xE00 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml index 696268becb4de1..c00f141b770537 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml @@ -37,7 +37,7 @@ tests: Preconditions 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.4.2 - 21-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual). + 2 - 5.1.4.2 - 21-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding payload could be "749701123365521327694" (21-digit) (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include: @@ -89,7 +89,7 @@ tests: code but substituting out the current VERSION with an invalid VERSION: 2" verification: | - 1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code No applicable TH or DUT logs. ./chip-tool payload verhoeff-generate 84970112336552132769 @@ -115,7 +115,7 @@ tests: manual code but substituting out the current VID_PID_PRESENT with an invalid VID_PID_PRESENT set to 0" verification: | - 1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): ./chip-tool payload verhoeff-generate 34970112336552132769 @@ -147,7 +147,7 @@ tests: discriminator value and adheres to rules of section 5.1.1.5. 'Discriminator value')" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --discriminator 3584 @@ -180,7 +180,7 @@ tests: 1. Use this as an example of how to generate a manual code with an invalid passcode. In this example the invalid passcode=00000000 Verify in DUT (Chip-tool): - Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --setup-pin-code 00000000 [1657239062245] [32164:16876812] CHIP: [TOO] Manual Code: 749152000065521327698 @@ -286,13 +286,13 @@ tests: (0xFFF4) ./chip-tool pairing code 1 749701123365524327693 - [1667893519.289945][2201:2203] CHIP:CTL: Successfully finished commissioning step "SendComplete" - [1667893519.290002][2201:2203] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - [1667893519.290101][2201:2203] CHIP:CTL: Performing next commissioning step "Cleanup" + [1667893519.289945][2201:2203] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1667893519.290002][2201:2203] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1667893519.290101][2201:2203] CHIP:CTL: Performing next commissioning step 'Cleanup' [1667893519.290169][2201:2203] CHIP:IN: SecureSession[0xffff8000aa10]: MarkForEviction Type:1 LSID:45403 - [1667893519.290227][2201:2203] CHIP:SC: SecureSession[0xffff8000aa10]: Moving from state "kActive" --> "kPendingEviction" + [1667893519.290227][2201:2203] CHIP:SC: SecureSession[0xffff8000aa10]: Moving from state 'kActive' --> 'kPendingEviction' [1667893519.290365][2201:2203] CHIP:IN: SecureSession[0xffff8000aa10]: Released - Type:1 LSID:45403 - [1667893519.290450][2201:2203] CHIP:CTL: Successfully finished commissioning step "Cleanup" + [1667893519.290450][2201:2203] CHIP:CTL: Successfully finished commissioning step 'Cleanup' [1667893519.290540][2201:2203] CHIP:TOO: Device commissioning completed with success [1667893519.290691][2201:2203] CHIP:DMG: ICR moving to [AwaitingDe] [1667893519.290894][2201:2203] CHIP:EM: <<< [E:27144i M:100805848 (Ack:153455649)] (S) Msg TX to 1:0000000000000001 [3FBC] --- Type 0000:10 (SecureChannel:StandaloneAck) @@ -303,7 +303,7 @@ tests: [1667893519.292017][2201:2201] CHIP:CTL: Shutting down the controller [1667893519.292084][2201:2201] CHIP:IN: Expiring all sessions for fabric 0x1!! [1667893519.292143][2201:2201] CHIP:IN: SecureSession[0xffff80010440]: MarkForEviction Type:2 LSID:45404 - [1667893519.292199][2201:2201] CHIP:SC: SecureSession[0xffff80010440]: Moving from state "kActive" --> "kPendingEviction" + [1667893519.292199][2201:2201] CHIP:SC: SecureSession[0xffff80010440]: Moving from state 'kActive' --> 'kPendingEviction' [1667893519.292254][2201:2201] CHIP:IN: SecureSession[0xffff80010440]: Released - Type:2 LSID:45404 [1667893519.292315][2201:2201] CHIP:FP: Forgetting fabric 0x1 [1667893519.292390][2201:2201] CHIP:TS: Pending Last Known Good Ti @@ -315,7 +315,7 @@ tests: PRODUCT_ID of 0x0000(i.e. While following section 2.5.3. 'Product Identifier')" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --product-id 0x0000 @@ -339,7 +339,7 @@ tests: CHECK_DIGIT while following Table 39. Encoding Method with Vendor and Product IDs included (VID_PID_Present == 1))" verification: | - 1. Use chip-tool"s "payload verhoeff-verify" command to help verify that the check-digit is invalid + 1. Use chip-tool's "payload verhoeff-verify" command to help verify that the check-digit is invalid Verify in DUT (Chip-tool): ./chip-tool payload verhoeff-verify 749701123365521327693 20 diff --git a/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml index e2105566cf1c2c..d21203edc47941 100644 --- a/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 84.1.1. [TC-DESC-1.1] Global Attributes [DUT-Server] +name: 84.1.1. [TC-DESC-1.1] Global Attributes with DUT as Server PICS: - DESC.S diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml index 8606d71c36013e..d5b36838f78512 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 47.1.1. [TC-DGETH-1.1] Global Attributes [DUT as Server] +name: 47.1.1. [TC-DGETH-1.1] Global Attributes with DUT as Server PICS: - DGETH.S @@ -212,6 +212,34 @@ tests: - name: "expectedValue" value: "y" + - label: + "TH reads EventList attribute from DUT. 1.The list MAY contain values + in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - + 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), + these values SHALL be ignored. 2.The list SHALL NOT contain any values + in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), + (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where + XXXX is the allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool ethernetnetworkdiagnostics read event-list 1 0 + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: + + [1676459303.132712][25176:25178] CHIP:DMG: } + [1676459303.132751][25176:25178] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFA DataVersion: 2330608789 + [1676459303.132772][25176:25178] CHIP:TOO: EventList: 0 entries + [1676459303.132795][25176:25178] CHIP:EM: <<< [E:41866i S:29076 M:220910528 (Ack:11574043)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676459303.132799][25176:25178] CHIP:IN: (S) Sending msg 220910528 on secure session with LSID: 29076 + [1676459303.132809][25176:25178] CHIP:EM: Flushed pending ack for MessageCounter:11574043 on exchange 41866i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && DGETH.S.Afffa + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "TH reads AcceptedCommandList from DUT" PICS: ( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9 command: "readAttribute" @@ -282,31 +310,3 @@ tests: value: "Please enter 'y' for success" - name: "expectedValue" value: "y" - - - label: - "TH reads EventList attribute from DUT. 1.The list MAY contain values - in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), - these values SHALL be ignored. 2.The list SHALL NOT contain any values - in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), - (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where - XXXX is the allowed MEI range (0x0001 - 0xFFF1)" - verification: | - ./chip-tool ethernetnetworkdiagnostics read event-list 1 0 - Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: - - [1676459303.132712][25176:25178] CHIP:DMG: } - [1676459303.132751][25176:25178] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFA DataVersion: 2330608789 - [1676459303.132772][25176:25178] CHIP:TOO: EventList: 0 entries - [1676459303.132795][25176:25178] CHIP:EM: <<< [E:41866i S:29076 M:220910528 (Ack:11574043)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1676459303.132799][25176:25178] CHIP:IN: (S) Sending msg 220910528 on secure session with LSID: 29076 - [1676459303.132809][25176:25178] CHIP:EM: Flushed pending ack for MessageCounter:11574043 on exchange 41866i - cluster: "LogCommands" - command: "UserPrompt" - PICS: PICS_USER_PROMPT && DGETH.S.Afffa - arguments: - values: - - name: "message" - value: "Please enter 'y' for success" - - name: "expectedValue" - value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml index d42ee1fcf64a92..51c0a686d8c781 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 45.2.1. [TC-DGETH-2.1] Attributes with server as DUT +name: 47.2.1. [TC-DGETH-2.1] Attributes [DUT as Server] PICS: - DGETH.S diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml index 78c53eb9436548..6507dc3af97304 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 45.2.2. [TC-DGETH-2.2] Command received functionality with server as DUT +name: 47.2.2. [TC-DGETH-2.2] Command Received [DUT as Server] PICS: - DGETH.S diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml deleted file mode 100644 index fa4014112b76cb..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.3.2. [TC-DGETH-3.2] Command Generated {DUT_Client}] - -PICS: - - DGETH.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts to TH." - PICS: DGETH.C.C00.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool ethernetnetworkdiagnostics reset-counts 1 0 - - Verify Command data recieved from running the below command is a success on TH(all-clusters-app) Log - - [1659960382.148753][4826:4826] CHIP:DMG: InvokeRequestMessage = - [1659960382.148777][4826:4826] CHIP:DMG: { - [1659960382.148798][4826:4826] CHIP:DMG: suppressResponse = false, - [1659960382.148822][4826:4826] CHIP:DMG: timedRequest = false, - [1659960382.148856][4826:4826] CHIP:DMG: InvokeRequests = - [1659960382.148889][4826:4826] CHIP:DMG: [ - [1659960382.148921][4826:4826] CHIP:DMG: CommandDataIB = - [1659960382.148948][4826:4826] CHIP:DMG: { - [1659960382.148981][4826:4826] CHIP:DMG: CommandPathIB = - [1659960382.149013][4826:4826] CHIP:DMG: { - [1659960382.149051][4826:4826] CHIP:DMG: EndpointId = 0x0, - [1659960382.149081][4826:4826] CHIP:DMG: ClusterId = 0x37, - [1659960382.149119][4826:4826] CHIP:DMG: CommandId = 0x0, - [1659960382.149149][4826:4826] CHIP:DMG: }, - [1659960382.149178][4826:4826] CHIP:DMG: - [1659960382.149212][4826:4826] CHIP:DMG: CommandFields = - [1659960382.149239][4826:4826] CHIP:DMG: { - [1659960382.149276][4826:4826] CHIP:DMG: }, - [1659960382.149302][4826:4826] CHIP:DMG: }, - [1659960382.149337][4826:4826] CHIP:DMG: - [1659960382.149358][4826:4826] CHIP:DMG: ], - [1659960382.149392][4826:4826] CHIP:DMG: - [1659960382.149413][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960382.149433][4826:4826] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml new file mode 100644 index 00000000000000..ed99dc255d3ae9 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 47.3.2. [TC-DGETH-3.2] Command Generated DUT as Client] + +PICS: + - DGETH.C + +config: + nodeId: 0x12344321 + cluster: "Ethernet Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts to TH" + PICS: DGETH.C.C00.Tx + wait: "ResetCounts" diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml index 91b1c2a49c74ba..f60c8eaaa1e7b5 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 85.1.1. [TC-DGGEN-1.1] Global attributes with server as DUT +name: 88.1.1. [TC-DGGEN-1.1] Global Attributes with DUT as Server PICS: - DGGEN.S diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml index 76bf4f7fb6c605..c4ae78848fd361 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 85.2.1. [TC-DGGEN-2.1] Attributes with server as DUT +name: 88.2.1. [TC-DGGEN-2.1] Attributes [DUT as Server] PICS: - DGGEN.S diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml index cbca8ba3a409c3..5873be3dd4670c 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.2.2. [TC-DGGEN-2.2] Event functionality test with server as DUT +name: 88.2.2. [TC-DGGEN-2.2] Event Functionality [DUT as Server] PICS: - DGGEN.S @@ -50,9 +50,10 @@ tests: more time.)" PICS: DGGEN.S.E00 verification: | - Optional attribute so its not compulsory to get the expected outcome + Optional Event so its not compulsory to get the expected outcome On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT + echo '{"Name":"HardwareFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event hardware-fault-change 1 0 @@ -61,14 +62,22 @@ tests: detected by the Node. The current and previous field SHALL represent the set of faults as per Section 11.11.6.1, “HardwareFault enum”, On TH(chip-tool) - [1659530031.316459][4951:4956] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0000 - [1659530031.316486][4951:4956] CHIP:TOO: Event number: 6 - [1659530031.316505][4951:4956] CHIP:TOO: Priority: Critical - [1659530031.316524][4951:4956] CHIP:TOO: Timestamp: 32093879 - [1659530031.316629][4951:4956] CHIP:TOO: HardwareFaultChange: { - [1659530031.316697][4951:4956] CHIP:TOO: Current: 0 entries - [1659530031.316752][4951:4956] CHIP:TOO: Previous: 0 entries - [1659530031.316778][4951:4956] CHIP:TOO: } + [1684144494.712474][50333:50335] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0000 + [1684144494.712481][50333:50335] CHIP:TOO: Event number: 4 + [1684144494.712487][50333:50335] CHIP:TOO: Priority: Critical + [1684144494.712491][50333:50335] CHIP:TOO: Timestamp: 1684144478245 + [1684144494.712532][50333:50335] CHIP:TOO: HardwareFaultChange: { + [1684144494.712549][50333:50335] CHIP:TOO: Current: 4 entries + [1684144494.712578][50333:50335] CHIP:TOO: [1]: 1 + [1684144494.712588][50333:50335] CHIP:TOO: [2]: 2 + [1684144494.712595][50333:50335] CHIP:TOO: [3]: 5 + [1684144494.712602][50333:50335] CHIP:TOO: [4]: 8 + [1684144494.712610][50333:50335] CHIP:TOO: Previous: 2 entries + [1684144494.712617][50333:50335] CHIP:TOO: [1]: 1 + [1684144494.712623][50333:50335] CHIP:TOO: [2]: 5 + [1684144494.712630][50333:50335] CHIP:TOO: } + [1684144494.712706][50333:50335] CHIP:EM: <<< [E:38263i S:20357 M:150922929 (Ack:189840504)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144494.712720][50333:50335] CHIP:IN: (S) Sending msg 150922929 on secure session with LSID: 20357 disabled: true - label: @@ -79,24 +88,32 @@ tests: previous TH fabric." PICS: DGGEN.S.E01 verification: | - Optional attribute so its not compulsory to get the expected outcome - + Optional Event so its not compulsory to get the expected outcome On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT - echo '{"Name":"RadioFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) + + echo '{"Name":"RadioFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event radio-fault-change 1 0 Verify that RadioFaultChange Event SHALL indicate a change in the set of radio faults currently detected by the Node.TH receives RadioFaultChange event with current and previous data specified by RadioFault ENUM table 11.11.6.2 according to two repeated failures On TH(chip-tool) - [1659530181.319598][4969:4975] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0001 - [1659530181.319628][4969:4975] CHIP:TOO: Event number: 7 - [1659530181.319652][4969:4975] CHIP:TOO: Priority: Critical - [1659530181.319675][4969:4975] CHIP:TOO: Timestamp: 32245892 - [1659530181.319768][4969:4975] CHIP:TOO: RadioFaultChange: { - [1659530181.319814][4969:4975] CHIP:TOO: Current: 0 entries - [1659530181.319848][4969:4975] CHIP:TOO: Previous: 0 entries - [1659530181.319878][4969:4975] CHIP:TOO: } + [1684144521.151145][50343:50345] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0001 + [1684144521.151152][50343:50345] CHIP:TOO: Event number: 5 + [1684144521.151160][50343:50345] CHIP:TOO: Priority: Critical + [1684144521.151167][50343:50345] CHIP:TOO: Timestamp: 1684144512621 + [1684144521.151208][50343:50345] CHIP:TOO: RadioFaultChange: { + [1684144521.151223][50343:50345] CHIP:TOO: Current: 4 entries + [1684144521.151236][50343:50345] CHIP:TOO: [1]: 1 + [1684144521.151248][50343:50345] CHIP:TOO: [2]: 2 + [1684144521.151260][50343:50345] CHIP:TOO: [3]: 3 + [1684144521.151270][50343:50345] CHIP:TOO: [4]: 4 + [1684144521.151283][50343:50345] CHIP:TOO: Previous: 2 entries + [1684144521.151293][50343:50345] CHIP:TOO: [1]: 1 + [1684144521.151303][50343:50345] CHIP:TOO: [2]: 3 + [1684144521.151313][50343:50345] CHIP:TOO: } + [1684144521.151392][50343:50345] CHIP:EM: <<< [E:9727i S:1308 M:147284449 (Ack:216976802)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144521.151406][50343:50345] CHIP:IN: (S) Sending msg 147284449 on secure session with LSID: 1308 disabled: true - label: @@ -107,22 +124,33 @@ tests: rejoining DUT back to previous TH fabric.)" PICS: DGGEN.S.E02 verification: | + Optional Event so its not compulsory to get the expected outcome + On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT - echo '{"Name":"NetworkFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) + + echo '{"Name":"NetworkFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event network-fault-change 1 0 Verify that NetworkFaultChange Event SHALL indicate a change in the set of network faults currently TH receives NetworkFaultChange event with current and previous data specified by NetworkFault ENUM table 11.11.2.3 according to two failure causes, On TH(chip-tool) - [1659530237.352498][4985:4990] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0002 - [1659530237.352541][4985:4990] CHIP:TOO: Event number: 8 - [1659530237.352573][4985:4990] CHIP:TOO: Priority: Critical - [1659530237.352604][4985:4990] CHIP:TOO: Timestamp: 32301872 - [1659530237.352728][4985:4990] CHIP:TOO: NetworkFaultChange: { - [1659530237.352786][4985:4990] CHIP:TOO: Current: 0 entries - [1659530237.352831][4985:4990] CHIP:TOO: Previous: 0 entries - [1659530237.352874][4985:4990] CHIP:TOO: } + [1684144729.918248][50378:50380] CHIP:DMG: } + [1684144729.918277][50378:50380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0002 + [1684144729.918279][50378:50380] CHIP:TOO: Event number: 6 + [1684144729.918281][50378:50380] CHIP:TOO: Priority: Critical + [1684144729.918282][50378:50380] CHIP:TOO: Timestamp: 1684144547365 + [1684144729.918299][50378:50380] CHIP:TOO: NetworkFaultChange: { + [1684144729.918306][50378:50380] CHIP:TOO: Current: 3 entries + [1684144729.918310][50378:50380] CHIP:TOO: [1]: 1 + [1684144729.918312][50378:50380] CHIP:TOO: [2]: 2 + [1684144729.918314][50378:50380] CHIP:TOO: [3]: 3 + [1684144729.918317][50378:50380] CHIP:TOO: Previous: 2 entries + [1684144729.918319][50378:50380] CHIP:TOO: [1]: 1 + [1684144729.918321][50378:50380] CHIP:TOO: [2]: 2 + [1684144729.918323][50378:50380] CHIP:TOO: } + [1684144729.918348][50378:50380] CHIP:EM: <<< [E:3897i S:30865 M:110094271 (Ack:224914158)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144729.918352][50378:50380] CHIP:IN: (S) Sending msg 110094271 on secure session with LSID: 30865 disabled: true - label: @@ -130,8 +158,6 @@ tests: TH fabric." PICS: DGGEN.S.E03 verification: | - Optional attribute so its not compulsory to get the expected outcome - On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT echo '{"Name":""}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) @@ -139,11 +165,13 @@ tests: Read the event data of BootReason specified by Table 103 BootReason ENUM table On TH(chip-tool) - [1659530352.583608][4993:4998] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0003 - [1659530352.583636][4993:4998] CHIP:TOO: Event number: 0 - [1659530352.583656][4993:4998] CHIP:TOO: Priority: Critical - [1659530352.583675][4993:4998] CHIP:TOO: Timestamp: 29669541 - [1659530352.583750][4993:4998] CHIP:TOO: BootReason: { - [1659530352.583789][4993:4998] CHIP:TOO: BootReason: 0 - [1659530352.583813][4993:4998] CHIP:TOO: } + [1684144762.620015][50386:50388] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0003 + [1684144762.620021][50386:50388] CHIP:TOO: Event number: 0 + [1684144762.620026][50386:50388] CHIP:TOO: Priority: Critical + [1684144762.620032][50386:50388] CHIP:TOO: Timestamp: 1684144422477 + [1684144762.620066][50386:50388] CHIP:TOO: BootReason: { + [1684144762.620084][50386:50388] CHIP:TOO: BootReason: 0 + [1684144762.620090][50386:50388] CHIP:TOO: } + [1684144762.620152][50386:50388] CHIP:EM: <<< [E:4771i S:40131 M:192514327 (Ack:118464853)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144762.620165][50386:50388] CHIP:IN: (S) Sending msg 192514327 on secure session with LSID: 40131 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml index 9601aa00adb4d0..4d815ff45e5ac9 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.2.3. [TC-DGGEN-2.3] Command Received [DUT Server] +name: 88.2.3. [TC-DGGEN-2.3] Command Received [DUT as Server] PICS: - DGGEN.S diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml index c42de650a5f2b6..b58804cbad13b0 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.3.1. [TC-DGGEN-3.1] Attributes observed at client side as DUT +name: 88.3.1. [TC-DGGEN-3.1] Attributes [DUT as Client] PICS: - DGGEN.C @@ -76,6 +76,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read reboot-count 1 0 + verify that RebootCount attribute data type must be UINT16 and the count should match with the number of rebooted times on TH(all-clusters-app). Received Read request @@ -144,6 +145,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read total-operational-hours 1 0 + verify that TotalOperationalHours attribute data type must be UINT32 and the value indicates the number of hours the node has been operational since DUT (node) has been rebooted on TH(all-clusters-app). ReadRequestMessage = @@ -213,6 +215,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read active-hardware-faults 1 0 + verify that ActiveHardwareFaults attribute the attribute response should be empty. But when a hardware fault occurs, the return attribute value must match the value listed in the HardwareFault ENUM table 11.11.6.1 on TH(all-clusters-app). [1659773303.234177][17263:17263] CHIP:DMG: @@ -255,6 +258,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read active-radio-faults 1 0 + verify that the attribute response should be empty. But when a radio fault occurs, the return attribute value must match the value listed in the RadioFault ENUM table. 11.11.6.2 on TH(all-clusters-app). [1659971190.358722][3458:3458] CHIP:IM: Received Read request @@ -290,6 +294,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read active-network-faults 1 0 + verify that ActiveNetworkFaults attribute value attribute response should be empty. But when a network fault occurs, the return attribute value must match the value listed in the NetworkFault ENUM on TH(all-clusters-app) ReadRequestMessage = @@ -325,6 +330,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read test-event-triggers-enabled 1 0 + verify that TestEventTriggersEnabled attribute value should be data type bool on TH(all-clusters-app) ReadRequestMessage = diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml index 6f18c56d3df09b..71e40d75a04a1c 100644 --- a/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 44.1.1. [TC-DGSW-1.1] Global Attributes [DUT_Sever] +name: 44.1.1. [TC-DGSW-1.1] Global Attributes with DUT as Server PICS: - DGSW.S diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml deleted file mode 100644 index 496b7a6229d0c9..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.3.2. [TC-DGSW-3.2] Commands Generated [{DUT_Client}] - -PICS: - - DGSW.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetWatermarks to TH." - PICS: DGSW.C.C00.Tx - verification: | - ./chip-tool softwarediagnostics reset-watermarks 1 0 - - Verify the success response on TH(all-clusters-app) Log: - - [1666950895.120765][5367:5367] CHIP:EM: Handling via exchange: 21122r, Delegate: 0xaaaac4ce0288 - [1666950895.120930][5367:5367] CHIP:DMG: InvokeRequestMessage = - [1666950895.121022][5367:5367] CHIP:DMG: { - [1666950895.121081][5367:5367] CHIP:DMG: suppressResponse = false, - [1666950895.121148][5367:5367] CHIP:DMG: timedRequest = false, - [1666950895.121232][5367:5367] CHIP:DMG: InvokeRequests = - [1666950895.121311][5367:5367] CHIP:DMG: [ - [1666950895.121394][5367:5367] CHIP:DMG: CommandDataIB = - [1666950895.121481][5367:5367] CHIP:DMG: { - [1666950895.121584][5367:5367] CHIP:DMG: CommandPathIB = - [1666950895.121675][5367:5367] CHIP:DMG: { - [1666950895.121777][5367:5367] CHIP:DMG: EndpointId = 0x0, - [1666950895.121870][5367:5367] CHIP:DMG: ClusterId = 0x34, - [1666950895.121985][5367:5367] CHIP:DMG: CommandId = 0x0, - [1666950895.122066][5367:5367] CHIP:DMG: }, - [1666950895.122174][5367:5367] CHIP:DMG: - [1666950895.122247][5367:5367] CHIP:DMG: CommandFields = - [1666950895.122356][5367:5367] CHIP:DMG: { - [1666950895.122443][5367:5367] CHIP:DMG: }, - [1666950895.122550][5367:5367] CHIP:DMG: }, - [1666950895.122631][5367:5367] CHIP:DMG: - [1666950895.122744][5367:5367] CHIP:DMG: ], - [1666950895.122824][5367:5367] CHIP:DMG: - [1666950895.122913][5367:5367] CHIP:DMG: InteractionModelRevision = 1 - [1666950895.122978][5367:5367] CHIP:DMG: }, - [1666950895.123150][5367:5367] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0034 e=0 p=o - [1666950895.123234][5367:5367] CHIP:DMG: AccessControl: allowed - [1666950895.123326][5367:5367] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0034 Command=0x0000_0000 - [1666950895.123421][5367:5367] CHIP:DMG: Command handler moving to [ Preparing] - [1666950895.123520][5367:5367] CHIP:DMG: Command handler moving to [AddingComm] - [1666950895.123586][5367:5367] CHIP:DMG: Command handler moving to [AddedComma] - [1666950895.123697][5367:5367] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1666950895.124253][5367:5367] CHIP:EM: <<< [E:21122r M:53749270 (Ack:215040220)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:09 (IM:InvokeCommandResponse) - [1666950895.124353][5367:5367] CHIP:IN: (S) Sending msg 53749270 on secure session with LSID: 41627 - [1666950895.125043][5367:5367] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:43984 | 53749270 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 7655 / Exchange = 21122] - [1666950895.125300][5367:5367] CHIP:DMG: Header Flags = - [1666950895.125360][5367:5367] CHIP:DMG: { - [1666950895.125474][5367:5367] CHIP:DMG: Exchange (0x06) = - [1666950895.125533][5367:5367] CHIP:DMG: { - [1666950895.125592][5367:5367] CHIP:DMG: AckMsg = 215040220 - [1666950895.125670][5367:5367] CHIP:DMG: NeedsAck = true - [1666950895.125728][5367:5367] CHIP:DMG: } - [1666950895.125801][5367:5367] CHIP:DMG: } - [1666950895.125881][5367:5367] CHIP:DMG: - [1666950895.125949][5367:5367] CHIP:DMG: Encrypted Payload (67 bytes) = - [1666950895.126029][5367:5367] CHIP:DMG: { - [1666950895.126086][5367:5367] CHIP:DMG: data = 00e71d001626340381eb47b7c924c57eb20842e6809b145878249948f15f820ef8edeb3aab5886a560d141b458fddda64b7a1d8caec61fd9ad1f223049490f6b8d9160 - [1666950895.126144][5367:5367] CHIP:DMG: buffer_ptr = 187650549874176 - [1666950895.126198][5367:5367] CHIP:DMG: } - [1666950895.126251][5367:5367] CHIP:DMG: - [1666950895.126421][5367:5367] CHIP:DMG: InvokeResponseMessage = - [1666950895.126509][5367:5367] CHIP:DMG: { - [1666950895.126569][5367:5367] CHIP:DMG: suppressResponse = false, - [1666950895.126638][5367:5367] CHIP:DMG: InvokeResponseIBs = - [1666950895.126768][5367:5367] CHIP:DMG: [ - [1666950895.126840][5367:5367] CHIP:DMG: InvokeResponseIB = - [1666950895.126960][5367:5367] CHIP:DMG: { - [1666950895.127033][5367:5367] CHIP:DMG: CommandStatusIB = - [1666950895.127147][5367:5367] CHIP:DMG: { - [1666950895.127226][5367:5367] CHIP:DMG: CommandPathIB = - [1666950895.127333][5367:5367] CHIP:DMG: { - [1666950895.127429][5367:5367] CHIP:DMG: EndpointId = 0x0, - [1666950895.127715][5367:5367] CHIP:DMG: ClusterId = 0x34, - [1666950895.127833][5367:5367] CHIP:DMG: CommandId = 0x0, - [1666950895.127928][5367:5367] CHIP:DMG: }, - [1666950895.128044][5367:5367] CHIP:DMG: - [1666950895.128127][5367:5367] CHIP:DMG: StatusIB = - [1666950895.128212][5367:5367] CHIP:DMG: { - [1666950895.128331][5367:5367] CHIP:DMG: status = 0x00 (SUCCESS), - [1666950895.128449][5367:5367] CHIP:DMG: }, - [1666950895.128544][5367:5367] CHIP:DMG: - [1666950895.128644][5367:5367] CHIP:DMG: }, - [1666950895.128741][5367:5367] CHIP:DMG: - [1666950895.128833][5367:5367] CHIP:DMG: }, - [1666950895.128918][5367:5367] CHIP:DMG: - [1666950895.129000][5367:5367] CHIP:DMG: ], - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml new file mode 100644 index 00000000000000..a49b6e016f1cc8 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 43.3.1. [TC-DGSW-3.2] Attributes observation with client as DUT + +PICS: + - DGSW.C + +config: + nodeId: 0x12344321 + cluster: "Software Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetWatermarks to TH" + PICS: DGSW.C.C00.Tx + wait: "ResetWatermarks" diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2.yaml deleted file mode 100644 index 892611d1569a54..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2.yaml +++ /dev/null @@ -1,343 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 50.3.2. [TC-DGTHREAD-3.2] Attributes-Tx [DUT- Client] - -PICS: - - DGTHREAD.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - 1.For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - 2.Chip-tool command used below are an example to verify the in DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command - disabled: true - - - label: "Commission DUT to TH" - verification: | - - disabled: true - - - label: "DUT reads TxTotalCount attribute value from TH" - PICS: DGTHREAD.C.A0016 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-total-count 54 0 - - Verify "TxTotalCount response" on the TH(All-cluster-app) Log: - - D: 2843340 [SC]Allocated SecureSession (0x20002e98) - waiting for Sigma1 msg - I: 2843348 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:148275633 on exchar - D: 2843358 [EM]Handling via exchange: 4328r, Delegate: 0x200070ec - D: 2843364 [IM]Received Read request - D: 2843369 [DMG]IM RH moving to [GeneratingReports] - D: 2843374 [EM]Retransmitting MessageCounter:53367852 on exchange 4327r Send Cnt 1 - I: 2843382 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367852 to 0x0000000000000000c - D: 2843396 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 2843405 [DMG] Cluster 35, Attribute 16 is dirty - D: 2843412 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0016 (expanded=0) - D: 2843421 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxUnicastCount attribute value from TH" - PICS: DGTHREAD.C.A0017 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-unicast-count 54 0 - - Verify "TxUnicastCount response" on the TH(All-cluster-app) Log: - - D: 3036505 [SC]Allocated SecureSession (0x20002f50) - waiting for Sigma1 msg - I: 3036513 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:134883675 on exchar - D: 3036523 [EM]Handling via exchange: 50096r, Delegate: 0x200070ec - D: 3036529 [IM]Received Read request - D: 3036533 [DMG]IM RH moving to [GeneratingReports] - D: 3036538 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3036546 [DMG] Cluster 35, Attribute 17 is dirty - D: 3036552 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0017 (expanded=0) - D: 3036563 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxBroadcastCount attribute value from TH" - PICS: DGTHREAD.C.A0018 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-broadcast-count 54 0 - - Verify "TxBroadcastCount response" on the TH(All-cluster-app) Log: - - I: 3080325 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367860 to 0x0000000000000000c - I: 3080339 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:187366260 on exchar - D: 3080349 [EM]Handling via exchange: 4630r, Delegate: 0x200070ec - D: 3080357 [IM]Received Read request - D: 3080362 [DMG]IM RH moving to [GeneratingReports] - D: 3080367 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3080377 [DMG] Cluster 35, Attribute 18 is dirty - D: 3080382 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0018 (expanded=0) - D: 3080391 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxAckRequestedCount attribute value from TH" - PICS: DGTHREAD.C.A0019 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-ack-requested-count 54 0 - - Verify "TxAckRequestedCount response" on the TH(All-cluster-app) Log: - - I: 3120921 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367864 to 0x0000000000000000c - I: 3120937 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:2317510 on exchangr - D: 3120947 [EM]Handling via exchange: 48251r, Delegate: 0x200070ec - D: 3120954 [IM]Received Read request - D: 3120959 [DMG]IM RH moving to [GeneratingReports] - D: 3120964 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3120973 [DMG] Cluster 35, Attribute 19 is dirty - D: 3120978 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0019 (expanded=0) - D: 3120988 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxAckedCount attribute value from TH" - PICS: DGTHREAD.C.A001a - verification: | - ./chip-tool threadnetworkdiagnostics read tx-acked-count 54 0 - - Verify "TxAckedCount response" on the TH(All-cluster-app) Log: - - D: 3176183 [SC]Allocated SecureSession (0x20003178) - waiting for Sigma1 msg - I: 3176190 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:96627054 on exchanr - D: 3176200 [EM]Handling via exchange: 13382r, Delegate: 0x200070ec - D: 3176206 [IM]Received Read request - D: 3176210 [DMG]IM RH moving to [GeneratingReports] - D: 3176217 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3176226 [DMG] Cluster 35, Attribute 1a is dirty - D: 3176232 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001A (expanded=0) - D: 3176241 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxNoAckRequestedCount attribute value from TH" - PICS: DGTHREAD.C.A001b - verification: | - ./chip-tool threadnetworkdiagnostics read tx-no-ack-requested-count 54 0 - Verify "TxNoAckRequestedCount response" on the TH(All-cluster-app) Log: - - D: 3223768 [SC]Allocated SecureSession (0x20003230) - waiting for Sigma1 msg - I: 3223776 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:222085508 on exchar - D: 3223786 [EM]Handling via exchange: 38957r, Delegate: 0x200070ec - D: 3223792 [IM]Received Read request - D: 3223796 [DMG]IM RH moving to [GeneratingReports] - D: 3223801 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3223809 [DMG] Cluster 35, Attribute 1b is dirty - D: 3223815 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001B (expanded=0) - D: 3223824 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxDataCount attribute value from TH" - PICS: DGTHREAD.C.A001c - verification: | - ./chip-tool threadnetworkdiagnostics read tx-data-count 54 0 - Verify "TxDataCount response" on the TH(All-cluster-app) Log: - - D: 3259870 [SC]Allocated SecureSession (0x200032e8) - waiting for Sigma1 msg - I: 3259878 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:111520680 on exchar - D: 3259888 [EM]Handling via exchange: 55695r, Delegate: 0x200070ec - D: 3259894 [IM]Received Read request - D: 3259898 [DMG]IM RH moving to [GeneratingReports] - D: 3259903 [EM]Retransmitting MessageCounter:53367876 on exchange 55694r Send Cnt 1 - I: 3259911 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367876 to 0x0000000000000000c - D: 3259925 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3259934 [DMG] Cluster 35, Attribute 1c is dirty - D: 3259941 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001C (expanded=0) - D: 3259951 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxDataPollCount attribute value from TH" - PICS: DGTHREAD.C.A001d - verification: | - ./chip-tool threadnetworkdiagnostics read tx-data-poll-count 54 0 - Verify "TxDataPollCount response" on the TH(All-cluster-app) Log: - - D: 3325107 [SC]Allocated SecureSession (0x200033a0) - waiting for Sigma1 msg - I: 3325115 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:39487161 on exchanr - D: 3325125 [EM]Handling via exchange: 61775r, Delegate: 0x200070ec - D: 3325131 [IM]Received Read request - D: 3325135 [DMG]IM RH moving to [GeneratingReports] - D: 3325140 [EM]Retransmitting MessageCounter:53367880 on exchange 61774r Send Cnt 1 - I: 3325148 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367880 to 0x0000000000000000c - D: 3325163 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3325173 [DMG] Cluster 35, Attribute 1d is dirty - D: 3325179 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001D (expanded=0) - D: 3325189 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxBeaconCount attribute value from TH" - PICS: DGTHREAD.C.A001e - verification: | - ./chip-tool threadnetworkdiagnostics read tx-beacon-count 54 0 - Verify "TxBeaconCount response" on the TH(All-cluster-app) Log: - - D: 3354772 [SC]Allocated SecureSession (0x20003458) - waiting for Sigma1 msg - D: 3354779 [EM]Retransmitting MessageCounter:53367884 on exchange 50547r Send Cnt 1 - I: 3354786 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367884 to 0x0000000000000000c - I: 3354801 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:80147352 on exchanr - D: 3354811 [EM]Handling via exchange: 50548r, Delegate: 0x200070ec - D: 3354818 [IM]Received Read request - D: 3354822 [DMG]IM RH moving to [GeneratingReports] - D: 3354828 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3354837 [DMG] Cluster 35, Attribute 1e is dirty - D: 3354842 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001E (expanded=0) - D: 3354853 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxBeaconRequestCount attribute value from TH" - PICS: DGTHREAD.C.A001f - verification: | - ./chip-tool threadnetworkdiagnostics read tx-beacon-request-count 54 0 - Verify "TxBeaconRequestCount response" on the TH(All-cluster-app) Log: - - D: 3383318 [SC]Allocated SecureSession (0x20003510) - waiting for Sigma1 msg - I: 3383326 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:29889571 on exchanr - D: 3383338 [EM]Handling via exchange: 53268r, Delegate: 0x200070ec - D: 3383344 [IM]Received Read request - D: 3383348 [DMG]IM RH moving to [GeneratingReports] - D: 3383353 [EM]Retransmitting MessageCounter:53367888 on exchange 53267r Send Cnt 1 - I: 3383360 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367888 to 0x0000000000000000c - D: 3383374 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3383383 [DMG] Cluster 35, Attribute 1f is dirty - D: 3383389 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001F (expanded=0) - D: 3383400 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxOtherCount attribute value from TH" - PICS: DGTHREAD.C.A0020 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-other-count 54 0 - Verify "TxOtherCount response" on the TH(All-cluster-app) Log: - - D: 3549567 [SC]Allocated SecureSession (0x200035c8) - waiting for Sigma1 msg - I: 3549574 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:196573482 on exchar - D: 3549585 [EM]Handling via exchange: 49239r, Delegate: 0x200070ec - D: 3549591 [IM]Received Read request - D: 3549595 [DMG]IM RH moving to [GeneratingReports] - D: 3549599 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3549608 [DMG] Cluster 35, Attribute 20 is dirty - D: 3549613 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0020 (expanded=0) - D: 3549623 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxRetryCount attribute value from TH" - PICS: DGTHREAD.C.A0021 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-retry-count 54 0 - Verify "TxRetryCount response" on the TH(All-cluster-app) Log: - - D: 3579614 [SC]Allocated SecureSession (0x20003680) - waiting for Sigma1 msg - I: 3579622 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:236977137 on exchar - D: 3579632 [EM]Handling via exchange: 26757r, Delegate: 0x200070ec - D: 3579638 [IM]Received Read request - D: 3579642 [DMG]IM RH moving to [GeneratingReports] - D: 3579647 [EM]Retransmitting MessageCounter:53367896 on exchange 26756r Send Cnt 1 - I: 3579654 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367896 to 0x0000000000000000c - D: 3579669 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3579678 [DMG] Cluster 35, Attribute 21 is dirty - D: 3579684 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0021 (expanded=0) - D: 3579695 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH" - PICS: DGTHREAD.C.A0022 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-direct-max-retry-expiry-count 54 0 - Verify "TxDirectMaxRetryExpiryCount response" on the TH(All-cluster-app) Log: - - D: 3783161 [SC]Allocated SecureSession (0x20003738) - waiting for Sigma1 msg - I: 3783169 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:218163522 on exchar - D: 3783179 [EM]Handling via exchange: 24150r, Delegate: 0x200070ec - D: 3783185 [IM]Received Read request - D: 3783189 [DMG]IM RH moving to [GeneratingReports] - D: 3783194 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3783202 [DMG] Cluster 35, Attribute 22 is dirty - D: 3783208 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0022 (expanded=0) - D: 3783217 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH" - PICS: DGTHREAD.C.A0023 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-indirect-max-retry-expiry-count 54 0 - Verify "TxIndirectMaxRetryExpiryCount response" on the TH(All-cluster-app) Log: - - D: 3821837 [SC]Allocated SecureSession (0x200037f0) - waiting for Sigma1 msg - I: 3821844 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:265981625 on exchar - D: 3821855 [EM]Handling via exchange: 43311r, Delegate: 0x200070ec - D: 3821860 [IM]Received Read request - D: 3821864 [DMG]IM RH moving to [GeneratingReports] - D: 3821869 [EM]Retransmitting MessageCounter:53367904 on exchange 43310r Send Cnt 1 - I: 3821877 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367904 to 0x0000000000000000c - D: 3821891 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3821900 [DMG] Cluster 35, Attribute 23 is dirty - D: 3821907 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0023 (expanded=0) - D: 3821917 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxErrCcaCount attribute value from TH" - PICS: DGTHREAD.C.A0024 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-err-cca-count 54 0 - Verify "TxErrCcaCount response" on the TH(All-cluster-app) Log: - D: 3851430 [SC]Allocated SecureSession (0x20002c70) - waiting for Sigma1 msg - I: 3851438 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:99541923 on exchanr - D: 3851448 [EM]Handling via exchange: 35297r, Delegate: 0x200070ec - D: 3851454 [IM]Received Read request - D: 3851458 [DMG]IM RH moving to [GeneratingReports] - D: 3851463 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3851472 [DMG] Cluster 35, Attribute 24 is dirty - D: 3851477 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0024 (expanded=0) - D: 3851486 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxErrAbortCount attribute value from TH" - PICS: DGTHREAD.C.A0025 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-err-abort-count 54 0 - Verify "TxErrAbortCount response" on the TH(All-cluster-app) Log: - - I: 3878371 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367912 to 0x0000000000000000c - I: 3878386 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:20729896 on exchanr - D: 3878397 [EM]Handling via exchange: 34017r, Delegate: 0x200070ec - D: 3878405 [IM]Received Read request - D: 3878409 [DMG]IM RH moving to [GeneratingReports] - D: 3878414 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3878422 [DMG] Cluster 35, Attribute 25 is dirty - D: 3878428 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0025 (expanded=0) - D: 3878437 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxErrBusyChannelCount attribute value from TH" - PICS: DGTHREAD.C.A0026 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-err-busy-channel-count 54 0 - Verify "TxErrBusyChannelCount response" on the TH(All-cluster-app) Log: - - D: 3925250 [SC]Allocated SecureSession (0x20002d28) - waiting for Sigma1 msg - I: 3925257 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:68236194 on exchanr - D: 3925267 [EM]Handling via exchange: 58143r, Delegate: 0x200070ec - D: 3925273 [IM]Received Read request - D: 3925277 [DMG]IM RH moving to [GeneratingReports] - D: 3925282 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3925292 [DMG] Cluster 35, Attribute 26 is dirty - D: 3925298 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0026 (expanded=0) - D: 3925307 [DMG] Sending report (payload has 36 bytes)... - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2_Simulated.yaml new file mode 100644 index 00000000000000..6b07de333d504b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2_Simulated.yaml @@ -0,0 +1,113 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-DGTHREAD-3.2] Command Generated {DUT_Client}] + +PICS: + - DGTHREAD.C + +config: + nodeId: 0x12344321 + cluster: "Thread Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT reads TxUnicastCount attribute value from TH" + wait: "readAttribute" + attribute: "TxUnicastCount" + PICS: DGTHREAD.C.A0016 + + - label: "DUT reads TxUnicastCount attribute value from TH" + wait: "readAttribute" + attribute: "TxUnicastCount" + PICS: DGTHREAD.C.A0017 + + - label: "DUT reads TxBroadcastCount attribute value from TH" + wait: "readAttribute" + attribute: "TxBroadcastCount" + PICS: DGTHREAD.C.A0018 + + - label: "DUT reads TxAckRequestedCount attribute value from TH" + wait: "readAttribute" + attribute: "TxAckRequestedCount" + PICS: DGTHREAD.C.A0019 + + - label: "DUT reads TxAckedCount attribute value from TH" + wait: "readAttribute" + attribute: "TxAckedCount" + PICS: DGTHREAD.C.A001a + + - label: "DUT reads TxNoAckRequestedCount attribute value from TH" + wait: "readAttribute" + attribute: "TxNoAckRequestedCount" + PICS: DGTHREAD.C.A001b + + - label: "DUT reads TxDataCount attribute value from TH" + wait: "readAttribute" + attribute: "TxDataCount" + PICS: DGTHREAD.C.A001c + + - label: "DUT reads TxDataPollCount attribute value from TH" + wait: "readAttribute" + attribute: "TxDataPollCount" + PICS: DGTHREAD.C.A001d + + - label: "DUT reads TxBeaconCount attribute value from TH" + wait: "readAttribute" + attribute: "TxBeaconCount" + PICS: DGTHREAD.C.A001e + + - label: "DUT reads TxBeaconRequestCount attribute value from TH" + wait: "readAttribute" + attribute: "TxBeaconRequestCount" + PICS: DGTHREAD.C.A001f + + - label: "DUT reads TxOtherCount attribute value from TH" + wait: "readAttribute" + attribute: "TxOtherCount" + PICS: DGTHREAD.C.A0020 + + - label: "DUT reads TxRetryCount attribute value from TH" + wait: "readAttribute" + attribute: "TxRetryCount" + PICS: DGTHREAD.C.A0021 + + - label: "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH" + wait: "readAttribute" + attribute: "TxDirectMaxRetryExpiryCount" + PICS: DGTHREAD.C.A0022 + + - label: "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH" + wait: "readAttribute" + attribute: "TxIndirectMaxRetryExpiryCount" + PICS: DGTHREAD.C.A0023 + + - label: "DUT reads TxErrCcaCount attribute value from TH" + wait: "readAttribute" + attribute: "TxErrCcaCount" + PICS: DGTHREAD.C.A0024 + + - label: "DUT reads TxErrAbortCount attribute value from TH" + wait: "readAttribute" + attribute: "TxErrAbortCount" + PICS: DGTHREAD.C.A0025 + + - label: "DUT reads TxErrBusyChannelCount attribute value from TH" + wait: "readAttribute" + attribute: "TxErrBusyChannelCount" + PICS: DGTHREAD.C.A0026 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3.yaml deleted file mode 100644 index e79fb6c3c6882d..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3.yaml +++ /dev/null @@ -1,334 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 50.3.3. [TC-DGTHREAD-3.3] Attributes-Rx [DUT- Client] - -PICS: - - DGTHREAD.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission DUT to TH" - verification: | - - disabled: true - - - label: "DUT reads RxTotalCount attribute value from TH" - PICS: DGTHREAD.C.A0027 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-total-count 54 0 - Verify "RxTotalCount response" on the TH(All-cluster-app) Log: - - D: 4079810 [SC]Allocated SecureSession (0x20002e98) - waiting for Sigma1 msg - I: 4079818 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:21934806 on exchanr - D: 4079828 [EM]Handling via exchange: 8058r, Delegate: 0x200070ec - D: 4079834 [IM]Received Read request - D: 4079838 [DMG]IM RH moving to [GeneratingReports] - D: 4079844 [EM]Retransmitting MessageCounter:53367920 on exchange 8057r Send Cnt 1 - I: 4079852 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367920 to 0x0000000000000000c - D: 4079866 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 4079875 [DMG] Cluster 35, Attribute 27 is dirty - D: 4079880 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0027 (expanded=0) - D: 4079890 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxUnicastCount attribute value from TH" - PICS: DGTHREAD.C.A0028 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-unicast-count 54 0 - Verify "RxUnicastCount response" on the TH(All-cluster-app) Log: - - D: 4108122 [SC]Allocated SecureSession (0x20002f50) - waiting for Sigma1 msg - I: 4108130 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:146842823 on exchar - D: 4108140 [EM]Handling via exchange: 31466r, Delegate: 0x200070ec - D: 4108146 [IM]Received Read request - D: 4108150 [DMG]IM RH moving to [GeneratingReports] - D: 4108154 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 4108163 [DMG] Cluster 35, Attribute 28 is dirty - D: 4108168 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0028 (expanded=0) - D: 4108178 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxBroadcastCount attribute value from TH" - PICS: DGTHREAD.C.A0029 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-broadcast-count 54 0 - Verify "RxBroadcastCount response" on the TH(All-cluster-app) Log: - - D: 4630447 [SC]Allocated SecureSession (0x20003008) - waiting for Sigma1 msg - I: 4630454 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:32416455 on exchanr - D: 4630464 [EM]Handling via exchange: 25526r, Delegate: 0x200070ec - D: 4630470 [IM]Received Read request - D: 4630474 [DMG]IM RH moving to [GeneratingReports] - D: 4630479 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 4630488 [DMG] Cluster 35, Attribute 29 is dirty - D: 4630493 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0029 (expanded=0) - D: 4630502 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxDataCount attribute value from TH" - PICS: DGTHREAD.C.A002a - verification: | - ./chip-tool threadnetworkdiagnostics read rx-data-count 54 0 - Verify "RxDataCount response" on the TH(All-cluster-app) Log: - - D: 5193071 [SC]Allocated SecureSession (0x200030c0) - waiting for Sigma1 msg - I: 5193079 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:49592654 on exchanr - D: 5193089 [EM]Handling via exchange: 37413r, Delegate: 0x200070ec - D: 5193095 [IM]Received Read request - D: 5193099 [DMG]IM RH moving to [GeneratingReports] - D: 5193103 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 5193112 [DMG] Cluster 35, Attribute 2a is dirty - D: 5193119 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002A (expanded=0) - D: 5193128 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxDataPollCount attribute value from TH" - PICS: DGTHREAD.C.A002b - verification: | - ./chip-tool threadnetworkdiagnostics read rx-data-poll-count 54 0 - Verify "RxDataPollCount response" on the TH(All-cluster-app) Log: - - D: 5612663 [SC]Allocated SecureSession (0x20003230) - waiting for Sigma1 msg - D: 5612670 [EM]Retransmitting MessageCounter:53367940 on exchange 23136r Send Cnt 1 - I: 5612678 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367940 to 0x0000000000000000c - I: 5612693 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:94938048 on exchanr - D: 5612703 [EM]Handling via exchange: 23137r, Delegate: 0x200070ec - D: 5612711 [IM]Received Read request - D: 5612716 [DMG]IM RH moving to [GeneratingReports] - D: 5612720 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 5612731 [DMG] Cluster 35, Attribute 2b is dirty - D: 5612736 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002B (expanded=0) - D: 5612745 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxBeaconCount attribute value from TH" - PICS: DGTHREAD.C.A002c - verification: | - ./chip-tool threadnetworkdiagnostics read rx-beacon-count 54 0 - Verify "RxBeaconCount response" on the TH(All-cluster-app) Log: - - D: 5685067 [SC]Allocated SecureSession (0x200032e8) - waiting for Sigma1 msg - D: 5685074 [EM]Retransmitting MessageCounter:53367944 on exchange 27673r Send Cnt 1 - I: 5685083 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367944 to 0x0000000000000000c - I: 5685098 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:229974593 on exchar - D: 5685108 [EM]Handling via exchange: 27674r, Delegate: 0x200070ec - D: 5685115 [IM]Received Read request - D: 5685119 [DMG]IM RH moving to [GeneratingReports] - D: 5685125 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 5685134 [DMG] Cluster 35, Attribute 2c is dirty - D: 5685139 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002C (expanded=0) - D: 5685148 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxBeaconRequestCount attribute value from TH" - PICS: DGTHREAD.C.A002d - verification: | - ./chip-tool threadnetworkdiagnostics read rx-beacon-request-count 54 0 - Verify "RxBeaconRequestCount response" on the TH(All-cluster-app) Log: - - I: 6354933 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367948 to 0x0000000000000000c - I: 6354947 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:189386222 on exchar - D: 6354958 [EM]Handling via exchange: 40234r, Delegate: 0x200070ec - D: 6354964 [IM]Received Read request - D: 6354968 [DMG]IM RH moving to [GeneratingReports] - D: 6354974 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6354983 [DMG] Cluster 35, Attribute 2d is dirty - D: 6354989 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002D (expanded=0) - D: 6354999 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxOtherCount attribute value from TH" - PICS: DGTHREAD.C.A002e - verification: | - ./chip-tool threadnetworkdiagnostics read rx-other-count 54 0 - Verify "RxOtherCount response" on the TH(All-cluster-app) Log: - - D: 6440317 [SC]Allocated SecureSession (0x20003458) - waiting for Sigma1 msg - I: 6440325 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:185096786 on exchar - D: 6440335 [EM]Handling via exchange: 54133r, Delegate: 0x200070ec - D: 6440341 [IM]Received Read request - D: 6440345 [DMG]IM RH moving to [GeneratingReports] - D: 6440350 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6440360 [DMG] Cluster 35, Attribute 2e is dirty - D: 6440366 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002E (expanded=0) - D: 6440375 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxAddressFilteredCount attribute value from TH" - PICS: DGTHREAD.C.A002f - verification: | - ./chip-tool threadnetworkdiagnostics read rx-address-filtered-count 54 0 - Verify "RxAddressFilteredCount response" on the TH(All-cluster-app) Log: - - D: 6500252 [SC]Allocated SecureSession (0x20003510) - waiting for Sigma1 msg - I: 6500260 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:17427447 on exchanr - D: 6500270 [EM]Handling via exchange: 733r, Delegate: 0x200070ec - D: 6500276 [IM]Received Read request - D: 6500280 [DMG]IM RH moving to [GeneratingReports] - D: 6500284 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6500293 [DMG] Cluster 35, Attribute 2f is dirty - D: 6500299 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002F (expanded=0) - D: 6500308 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxDestAddrFilteredCount attribute value from TH" - PICS: DGTHREAD.C.A0030 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-dest-addr-filtered-count 54 0 - Verify "RxDestAddrFilteredCount response" on the TH(All-cluster-app) Log: - - D: 6546865 [SC]Allocated SecureSession (0x200035c8) - waiting for Sigma1 msg - I: 6546873 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:74235822 on exchanr - D: 6546883 [EM]Handling via exchange: 35034r, Delegate: 0x200070ec - D: 6546890 [IM]Received Read request - D: 6546894 [DMG]IM RH moving to [GeneratingReports] - D: 6546899 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6546908 [DMG] Cluster 35, Attribute 30 is dirty - D: 6546913 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0030 (expanded=0) - D: 6546922 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxDuplicatedCount attribute value from TH" - PICS: DGTHREAD.C.A0031 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-duplicated-count 54 0 - Verify "RxDuplicatedCount response" on the TH(All-cluster-app) Log: - - D: 6599281 [SC]Allocated SecureSession (0x20003680) - waiting for Sigma1 msg - I: 6599288 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:36119403 on exchanr - D: 6599298 [EM]Handling via exchange: 9572r, Delegate: 0x200070ec - D: 6599304 [IM]Received Read request - D: 6599308 [DMG]IM RH moving to [GeneratingReports] - D: 6599313 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6599322 [DMG] Cluster 35, Attribute 31 is dirty - D: 6599327 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0031 (expanded=0) - D: 6599336 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrNoFrameCount attribute value from TH" - PICS: DGTHREAD.C.A0032 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-no-frame-count 54 0 - Verify "RxErrNoFrameCount response" on the TH(All-cluster-app) Log: - - D: 6634879 [SC]Allocated SecureSession (0x20003738) - waiting for Sigma1 msg - D: 6634886 [EM]Retransmitting MessageCounter:53367968 on exchange 23023r Send Cnt 1 - I: 6634893 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367968 to 0x0000000000000000c - I: 6634908 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:125719359 on exchar - D: 6634919 [EM]Handling via exchange: 23024r, Delegate: 0x200070ec - D: 6634925 [IM]Received Read request - D: 6634931 [DMG]IM RH moving to [GeneratingReports] - D: 6634936 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6634945 [DMG] Cluster 35, Attribute 32 is dirty - D: 6634951 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0032 (expanded=0) - D: 6634962 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrUnknownNeighborCount attribute value from TH" - PICS: DGTHREAD.C.A0033 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-unknown-neighbor-count 54 0 - Verify "RxErrUnknownNeighborCount response" on the TH(All-cluster-app) Log: - - D: 6673331 [SC]Allocated SecureSession (0x200037f0) - waiting for Sigma1 msg - I: 6673338 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:5756147 on exchangr - D: 6673348 [EM]Handling via exchange: 27489r, Delegate: 0x200070ec - D: 6673354 [IM]Received Read request - D: 6673358 [DMG]IM RH moving to [GeneratingReports] - D: 6673363 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6673372 [DMG] Cluster 35, Attribute 33 is dirty - D: 6673377 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0033 (expanded=0) - D: 6673386 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrInvalidScrAddrCount attribute value from TH" - PICS: DGTHREAD.C.A0034 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-invalid-src-addr-count 54 0 - Verify "RxErrInvalidSrcAddrCount response" on the TH(All-cluster-app) Log: - - D: 6729267 [SC]Allocated SecureSession (0x20002c70) - waiting for Sigma1 msg - I: 6729275 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:63567787 on exchanr - D: 6729285 [EM]Handling via exchange: 51938r, Delegate: 0x200070ec - D: 6729291 [IM]Received Read request - D: 6729295 [DMG]IM RH moving to [GeneratingReports] - D: 6729300 [EM]Retransmitting MessageCounter:53367976 on exchange 51937r Send Cnt 1 - I: 6729307 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367976 to 0x0000000000000000c - D: 6729321 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6729332 [DMG] Cluster 35, Attribute 34 is dirty - D: 6729338 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0034 (expanded=0) - D: 6729347 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrSecCount attribute value from TH" - PICS: DGTHREAD.C.A0035 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-sec-count 54 0 - Verify "RxErrSecCount response" on the TH(All-cluster-app) Log: - - D: 6776643 [SC]Allocated SecureSession (0x20002de0) - waiting for Sigma1 msg - I: 6776651 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:62796965 on exchanr - D: 6776661 [EM]Handling via exchange: 37020r, Delegate: 0x200070ec - D: 6776667 [IM]Received Read request - D: 6776671 [DMG]IM RH moving to [GeneratingReports] - D: 6776676 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6776685 [DMG] Cluster 35, Attribute 35 is dirty - D: 6776690 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0035 (expanded=0) - D: 6776701 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrFcsCount attribute value from TH" - PICS: DGTHREAD.C.A0036 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-fcs-count 54 0 - Verify "RxErrFcsCount response" on the TH(All-cluster-app) Log: - - D: 6844438 [SC]Allocated SecureSession (0x20002d28) - waiting for Sigma1 msg - I: 6844445 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:26761069 on exchanr - D: 6844455 [EM]Handling via exchange: 326r, Delegate: 0x200070ec - D: 6844461 [IM]Received Read request - D: 6844465 [DMG]IM RH moving to [GeneratingReports] - D: 6844470 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6844480 [DMG] Cluster 35, Attribute 36 is dirty - D: 6844485 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0036 (expanded=0) - D: 6844495 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxErrOtherCount attribute value from TH" - PICS: DGTHREAD.C.A0037 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-other-count 54 0 - Verify "RxErrOtherCount response" on the TH(All-cluster-app) Log: - - D: 6866596 [SC]Allocated SecureSession (0x20002e98) - waiting for Sigma1 msg - I: 6866604 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:179617390 on exchar - D: 6866614 [EM]Handling via exchange: 3843r, Delegate: 0x200070ec - D: 6866619 [IM]Received Read request - D: 6866623 [DMG]IM RH moving to [GeneratingReports] - D: 6866628 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6866639 [DMG] Cluster 35, Attribute 37 is dirty - D: 6866644 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0037 (expanded=0) - D: 6866653 [DMG] Sending report (payload has 36 bytes)... - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3_Simulated.yaml new file mode 100644 index 00000000000000..8a343dce13b85b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3_Simulated.yaml @@ -0,0 +1,113 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-DGTHREAD-3.3] Command Generated {DUT_Client}] + +PICS: + - DGTHREAD.C + +config: + nodeId: 0x12344321 + cluster: "Thread Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT reads RxTotalCount attribute value from TH" + wait: "readAttribute" + attribute: "RxTotalCount" + PICS: DGTHREAD.C.A0027 + + - label: "DUT reads RxUnicastCount attribute value from TH" + wait: "readAttribute" + attribute: "RxUnicastCount" + PICS: DGTHREAD.C.A0028 + + - label: "DUT reads RxBroadcastCount attribute value from TH" + wait: "readAttribute" + attribute: "RxBroadcastCount" + PICS: DGTHREAD.C.A0029 + + - label: "DUT reads RxDataCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDataCount" + PICS: DGTHREAD.C.A002a + + - label: "DUT reads RxDataPollCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDataPollCount" + PICS: DGTHREAD.C.A002b + + - label: "DUT reads RxBeaconCount attribute value from TH" + wait: "readAttribute" + attribute: "RxBeaconCount" + PICS: DGTHREAD.C.A002c + + - label: "DUT reads RxBeaconRequestCount attribute value from TH" + wait: "readAttribute" + attribute: "RxBeaconRequestCount" + PICS: DGTHREAD.C.A002d + + - label: "DUT reads RxOtherCount attribute value from TH" + wait: "readAttribute" + attribute: "RxOtherCount" + PICS: DGTHREAD.C.A002e + + - label: "DUT reads RxAddressFilteredCount attribute value from TH" + wait: "readAttribute" + attribute: "RxAddressFilteredCount" + PICS: DGTHREAD.C.A002f + + - label: "DUT reads RxDestAddrFilteredCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDestAddrFilteredCount" + PICS: DGTHREAD.C.A0030 + + - label: "DUT reads RxDuplicatedCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDuplicatedCount" + PICS: DGTHREAD.C.A0031 + + - label: "DUT reads RxErrNoFrameCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrNoFrameCount" + PICS: DGTHREAD.C.A0032 + + - label: "DUT reads RxErrUnknownNeighborCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrUnknownNeighborCount" + PICS: DGTHREAD.C.A0033 + + - label: "DUT reads RxErrInvalidSrcAddrCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrInvalidSrcAddrCount" + PICS: DGTHREAD.C.A0034 + + - label: "DUT reads RxErrSecCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrSecCount" + PICS: DGTHREAD.C.A0035 + + - label: "DUT reads RxErrFcsCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrFcsCount" + PICS: DGTHREAD.C.A0036 + + - label: "DUT reads RxErrOtherCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrOtherCount" + PICS: DGTHREAD.C.A0037 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4.yaml deleted file mode 100644 index 0946b8c2a70565..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 50.3.4. [TC-DGTHREAD-3.4] ResetCounts Command[DUT-Client] - -PICS: - - DGTHREAD.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts Command to TH" - PICS: DGTHREAD.C.C00.Tx - verification: | - ./chip-tool threadnetworkdiagnostics reset-counts 54 0 - Verify "ResetCounts response" on the TH(All-cluster-app) Log: - - D: 6932849 [SC]Allocated SecureSession (0x20002f50) - waiting for Sigma1 msg - I: 6932856 [EM]Received message of type 0x8 with protocolId (0, 1) and MessageCounter:25984238 on exchanr - D: 6932866 [EM]Handling via exchange: 5441r, Delegate: 0x200070ec - D: 6932873 [DMG]Received command for Endpoint=0 Cluster=0x0000_0035 Command=0x0000_0000 - D: 6932881 [DMG]ICR moving to [ Preparing] - D: 6932884 [DMG]ICR moving to [AddingComm] - D: 6932888 [DMG]ICR moving to [AddedComma] - D: 6932894 [DMG]Decreasing reference count for CommandHandler, remaining 0 - I: 6932901 [IN]Prepared secure message 0x200048b4 to 0x000000000001B669 (1) of type 0x9 and protocolId . - I: 6932916 [IN]Sending encrypted msg 0x200048b4 with MessageCounter:151760493 to 0x000000000001B669 (1) c - D: 6932930 [DMG]ICR moving to [CommandSen] - D: 6932934 [DMG]ICR moving to [AwaitingDe] - D: 6932938 [EM]Retransmitting MessageCounter:53367992 on exchange 5440r Send Cnt 1 - I: 6932946 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367992 to 0x0000000000000000c - I: 6932962 [EM]Received message of type 0x10 with protocolId (0, 0) and MessageCounter:229191096 on exchr - D: 6932972 [EM]Found matching exchange: 5440r, Delegate: (nil) - D: 6932979 [EM]Rxd Ack; Removing MessageCounter:53367992 from Retrans Table on exchange 5440r - D: 6932988 [EM]Removed CHIP MessageCounter:53367992 from RetransTable on exchange 5440r - D: 6932998 [IN]Received a duplicate message with MessageCounter:25984238 on exchange 5441r - I: 6933006 [EM]Received message of type 0x8 with protocolId (0, 1) and MessageCounter:25984238 on exchanr - D: 6933016 [EM]Found matching exchange: 5441r, Delegate: (nil) - D: 6933022 [EM]Forcing tx of solitary ack for duplicate MessageCounter:25984238 on exchange 5441r - D: 6933030 [EM]Sending Standalone Ack for MessageCounter:25984238 on exchange 5441r - disabled: true - - - label: "DUT reads OverrunCount attribute from TH" - PICS: DGTHREAD.C.A0006 - verification: | - ./chip-tool threadnetworkdiagnostics read overrun-count 54 0 - Verify "OverrunCount response" on the TH(All-cluster-app) Log: - - D: 7011179 [SC]Allocated SecureSession (0x20003008) - waiting for Sigma1 msg - I: 7011187 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:245187273 on exchar - D: 7011197 [EM]Handling via exchange: 37861r, Delegate: 0x200070ec - D: 7011203 [IM]Received Read request - D: 7011207 [DMG]IM RH moving to [GeneratingReports] - D: 7011212 [EM]Retransmitting MessageCounter:53367996 on exchange 37860r Send Cnt 1 - I: 7011219 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367996 to 0x0000000000000000c - D: 7011235 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 7011244 [DMG] Cluster 35, Attribute 6 is dirty - D: 7011250 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0006 (expanded=0) - D: 7011260 [DMG] Sending report (payload has 36 bytes)... - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4_Simulated.yaml new file mode 100644 index 00000000000000..cdb4b6cc199bc6 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4_Simulated.yaml @@ -0,0 +1,37 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-DGTHREAD-3.4] Command Generated {DUT_Client}] + +PICS: + - DGTHREAD.C + +config: + nodeId: 0x12344321 + cluster: "Thread Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts command to TH" + PICS: DGTHREAD.C.C00.Tx + wait: "ResetCounts" + + - label: "DUT reads OverrunCount attribute value from TH" + wait: "readAttribute" + attribute: "OverrunCount" + PICS: DGTHREAD.C.A0006 diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml deleted file mode 100644 index 62460173bafef8..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.2. [TC-DGWIFI-3.2]Command Generated [DUT as Client] - -PICS: - - DGWIFI.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts command to TH" - PICS: DGWIFI.C.C00.Tx - verification: | - ./chip-tool wifinetworkdiagnostics reset-counts 1 0 - - verify the " success response" for ResetCounts command on the TH (all-cluster-app) log: - - [1666959400.011236][6130:6130] CHIP:EM: Handling via exchange: 33250r, Delegate: 0xaaaad6e20288 - [1666959400.011383][6130:6130] CHIP:DMG: InvokeRequestMessage = - [1666959400.011452][6130:6130] CHIP:DMG: { - [1666959400.011511][6130:6130] CHIP:DMG: suppressResponse = false, - [1666959400.011579][6130:6130] CHIP:DMG: timedRequest = false, - [1666959400.011641][6130:6130] CHIP:DMG: InvokeRequests = - [1666959400.011720][6130:6130] CHIP:DMG: [ - [1666959400.011783][6130:6130] CHIP:DMG: CommandDataIB = - [1666959400.011853][6130:6130] CHIP:DMG: { - [1666959400.011984][6130:6130] CHIP:DMG: CommandPathIB = - [1666959400.012114][6130:6130] CHIP:DMG: { - [1666959400.012196][6130:6130] CHIP:DMG: EndpointId = 0x0, - [1666959400.012334][6130:6130] CHIP:DMG: ClusterId = 0x36, - [1666959400.012471][6130:6130] CHIP:DMG: CommandId = 0x0, - [1666959400.012601][6130:6130] CHIP:DMG: }, - [1666959400.012739][6130:6130] CHIP:DMG: - [1666959400.012810][6130:6130] CHIP:DMG: CommandFields = - [1666959400.012938][6130:6130] CHIP:DMG: { - [1666959400.013016][6130:6130] CHIP:DMG: }, - [1666959400.013134][6130:6130] CHIP:DMG: }, - [1666959400.013215][6130:6130] CHIP:DMG: - [1666959400.013277][6130:6130] CHIP:DMG: ], - [1666959400.013353][6130:6130] CHIP:DMG: - [1666959400.013416][6130:6130] CHIP:DMG: InteractionModelRevision = 1 - [1666959400.013476][6130:6130] CHIP:DMG: }, - [1666959400.013621][6130:6130] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0036 e=0 p=o - [1666959400.013704][6130:6130] CHIP:DMG: AccessControl: allowed - [1666959400.013774][6130:6130] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0036 Command=0x0000_0000 - [1666959400.018281][6130:6130] CHIP:DL: Found the primary WiFi interface:wlan0 - [1666959400.018419][6130:6130] CHIP:DMG: Command handler moving to [ Preparing] - [1666959400.018494][6130:6130] CHIP:DMG: Command handler moving to [AddingComm] - [1666959400.018562][6130:6130] CHIP:DMG: Command handler moving to [AddedComma] - [1666959400.018675][6130:6130] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1666959400.019314][6130:6130] CHIP:EM: <<< [E:33250r M:63255960 (Ack:74829349)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:09 (IM:InvokeCommandResponse) - [1666959400.019427][6130:6130] CHIP:IN: (S) Sending msg 63255960 on secure session with LSID: 44736 - [1666959400.020094][6130:6130] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:38143 | 63255960 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 63986 / Exchange = 33250] - [1666959400.020191][6130:6130] CHIP:DMG: Header Flags = - [1666959400.020249][6130:6130] CHIP:DMG: { - [1666959400.020335][6130:6130] CHIP:DMG: Exchange (0x06) = - [1666959400.020391][6130:6130] CHIP:DMG: { - [1666959400.020451][6130:6130] CHIP:DMG: AckMsg = 74829349 - [1666959400.020507][6130:6130] CHIP:DMG: NeedsAck = true - [1666959400.020574][6130:6130] CHIP:DMG: } - [1666959400.020643][6130:6130] CHIP:DMG: } - [1666959400.020699][6130:6130] CHIP:DMG: - [1666959400.020767][6130:6130] CHIP:DMG: Encrypted Payload (67 bytes) = - [1666959400.020823][6130:6130] CHIP:DMG: { - [1666959400.020878][6130:6130] CHIP:DMG: data = 00f2f9009835c50387f400a6ef13a28b3b46eb5a99745448df633531de072463f12d56a3f096824b82a3a409c494841c55a558a7ee3c8e94775c4495b700db3bc9f22a - [1666959400.020937][6130:6130] CHIP:DMG: buffer_ptr = 187651201115584 - [1666959400.020992][6130:6130] CHIP:DMG: } - [1666959400.021044][6130:6130] CHIP:DMG: - [1666959400.021196][6130:6130] CHIP:DMG: InvokeResponseMessage = - [1666959400.021264][6130:6130] CHIP:DMG: { - [1666959400.021323][6130:6130] CHIP:DMG: suppressResponse = false, - [1666959400.021385][6130:6130] CHIP:DMG: InvokeResponseIBs = - [1666959400.021463][6130:6130] CHIP:DMG: [ - [1666959400.021525][6130:6130] CHIP:DMG: InvokeResponseIB = - [1666959400.021769][6130:6130] CHIP:DMG: { - [1666959400.021841][6130:6130] CHIP:DMG: CommandStatusIB = - [1666959400.021930][6130:6130] CHIP:DMG: { - [1666959400.022009][6130:6130] CHIP:DMG: CommandPathIB = - [1666959400.022091][6130:6130] CHIP:DMG: { - [1666959400.022179][6130:6130] CHIP:DMG: EndpointId = 0x0, - [1666959400.022270][6130:6130] CHIP:DMG: ClusterId = 0x36, - [1666959400.022358][6130:6130] CHIP:DMG: CommandId = 0x0, - [1666959400.022442][6130:6130] CHIP:DMG: }, - [1666959400.022535][6130:6130] CHIP:DMG: - [1666959400.022612][6130:6130] CHIP:DMG: StatusIB = - [1666959400.022697][6130:6130] CHIP:DMG: { - [1666959400.022843][6130:6130] CHIP:DMG: status = 0x00 (SUCCESS), - [1666959400.022930][6130:6130] CHIP:DMG: }, - [1666959400.023016][6130:6130] CHIP:DMG: - [1666959400.023091][6130:6130] CHIP:DMG: }, - [1666959400.023185][6130:6130] CHIP:DMG: - [1666959400.023256][6130:6130] CHIP:DMG: }, - [1666959400.023338][6130:6130] CHIP:DMG: - [1666959400.023400][6130:6130] CHIP:DMG: ], - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml new file mode 100644 index 00000000000000..ddd2e798443a26 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 52.3.1. [TC-DGWIFI-3.1] Attributes observed with client as DUT + +PICS: + - DGWIFI.C + +config: + nodeId: 0x12344321 + cluster: "WiFi Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts command to TH" + PICS: DGTHREAD.C.C00.Tx + wait: "ResetCounts" diff --git a/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml index 442948e126f1cd..aed9bc9466e304 100644 --- a/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 56.1.1. [TC-DLOG-1.1] Global Attributes [DUT-Server] +name: 56.1.1. [TC-DLOG-1.1] Global Attributes with DUT as Server PICS: - DLOG.S diff --git a/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml index 70ea959ef7a268..e109c22a0669cd 100644 --- a/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 98.3.1. [TC-FLABEL-3.1] Fixed Label cluster [DUT-client] +name: 98.3.1. [TC-FLABEL-1.1] Global Attributes with DUT as Server PICS: - FLABEL.C diff --git a/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml b/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml index b6d8c56e82dd55..40a19b37bdc10e 100644 --- a/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml @@ -42,7 +42,7 @@ tests: minValue: 0 maxValue: 65535 - - label: "operate on DUT to change the flow significantly" + - label: "Operate on device to change the flow significantly" cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && FLW.M.FlowChange diff --git a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml index 11c152a1214e4e..8225c69c9bbd1a 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml @@ -39,9 +39,9 @@ tests: Verify the "MaxGroupsPerFabric value" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674543469.443764][19260:19262] CHIP:DMG: } - [1674543469.443889][19260:19262] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 3217277214 - [1674543469.444257][19260:19262] CHIP:TOO: MaxGroupsPerFabric: 4 + [1683797307.084182][38841:38843] CHIP:DMG: } + [1683797307.084220][38841:38843] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 366443848 + [1683797307.084237][38841:38843] CHIP:TOO: MaxGroupsPerFabric: 12 disabled: true - label: | @@ -71,196 +71,301 @@ tests: verification: | Execute the following command in TH to generate the pre-condition to execute this test case: - ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 1, "epochKey0": - "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": - "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = - [1658316948.574561][4039:4044] CHIP:DMG: { - [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), - [1658316948.574632][4039:4044] CHIP:DMG: }, - - Before adding the Groups (0x0001,0x0002) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - [1663071507.364542][23693:23698] CHIP:DMG: WriteClient moving to [ResponseRe] - [1663071507.364603][23693:23698] CHIP:DMG: WriteResponseMessage = - [1663071507.364635][23693:23698] CHIP:DMG: { - [1663071507.364661][23693:23698] CHIP:DMG: AttributeStatusIBs = - [1663071507.364699][23693:23698] CHIP:DMG: [ - [1663071507.364728][23693:23698] CHIP:DMG: AttributeStatusIB = - [1663071507.364768][23693:23698] CHIP:DMG: { - [1663071507.364799][23693:23698] CHIP:DMG: AttributePathIB = - [1663071507.364838][23693:23698] CHIP:DMG: { - [1663071507.364876][23693:23698] CHIP:DMG: Endpoint = 0x0, - [1663071507.364921][23693:23698] CHIP:DMG: Cluster = 0x3f, - [1663071507.364961][23693:23698] CHIP:DMG: Attribute = 0x0000_0000, - [1663071507.365002][23693:23698] CHIP:DMG: } - [1663071507.365044][23693:23698] CHIP:DMG: - [1663071507.365079][23693:23698] CHIP:DMG: StatusIB = - [1663071507.365121][23693:23698] CHIP:DMG: { - [1663071507.365164][23693:23698] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071507.365201][23693:23698] CHIP:DMG: }, - [1663071507.365243][23693:23698] CHIP:DMG: - [1663071507.365275][23693:23698] CHIP:DMG: }, - [1663071507.365320][23693:23698] CHIP:DMG: - [1663071507.365351][23693:23698] CHIP:DMG: AttributeStatusIB = - [1663071507.365385][23693:23698] CHIP:DMG: { - [1663071507.365417][23693:23698] CHIP:DMG: AttributePathIB = - [1663071507.365453][23693:23698] CHIP:DMG: { - [1663071507.365489][23693:23698] CHIP:DMG: Endpoint = 0x0, - [1663071507.365532][23693:23698] CHIP:DMG: Cluster = 0x3f, - [1663071507.365574][23693:23698] CHIP:DMG: Attribute = 0x0000_0000, - [1663071507.365612][23693:23698] CHIP:DMG: ListIndex = Null, - [1663071507.365652][23693:23698] CHIP:DMG: } - [1663071507.365696][23693:23698] CHIP:DMG: - [1663071507.365735][23693:23698] CHIP:DMG: StatusIB = - [1663071507.365773][23693:23698] CHIP:DMG: { - [1663071507.365810][23693:23698] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071507.365846][23693:23698] CHIP:DMG: }, - [1663071507.365883][23693:23698] CHIP:DMG: - [1663071507.365915][23693:23698] CHIP:DMG: }, - [1663071507.365958][23693:23698] CHIP:DMG: - [1663071507.365987][23693:23698] CHIP:DMG: AttributeStatusIB = - [1663071507.366017][23693:23698] CHIP:DMG: { - [1663071507.366047][23693:23698] CHIP:DMG: AttributePathIB = - [1663071507.366082][23693:23698] CHIP:DMG: { - [1663071507.366121][23693:23698] CHIP:DMG: Endpoint = 0x0, - [1663071507.366164][23693:23698] CHIP:DMG: Cluster = 0x3f, - [1663071507.366204][23693:23698] CHIP:DMG: Attribute = 0x0000_0000, - [1663071507.366243][23693:23698] CHIP:DMG: ListIndex = Null, - [1663071507.366280][23693:23698] CHIP:DMG: } - [1663071507.366319][23693:23698] CHIP:DMG: - [1663071507.366355][23693:23698] CHIP:DMG: StatusIB = - [1663071507.366390][23693:23698] CHIP:DMG: { - [1663071507.366428][23693:23698] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071507.366466][23693:23698] CHIP:DMG: }, - - - Before adding the Groups (0x0003,0x0004) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":4, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1674546137.239871][19959:19961] CHIP:DMG: WriteResponseMessage = - [1674546137.239875][19959:19961] CHIP:DMG: { - [1674546137.239877][19959:19961] CHIP:DMG: AttributeStatusIBs = - [1674546137.239882][19959:19961] CHIP:DMG: [ - [1674546137.239885][19959:19961] CHIP:DMG: AttributeStatusIB = - [1674546137.239888][19959:19961] CHIP:DMG: { - [1674546137.239891][19959:19961] CHIP:DMG: AttributePathIB = - [1674546137.239895][19959:19961] CHIP:DMG: { - [1674546137.239898][19959:19961] CHIP:DMG: Endpoint = 0x0, - [1674546137.239901][19959:19961] CHIP:DMG: Cluster = 0x3f, - [1674546137.239905][19959:19961] CHIP:DMG: Attribute = 0x0000_0000, - [1674546137.239908][19959:19961] CHIP:DMG: } - [1674546137.239912][19959:19961] CHIP:DMG: - [1674546137.239915][19959:19961] CHIP:DMG: StatusIB = - [1674546137.239919][19959:19961] CHIP:DMG: { - [1674546137.239922][19959:19961] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546137.239925][19959:19961] CHIP:DMG: }, - [1674546137.239928][19959:19961] CHIP:DMG: - [1674546137.239931][19959:19961] CHIP:DMG: }, - [1674546137.239938][19959:19961] CHIP:DMG: - [1674546137.239940][19959:19961] CHIP:DMG: AttributeStatusIB = - [1674546137.239943][19959:19961] CHIP:DMG: { - [1674546137.239946][19959:19961] CHIP:DMG: AttributePathIB = - [1674546137.239948][19959:19961] CHIP:DMG: { - [1674546137.239951][19959:19961] CHIP:DMG: Endpoint = 0x0, - [1674546137.239955][19959:19961] CHIP:DMG: Cluster = 0x3f, - [1674546137.239959][19959:19961] CHIP:DMG: Attribute = 0x0000_0000, - [1674546137.239962][19959:19961] CHIP:DMG: ListIndex = Null, - [1674546137.239965][19959:19961] CHIP:DMG: } - [1674546137.239970][19959:19961] CHIP:DMG: - [1674546137.239972][19959:19961] CHIP:DMG: StatusIB = - [1674546137.239975][19959:19961] CHIP:DMG: { - [1674546137.239979][19959:19961] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546137.239982][19959:19961] CHIP:DMG: }, - [1674546137.239985][19959:19961] CHIP:DMG: - [1674546137.239988][19959:19961] CHIP:DMG: }, - [1674546137.239994][19959:19961] CHIP:DMG: - [1674546137.239997][19959:19961] CHIP:DMG: AttributeStatusIB = - [1674546137.240000][19959:19961] CHIP:DMG: { - [1674546137.240002][19959:19961] CHIP:DMG: AttributePathIB = - [1674546137.240005][19959:19961] CHIP:DMG: { - [1674546137.240009][19959:19961] CHIP:DMG: Endpoint = 0x0, - [1674546137.240012][19959:19961] CHIP:DMG: Cluster = 0x3f, - [1674546137.240015][19959:19961] CHIP:DMG: Attribute = 0x0000_0000, - [1674546137.240018][19959:19961] CHIP:DMG: ListIndex = Null, - [1674546137.240021][19959:19961] CHIP:DMG: } - [1674546137.240026][19959:19961] CHIP:DMG: - [1674546137.240028][19959:19961] CHIP:DMG: StatusIB = - [1674546137.240033][19959:19961] CHIP:DMG: { - [1674546137.240036][19959:19961] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546137.240039][19959:19961] CHIP:DMG: }, - [1674546137.240042][19959:19961] CHIP:DMG: - [1674546137.240044][19959:19961] CHIP:DMG: }, - [1674546137.240049][19959:19961] CHIP:DMG: - [1674546137.240051][19959:19961] CHIP:DMG: ], - [1674546137.240059][19959:19961] CHIP:DMG: - [1674546137.240062][19959:19961] CHIP:DMG: InteractionModelRevision = 1 - [1674546137.240064][19959:19961] CHIP:DMG: } - - - - - After executing all commands related to the above four groups, execute the below command before adding the Group 0x0007 to check the Resource_Exhausted Condition - - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674546896.141697][20084:20086] CHIP:DMG: WriteResponseMessage = - [1674546896.141700][20084:20086] CHIP:DMG: { - [1674546896.141702][20084:20086] CHIP:DMG: AttributeStatusIBs = - [1674546896.141707][20084:20086] CHIP:DMG: [ - [1674546896.141708][20084:20086] CHIP:DMG: AttributeStatusIB = - [1674546896.141711][20084:20086] CHIP:DMG: { - [1674546896.141713][20084:20086] CHIP:DMG: AttributePathIB = - [1674546896.141716][20084:20086] CHIP:DMG: { - [1674546896.141719][20084:20086] CHIP:DMG: Endpoint = 0x0, - [1674546896.141721][20084:20086] CHIP:DMG: Cluster = 0x3f, - [1674546896.141724][20084:20086] CHIP:DMG: Attribute = 0x0000_0000, - [1674546896.141726][20084:20086] CHIP:DMG: } - [1674546896.141730][20084:20086] CHIP:DMG: - [1674546896.141732][20084:20086] CHIP:DMG: StatusIB = - [1674546896.141734][20084:20086] CHIP:DMG: { - [1674546896.141737][20084:20086] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546896.141739][20084:20086] CHIP:DMG: }, - [1674546896.141742][20084:20086] CHIP:DMG: - [1674546896.141743][20084:20086] CHIP:DMG: }, - [1674546896.141750][20084:20086] CHIP:DMG: - [1674546896.141752][20084:20086] CHIP:DMG: AttributeStatusIB = - [1674546896.141755][20084:20086] CHIP:DMG: { - [1674546896.141758][20084:20086] CHIP:DMG: AttributePathIB = - [1674546896.141760][20084:20086] CHIP:DMG: { - [1674546896.141763][20084:20086] CHIP:DMG: Endpoint = 0x0, - [1674546896.141766][20084:20086] CHIP:DMG: Cluster = 0x3f, - [1674546896.141769][20084:20086] CHIP:DMG: Attribute = 0x0000_0000, - [1674546896.141773][20084:20086] CHIP:DMG: ListIndex = Null, - [1674546896.141776][20084:20086] CHIP:DMG: } - [1674546896.141781][20084:20086] CHIP:DMG: - [1674546896.141783][20084:20086] CHIP:DMG: StatusIB = - [1674546896.141786][20084:20086] CHIP:DMG: { - [1674546896.141789][20084:20086] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546896.141792][20084:20086] CHIP:DMG: }, - [1674546896.141795][20084:20086] CHIP:DMG: - [1674546896.141798][20084:20086] CHIP:DMG: }, - [1674546896.141802][20084:20086] CHIP:DMG: - [1674546896.141805][20084:20086] CHIP:DMG: ], - [1674546896.141811][20084:20086] CHIP:DMG: - [1674546896.141813][20084:20086] CHIP:DMG: InteractionModelRevision = 1 - [1674546896.141816][20084:20086] CHIP:DMG: } + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, + "groupKeySecurityPolicy": 1, "epochKey0": + "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": + "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = + [1658316948.574561][4039:4044] CHIP:DMG: { + [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), + [1658316948.574632][4039:4044] CHIP:DMG: }, + + Before adding the Groups(0x0001 to Maxgroup) execute below command to bind the GroupId with GroupKeySetId . + + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":4, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 5, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":10, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 11, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":12, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683797474.814392][38909:38911] CHIP:DMG: WriteResponseMessage = + [1683797474.814395][38909:38911] CHIP:DMG: { + [1683797474.814398][38909:38911] CHIP:DMG: AttributeStatusIBs = + [1683797474.814403][38909:38911] CHIP:DMG: [ + [1683797474.814405][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814410][38909:38911] CHIP:DMG: { + [1683797474.814414][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814419][38909:38911] CHIP:DMG: { + [1683797474.814424][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814429][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814435][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814441][38909:38911] CHIP:DMG: } + [1683797474.814447][38909:38911] CHIP:DMG: + [1683797474.814451][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814456][38909:38911] CHIP:DMG: { + [1683797474.814466][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814471][38909:38911] CHIP:DMG: }, + [1683797474.814476][38909:38911] CHIP:DMG: + [1683797474.814480][38909:38911] CHIP:DMG: }, + [1683797474.814489][38909:38911] CHIP:DMG: + [1683797474.814493][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814498][38909:38911] CHIP:DMG: { + [1683797474.814501][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814506][38909:38911] CHIP:DMG: { + [1683797474.814510][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814515][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814520][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814527][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814530][38909:38911] CHIP:DMG: } + [1683797474.814541][38909:38911] CHIP:DMG: + [1683797474.814546][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814551][38909:38911] CHIP:DMG: { + [1683797474.814555][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814560][38909:38911] CHIP:DMG: }, + [1683797474.814564][38909:38911] CHIP:DMG: + [1683797474.814567][38909:38911] CHIP:DMG: }, + [1683797474.814576][38909:38911] CHIP:DMG: + [1683797474.814579][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814583][38909:38911] CHIP:DMG: { + [1683797474.814586][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814591][38909:38911] CHIP:DMG: { + [1683797474.814595][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814599][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814604][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814609][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814615][38909:38911] CHIP:DMG: } + [1683797474.814622][38909:38911] CHIP:DMG: + [1683797474.814626][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814630][38909:38911] CHIP:DMG: { + [1683797474.814634][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814639][38909:38911] CHIP:DMG: }, + [1683797474.814644][38909:38911] CHIP:DMG: + [1683797474.814647][38909:38911] CHIP:DMG: }, + [1683797474.814657][38909:38911] CHIP:DMG: + [1683797474.814660][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814665][38909:38911] CHIP:DMG: { + [1683797474.814668][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814675][38909:38911] CHIP:DMG: { + [1683797474.814680][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814683][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814688][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814692][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814696][38909:38911] CHIP:DMG: } + [1683797474.814702][38909:38911] CHIP:DMG: + [1683797474.814706][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814710][38909:38911] CHIP:DMG: { + [1683797474.814715][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814720][38909:38911] CHIP:DMG: }, + [1683797474.814724][38909:38911] CHIP:DMG: + [1683797474.814728][38909:38911] CHIP:DMG: }, + [1683797474.814737][38909:38911] CHIP:DMG: + [1683797474.814741][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814745][38909:38911] CHIP:DMG: { + [1683797474.814748][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814752][38909:38911] CHIP:DMG: { + [1683797474.814757][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814761][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814767][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814771][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814776][38909:38911] CHIP:DMG: } + [1683797474.814782][38909:38911] CHIP:DMG: + [1683797474.814786][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814791][38909:38911] CHIP:DMG: { + [1683797474.814795][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814799][38909:38911] CHIP:DMG: }, + [1683797474.814803][38909:38911] CHIP:DMG: + [1683797474.814808][38909:38911] CHIP:DMG: }, + [1683797474.814817][38909:38911] CHIP:DMG: + [1683797474.814821][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814825][38909:38911] CHIP:DMG: { + [1683797474.814828][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814835][38909:38911] CHIP:DMG: { + [1683797474.814839][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814844][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814868][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814872][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814876][38909:38911] CHIP:DMG: } + [1683797474.814882][38909:38911] CHIP:DMG: + [1683797474.814886][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814892][38909:38911] CHIP:DMG: { + [1683797474.814896][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814901][38909:38911] CHIP:DMG: }, + [1683797474.814906][38909:38911] CHIP:DMG: + [1683797474.814910][38909:38911] CHIP:DMG: }, + [1683797474.814919][38909:38911] CHIP:DMG: + [1683797474.814922][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814927][38909:38911] CHIP:DMG: { + [1683797474.814931][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814935][38909:38911] CHIP:DMG: { + [1683797474.814939][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814944][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814950][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814954][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814958][38909:38911] CHIP:DMG: } + [1683797474.814965][38909:38911] CHIP:DMG: + [1683797474.814969][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814973][38909:38911] CHIP:DMG: { + [1683797474.814978][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814982][38909:38911] CHIP:DMG: }, + [1683797474.814987][38909:38911] CHIP:DMG: + [1683797474.814991][38909:38911] CHIP:DMG: }, + [1683797474.815000][38909:38911] CHIP:DMG: + [1683797474.815003][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815007][38909:38911] CHIP:DMG: { + [1683797474.815011][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815015][38909:38911] CHIP:DMG: { + [1683797474.815019][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815024][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815029][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815033][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815038][38909:38911] CHIP:DMG: } + [1683797474.815045][38909:38911] CHIP:DMG: + [1683797474.815048][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815054][38909:38911] CHIP:DMG: { + [1683797474.815058][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815062][38909:38911] CHIP:DMG: }, + [1683797474.815067][38909:38911] CHIP:DMG: + [1683797474.815071][38909:38911] CHIP:DMG: }, + [1683797474.815080][38909:38911] CHIP:DMG: + [1683797474.815084][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815088][38909:38911] CHIP:DMG: { + [1683797474.815091][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815096][38909:38911] CHIP:DMG: { + [1683797474.815100][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815107][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815112][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815117][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815121][38909:38911] CHIP:DMG: } + [1683797474.815127][38909:38911] CHIP:DMG: + [1683797474.815131][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815135][38909:38911] CHIP:DMG: { + [1683797474.815139][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815143][38909:38911] CHIP:DMG: }, + [1683797474.815148][38909:38911] CHIP:DMG: + [1683797474.815151][38909:38911] CHIP:DMG: }, + [1683797474.815160][38909:38911] CHIP:DMG: + [1683797474.815164][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815168][38909:38911] CHIP:DMG: { + [1683797474.815171][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815177][38909:38911] CHIP:DMG: { + [1683797474.815181][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815186][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815190][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815198][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815202][38909:38911] CHIP:DMG: } + [1683797474.815207][38909:38911] CHIP:DMG: + [1683797474.815211][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815216][38909:38911] CHIP:DMG: { + [1683797474.815220][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815224][38909:38911] CHIP:DMG: }, + [1683797474.815230][38909:38911] CHIP:DMG: + [1683797474.815233][38909:38911] CHIP:DMG: }, + [1683797474.815242][38909:38911] CHIP:DMG: + [1683797474.815245][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815249][38909:38911] CHIP:DMG: { + [1683797474.815252][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815257][38909:38911] CHIP:DMG: { + [1683797474.815262][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815266][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815271][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815275][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815278][38909:38911] CHIP:DMG: } + [1683797474.815285][38909:38911] CHIP:DMG: + [1683797474.815289][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815293][38909:38911] CHIP:DMG: { + [1683797474.815297][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815300][38909:38911] CHIP:DMG: }, + [1683797474.815305][38909:38911] CHIP:DMG: + [1683797474.815308][38909:38911] CHIP:DMG: }, + [1683797474.815317][38909:38911] CHIP:DMG: + [1683797474.815321][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815325][38909:38911] CHIP:DMG: { + [1683797474.815329][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815333][38909:38911] CHIP:DMG: { + [1683797474.815337][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815342][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815346][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815352][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815356][38909:38911] CHIP:DMG: } + [1683797474.815363][38909:38911] CHIP:DMG: + [1683797474.815366][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815370][38909:38911] CHIP:DMG: { + [1683797474.815375][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815379][38909:38911] CHIP:DMG: }, + [1683797474.815383][38909:38911] CHIP:DMG: + [1683797474.815387][38909:38911] CHIP:DMG: }, + [1683797474.815396][38909:38911] CHIP:DMG: + [1683797474.815400][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815404][38909:38911] CHIP:DMG: { + [1683797474.815407][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815411][38909:38911] CHIP:DMG: { + [1683797474.815415][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815419][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815424][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815428][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815432][38909:38911] CHIP:DMG: } + [1683797474.815439][38909:38911] CHIP:DMG: + [1683797474.815443][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815448][38909:38911] CHIP:DMG: { + [1683797474.815452][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815455][38909:38911] CHIP:DMG: }, + [1683797474.815460][38909:38911] CHIP:DMG: + [1683797474.815463][38909:38911] CHIP:DMG: }, + [1683797474.815469][38909:38911] CHIP:DMG: + [1683797474.815473][38909:38911] CHIP:DMG: ], + [1683797474.815508][38909:38911] CHIP:DMG: + [1683797474.815512][38909:38911] CHIP:DMG: InteractionModelRevision = 1 + [1683797474.815515][38909:38911] CHIP:DMG: } + + Before adding the Groups(MaxGroup+1) execute below command which is used to check the Resource_Exhausted Condition + + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 13, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683799348.785746][39651:39653] CHIP:DMG: WriteResponseMessage = + [1683799348.785751][39651:39653] CHIP:DMG: { + [1683799348.785755][39651:39653] CHIP:DMG: AttributeStatusIBs = + [1683799348.785763][39651:39653] CHIP:DMG: [ + [1683799348.785767][39651:39653] CHIP:DMG: AttributeStatusIB = + [1683799348.785771][39651:39653] CHIP:DMG: { + [1683799348.785775][39651:39653] CHIP:DMG: AttributePathIB = + [1683799348.785780][39651:39653] CHIP:DMG: { + [1683799348.785785][39651:39653] CHIP:DMG: Endpoint = 0x0, + [1683799348.785789][39651:39653] CHIP:DMG: Cluster = 0x3f, + [1683799348.785794][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, + [1683799348.785798][39651:39653] CHIP:DMG: } + [1683799348.785804][39651:39653] CHIP:DMG: + [1683799348.785811][39651:39653] CHIP:DMG: StatusIB = + [1683799348.785816][39651:39653] CHIP:DMG: { + [1683799348.785821][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), + [1683799348.785825][39651:39653] CHIP:DMG: }, + [1683799348.785831][39651:39653] CHIP:DMG: + [1683799348.785835][39651:39653] CHIP:DMG: }, + [1683799348.785844][39651:39653] CHIP:DMG: + [1683799348.785848][39651:39653] CHIP:DMG: AttributeStatusIB = + [1683799348.785852][39651:39653] CHIP:DMG: { + [1683799348.785856][39651:39653] CHIP:DMG: AttributePathIB = + [1683799348.785860][39651:39653] CHIP:DMG: { + [1683799348.785865][39651:39653] CHIP:DMG: Endpoint = 0x0, + [1683799348.785869][39651:39653] CHIP:DMG: Cluster = 0x3f, + [1683799348.785874][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, + [1683799348.785878][39651:39653] CHIP:DMG: ListIndex = Null, + [1683799348.785882][39651:39653] CHIP:DMG: } + [1683799348.785889][39651:39653] CHIP:DMG: + [1683799348.785894][39651:39653] CHIP:DMG: StatusIB = + [1683799348.785898][39651:39653] CHIP:DMG: { + [1683799348.785904][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), + [1683799348.785909][39651:39653] CHIP:DMG: }, + [1683799348.785914][39651:39653] CHIP:DMG: + [1683799348.785918][39651:39653] CHIP:DMG: }, + [1683799348.785924][39651:39653] CHIP:DMG: + [1683799348.785927][39651:39653] CHIP:DMG: ], + [1683799348.785936][39651:39653] CHIP:DMG: + [1683799348.785940][39651:39653] CHIP:DMG: InteractionModelRevision = 1 + [1683799348.785943][39651:39653] CHIP:DMG: } disabled: true - label: @@ -356,7 +461,6 @@ tests: Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: - [1653484116.857523][11289:11294] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1653484116.857675][11289:11294] CHIP:TOO: AddGroupResponse: { [1653484116.857739][11289:11294] CHIP:TOO: status: 0 @@ -367,13 +471,91 @@ tests: Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: - [1674546345.099827][19986:19988] CHIP:DMG: }, - [1674546345.099884][19986:19988] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0004 Command=0x0000_0000 [1674546345.099915][19986:19988] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000 [1674546345.099956][19986:19988] CHIP:TOO: AddGroupResponse: { [1674546345.099972][19986:19988] CHIP:TOO: status: 0 [1674546345.099983][19986:19988] CHIP:TOO: groupID: 4 [1674546345.099991][19986:19988] CHIP:TOO: } + + ./chip-tool groups add-group 0x0005 grp5 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683797532.820818][38963:38965] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683797532.820829][38963:38965] CHIP:TOO: AddGroupResponse: { + [1683797532.820834][38963:38965] CHIP:TOO: status: 0 + [1683797532.820836][38963:38965] CHIP:TOO: groupID: 5 + [1683797532.820839][38963:38965] CHIP:TOO: } + + ./chip-tool groups add-group 0x0006 grp6 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798249.880860][39235:39237] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798249.880880][39235:39237] CHIP:TOO: AddGroupResponse: { + [1683798249.880886][39235:39237] CHIP:TOO: status: 0 + [1683798249.880889][39235:39237] CHIP:TOO: groupID: 6 + [1683798249.880894][39235:39237] CHIP:TOO: } + + ./chip-tool groups add-group 0x0007 grp7 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798272.917114][39258:39260] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798272.917127][39258:39260] CHIP:TOO: AddGroupResponse: { + [1683798272.917132][39258:39260] CHIP:TOO: status: 0 + [1683798272.917134][39258:39260] CHIP:TOO: groupID: 7 + [1683798272.917137][39258:39260] CHIP:TOO: } + + ./chip-tool groups add-group 0x0008 grp8 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798280.635111][39261:39263] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798280.635124][39261:39263] CHIP:TOO: AddGroupResponse: { + [1683798280.635129][39261:39263] CHIP:TOO: status: 0 + [1683798280.635132][39261:39263] CHIP:TOO: groupID: 8 + [1683798280.635134][39261:39263] CHIP:TOO: } + + ./chip-tool groups add-group 0x0009 grp9 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798286.442492][39265:39267] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798286.442506][39265:39267] CHIP:TOO: AddGroupResponse: { + [1683798286.442511][39265:39267] CHIP:TOO: status: 0 + [1683798286.442515][39265:39267] CHIP:TOO: groupID: 9 + [1683798286.442519][39265:39267] CHIP:TOO: } + + ./chip-tool groups add-group 0x000a grp10 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798294.910019][39276:39278] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798294.910031][39276:39278] CHIP:TOO: AddGroupResponse: { + [1683798294.910038][39276:39278] CHIP:TOO: status: 0 + [1683798294.910041][39276:39278] CHIP:TOO: groupID: 10 + [1683798294.910044][39276:39278] CHIP:TOO: } + + ./chip-tool groups add-group 0x000b grp11 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798300.856661][39279:39281] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798300.856672][39279:39281] CHIP:TOO: AddGroupResponse: { + [1683798300.856676][39279:39281] CHIP:TOO: status: 0 + [1683798300.856679][39279:39281] CHIP:TOO: groupID: 11 + [1683798300.856681][39279:39281] CHIP:TOO: } + + ./chip-tool groups add-group 0x000c grp12 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798309.207611][39284:39286] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798309.207625][39284:39286] CHIP:TOO: AddGroupResponse: { + [1683798309.207631][39284:39286] CHIP:TOO: status: 0 + [1683798309.207635][39284:39286] CHIP:TOO: groupID: 12 + [1683798309.207639][39284:39286] CHIP:TOO: } disabled: true - label: @@ -385,39 +567,93 @@ tests: Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674543471.793316][19288:19290] CHIP:DMG: } - [1674543471.793466][19288:19290] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3217277219 - [1674546505.532342][20008:20010] CHIP:DMG: } - [1674546505.533120][20008:20010] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1241587620 - [1674546505.533150][20008:20010] CHIP:TOO: GroupTable: 4 entries - [1674546505.533171][20008:20010] CHIP:TOO: [1]: { - [1674546505.533179][20008:20010] CHIP:TOO: GroupId: 1 - [1674546505.533184][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533190][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533198][20008:20010] CHIP:TOO: GroupName: grp1 - [1674546505.533202][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533207][20008:20010] CHIP:TOO: } - [1674546505.533212][20008:20010] CHIP:TOO: [2]: { - [1674546505.533215][20008:20010] CHIP:TOO: GroupId: 2 - [1674546505.533217][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533220][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533224][20008:20010] CHIP:TOO: GroupName: grp2 - [1674546505.533228][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533231][20008:20010] CHIP:TOO: } - [1674546505.533238][20008:20010] CHIP:TOO: [3]: { - [1674546505.533241][20008:20010] CHIP:TOO: GroupId: 3 - [1674546505.533245][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533250][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533254][20008:20010] CHIP:TOO: GroupName: grp3 - [1674546505.533258][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533262][20008:20010] CHIP:TOO: } - [1674546505.533269][20008:20010] CHIP:TOO: [4]: { - [1674546505.533272][20008:20010] CHIP:TOO: GroupId: 4 - [1674546505.533277][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533282][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533286][20008:20010] CHIP:TOO: GroupName: grp4 - [1674546505.533289][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533292][20008:20010] CHIP:TOO: } + [1683799060.033379][39543:39545] CHIP:DMG: } + [1683799060.033604][39543:39545] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443861 + [1683799060.033654][39543:39545] CHIP:TOO: GroupTable: 12 entries + [1683799060.033666][39543:39545] CHIP:TOO: [1]: { + [1683799060.033670][39543:39545] CHIP:TOO: GroupId: 1 + [1683799060.033674][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033678][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033682][39543:39545] CHIP:TOO: GroupName: grp1 + [1683799060.033685][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033688][39543:39545] CHIP:TOO: } + [1683799060.033693][39543:39545] CHIP:TOO: [2]: { + [1683799060.033696][39543:39545] CHIP:TOO: GroupId: 2 + [1683799060.033700][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033704][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033707][39543:39545] CHIP:TOO: GroupName: grp2 + [1683799060.033710][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033711][39543:39545] CHIP:TOO: } + [1683799060.033717][39543:39545] CHIP:TOO: [3]: { + [1683799060.033719][39543:39545] CHIP:TOO: GroupId: 3 + [1683799060.033722][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033726][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033728][39543:39545] CHIP:TOO: GroupName: grp3 + [1683799060.033730][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033733][39543:39545] CHIP:TOO: } + [1683799060.033737][39543:39545] CHIP:TOO: [4]: { + [1683799060.033740][39543:39545] CHIP:TOO: GroupId: 4 + [1683799060.033743][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033746][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033749][39543:39545] CHIP:TOO: GroupName: grp4 + [1683799060.033752][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033754][39543:39545] CHIP:TOO: } + [1683799060.033759][39543:39545] CHIP:TOO: [5]: { + [1683799060.033762][39543:39545] CHIP:TOO: GroupId: 5 + [1683799060.033765][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033769][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033771][39543:39545] CHIP:TOO: GroupName: grp5 + [1683799060.033774][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033777][39543:39545] CHIP:TOO: } + [1683799060.033783][39543:39545] CHIP:TOO: [6]: { + [1683799060.033785][39543:39545] CHIP:TOO: GroupId: 6 + [1683799060.033788][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033792][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033795][39543:39545] CHIP:TOO: GroupName: grp6 + [1683799060.033798][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033801][39543:39545] CHIP:TOO: } + [1683799060.033806][39543:39545] CHIP:TOO: [7]: { + [1683799060.033809][39543:39545] CHIP:TOO: GroupId: 7 + [1683799060.033813][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033816][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033819][39543:39545] CHIP:TOO: GroupName: grp7 + [1683799060.033822][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033824][39543:39545] CHIP:TOO: } + [1683799060.033830][39543:39545] CHIP:TOO: [8]: { + [1683799060.033832][39543:39545] CHIP:TOO: GroupId: 8 + [1683799060.033835][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033839][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033841][39543:39545] CHIP:TOO: GroupName: grp8 + [1683799060.033843][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033845][39543:39545] CHIP:TOO: } + [1683799060.033850][39543:39545] CHIP:TOO: [9]: { + [1683799060.033853][39543:39545] CHIP:TOO: GroupId: 9 + [1683799060.033855][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033858][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033861][39543:39545] CHIP:TOO: GroupName: grp9 + [1683799060.033863][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033866][39543:39545] CHIP:TOO: } + [1683799060.033871][39543:39545] CHIP:TOO: [10]: { + [1683799060.033874][39543:39545] CHIP:TOO: GroupId: 10 + [1683799060.033877][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033881][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033884][39543:39545] CHIP:TOO: GroupName: grp10 + [1683799060.033886][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033889][39543:39545] CHIP:TOO: } + [1683799060.033894][39543:39545] CHIP:TOO: [11]: { + [1683799060.033897][39543:39545] CHIP:TOO: GroupId: 11 + [1683799060.033900][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033903][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033905][39543:39545] CHIP:TOO: GroupName: grp11 + [1683799060.033907][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033910][39543:39545] CHIP:TOO: } + [1683799060.033915][39543:39545] CHIP:TOO: [12]: { + [1683799060.033918][39543:39545] CHIP:TOO: GroupId: 12 + [1683799060.033922][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033925][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033928][39543:39545] CHIP:TOO: GroupName: grp12 + [1683799060.033930][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033932][39543:39545] CHIP:TOO: } disabled: true - label: @@ -425,17 +661,15 @@ tests: (maxgroups+1)" PICS: G.S.C00.Rsp verification: | - ./chip-tool groups add-group 0x0007 grp7 1 0 + ./chip-tool groups add-group 0x000d grp13 1 0 Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674547293.989280][20162:20164] CHIP:DMG: }, - [1674547293.989297][20162:20164] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0004 Command=0x0000_0000 - [1674547293.989307][20162:20164] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 - [1674547293.989316][20162:20164] CHIP:TOO: AddGroupResponse: { - [1674547293.989324][20162:20164] CHIP:TOO: status: 137 - [1674547293.989328][20162:20164] CHIP:TOO: groupID: 7 - [1674547293.989332][20162:20164] CHIP:TOO: } + [1683799371.472148][39657:39659] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683799371.472159][39657:39659] CHIP:TOO: AddGroupResponse: { + [1683799371.472163][39657:39659] CHIP:TOO: status: 137 + [1683799371.472166][39657:39659] CHIP:TOO: groupID: 13 + [1683799371.472170][39657:39659] CHIP:TOO: } disabled: true - label: @@ -445,38 +679,94 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674546676.645814][20037:20039] CHIP:DMG: } - [1674546676.646502][20037:20039] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1241587622 - [1674546676.646599][20037:20039] CHIP:TOO: GroupTable: 4 entries - [1674546676.646644][20037:20039] CHIP:TOO: [1]: { - [1674546676.646666][20037:20039] CHIP:TOO: GroupId: 1 - [1674546676.646682][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646698][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646710][20037:20039] CHIP:TOO: GroupName: grp1 - [1674546676.646722][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646733][20037:20039] CHIP:TOO: } - [1674546676.646755][20037:20039] CHIP:TOO: [2]: { - [1674546676.646764][20037:20039] CHIP:TOO: GroupId: 2 - [1674546676.646776][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646789][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646799][20037:20039] CHIP:TOO: GroupName: grp2 - [1674546676.646809][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646819][20037:20039] CHIP:TOO: } - [1674546676.646839][20037:20039] CHIP:TOO: [3]: { - [1674546676.646849][20037:20039] CHIP:TOO: GroupId: 3 - [1674546676.646860][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646873][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646884][20037:20039] CHIP:TOO: GroupName: grp3 - [1674546676.646894][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646903][20037:20039] CHIP:TOO: } - [1674546676.646922][20037:20039] CHIP:TOO: [4]: { - [1674546676.646932][20037:20039] CHIP:TOO: GroupId: 4 - [1674546676.646944][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646956][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646967][20037:20039] CHIP:TOO: GroupName: grp4 - [1674546676.646976][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646985][20037:20039] CHIP:TOO: } + Verify the GroupTable does not include an entry for GroupId (maxgroups+1) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683799439.271618][39702:39704] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 + [1683799439.271671][39702:39704] CHIP:TOO: GroupTable: 12 entries + [1683799439.271688][39702:39704] CHIP:TOO: [1]: { + [1683799439.271692][39702:39704] CHIP:TOO: GroupId: 1 + [1683799439.271698][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271704][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271709][39702:39704] CHIP:TOO: GroupName: grp1 + [1683799439.271714][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271718][39702:39704] CHIP:TOO: } + [1683799439.271727][39702:39704] CHIP:TOO: [2]: { + [1683799439.271732][39702:39704] CHIP:TOO: GroupId: 2 + [1683799439.271737][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271742][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271746][39702:39704] CHIP:TOO: GroupName: grp2 + [1683799439.271750][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271754][39702:39704] CHIP:TOO: } + [1683799439.271762][39702:39704] CHIP:TOO: [3]: { + [1683799439.271765][39702:39704] CHIP:TOO: GroupId: 3 + [1683799439.271770][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271775][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271779][39702:39704] CHIP:TOO: GroupName: grp3 + [1683799439.271782][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271786][39702:39704] CHIP:TOO: } + [1683799439.271794][39702:39704] CHIP:TOO: [4]: { + [1683799439.271798][39702:39704] CHIP:TOO: GroupId: 4 + [1683799439.271803][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271808][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271812][39702:39704] CHIP:TOO: GroupName: grp4 + [1683799439.271816][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271820][39702:39704] CHIP:TOO: } + [1683799439.271827][39702:39704] CHIP:TOO: [5]: { + [1683799439.271831][39702:39704] CHIP:TOO: GroupId: 5 + [1683799439.271836][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271841][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271845][39702:39704] CHIP:TOO: GroupName: grp5 + [1683799439.271849][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271853][39702:39704] CHIP:TOO: } + [1683799439.271861][39702:39704] CHIP:TOO: [6]: { + [1683799439.271865][39702:39704] CHIP:TOO: GroupId: 6 + [1683799439.271870][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271874][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271878][39702:39704] CHIP:TOO: GroupName: grp6 + [1683799439.271882][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271886][39702:39704] CHIP:TOO: } + [1683799439.271893][39702:39704] CHIP:TOO: [7]: { + [1683799439.271897][39702:39704] CHIP:TOO: GroupId: 7 + [1683799439.271902][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271907][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271911][39702:39704] CHIP:TOO: GroupName: grp7 + [1683799439.271915][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271919][39702:39704] CHIP:TOO: } + [1683799439.271927][39702:39704] CHIP:TOO: [8]: { + [1683799439.271930][39702:39704] CHIP:TOO: GroupId: 8 + [1683799439.271935][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271940][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271945][39702:39704] CHIP:TOO: GroupName: grp8 + [1683799439.271949][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271952][39702:39704] CHIP:TOO: } + [1683799439.271960][39702:39704] CHIP:TOO: [9]: { + [1683799439.271964][39702:39704] CHIP:TOO: GroupId: 9 + [1683799439.271969][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271974][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271978][39702:39704] CHIP:TOO: GroupName: grp9 + [1683799439.271982][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271985][39702:39704] CHIP:TOO: } + [1683799439.271993][39702:39704] CHIP:TOO: [10]: { + [1683799439.271997][39702:39704] CHIP:TOO: GroupId: 10 + [1683799439.272002][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.272007][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.272011][39702:39704] CHIP:TOO: GroupName: grp10 + [1683799439.272016][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.272019][39702:39704] CHIP:TOO: } + [1683799439.272026][39702:39704] CHIP:TOO: [11]: { + [1683799439.272030][39702:39704] CHIP:TOO: GroupId: 11 + [1683799439.272035][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.272040][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.272044][39702:39704] CHIP:TOO: GroupName: grp11 + [1683799439.272048][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.272051][39702:39704] CHIP:TOO: } + [1683799439.272059][39702:39704] CHIP:TOO: [12]: { + [1683799439.272063][39702:39704] CHIP:TOO: GroupId: 12 + [1683799439.272067][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.272072][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.272076][39702:39704] CHIP:TOO: GroupName: grp12 + [1683799439.272080][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.272083][39702:39704] CHIP:TOO: } disabled: true - label: @@ -585,32 +875,88 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log below is the sample log provided for the raspi platform: - - [1674550642.445157][20620:20622] CHIP:DMG: } - [1674550642.445302][20620:20622] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 2738113270 - [1674550642.445326][20620:20622] CHIP:TOO: GroupTable: 3 entries - [1674550642.445342][20620:20622] CHIP:TOO: [1]: { - [1674550642.445348][20620:20622] CHIP:TOO: GroupId: 2 - [1674550642.445352][20620:20622] CHIP:TOO: Endpoints: 1 entries - [1674550642.445356][20620:20622] CHIP:TOO: [1]: 0 - [1674550642.445360][20620:20622] CHIP:TOO: GroupName: grp2 - [1674550642.445363][20620:20622] CHIP:TOO: FabricIndex: 1 - [1674550642.445366][20620:20622] CHIP:TOO: } - [1674550642.445371][20620:20622] CHIP:TOO: [2]: { - [1674550642.445374][20620:20622] CHIP:TOO: GroupId: 3 - [1674550642.445377][20620:20622] CHIP:TOO: Endpoints: 1 entries - [1674550642.445380][20620:20622] CHIP:TOO: [1]: 0 - [1674550642.445382][20620:20622] CHIP:TOO: GroupName: grp3 - [1674550642.445385][20620:20622] CHIP:TOO: FabricIndex: 1 - [1674550642.445387][20620:20622] CHIP:TOO: } - [1674550642.445393][20620:20622] CHIP:TOO: [3]: { - [1674550642.445395][20620:20622] CHIP:TOO: GroupId: 4 - [1674550642.445398][20620:20622] CHIP:TOO: Endpoints: 1 entries - [1674550642.445401][20620:20622] CHIP:TOO: [1]: 0 - [1674550642.445404][20620:20622] CHIP:TOO: GroupName: grp4 - [1674550642.445407][20620:20622] CHIP:TOO: FabricIndex: 1 - [1674550642.445409][20620:20622] CHIP:TOO: } + Verify that Grouptable not contains GroupId 0X0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683800704.469297][40300:40302] CHIP:DMG: } + [1683800704.469495][40300:40302] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 + [1683800704.469940][40300:40302] CHIP:TOO: GroupTable: 11 entries + [1683800704.469966][40300:40302] CHIP:TOO: [1]: { + [1683800704.469973][40300:40302] CHIP:TOO: GroupId: 2 + [1683800704.469977][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.469986][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.469993][40300:40302] CHIP:TOO: GroupName: grp2 + [1683800704.469996][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.469998][40300:40302] CHIP:TOO: } + [1683800704.470004][40300:40302] CHIP:TOO: [2]: { + [1683800704.470007][40300:40302] CHIP:TOO: GroupId: 3 + [1683800704.470010][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470013][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470016][40300:40302] CHIP:TOO: GroupName: grp3 + [1683800704.470018][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470021][40300:40302] CHIP:TOO: } + [1683800704.470026][40300:40302] CHIP:TOO: [3]: { + [1683800704.470028][40300:40302] CHIP:TOO: GroupId: 4 + [1683800704.470031][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470035][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470038][40300:40302] CHIP:TOO: GroupName: grp4 + [1683800704.470040][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470042][40300:40302] CHIP:TOO: } + [1683800704.470047][40300:40302] CHIP:TOO: [4]: { + [1683800704.470050][40300:40302] CHIP:TOO: GroupId: 5 + [1683800704.470052][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470056][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470058][40300:40302] CHIP:TOO: GroupName: grp5 + [1683800704.470061][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470064][40300:40302] CHIP:TOO: } + [1683800704.470069][40300:40302] CHIP:TOO: [5]: { + [1683800704.470071][40300:40302] CHIP:TOO: GroupId: 6 + [1683800704.470075][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470078][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470081][40300:40302] CHIP:TOO: GroupName: grp6 + [1683800704.470083][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470085][40300:40302] CHIP:TOO: } + [1683800704.470091][40300:40302] CHIP:TOO: [6]: { + [1683800704.470094][40300:40302] CHIP:TOO: GroupId: 7 + [1683800704.470097][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470100][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470103][40300:40302] CHIP:TOO: GroupName: grp7 + [1683800704.470106][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470108][40300:40302] CHIP:TOO: } + [1683800704.470112][40300:40302] CHIP:TOO: [7]: { + [1683800704.470115][40300:40302] CHIP:TOO: GroupId: 8 + [1683800704.470117][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470121][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470123][40300:40302] CHIP:TOO: GroupName: grp8 + [1683800704.470126][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470128][40300:40302] CHIP:TOO: } + [1683800704.470134][40300:40302] CHIP:TOO: [8]: { + [1683800704.470136][40300:40302] CHIP:TOO: GroupId: 9 + [1683800704.470139][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470142][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470145][40300:40302] CHIP:TOO: GroupName: grp9 + [1683800704.470148][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470150][40300:40302] CHIP:TOO: } + [1683800704.470155][40300:40302] CHIP:TOO: [9]: { + [1683800704.470157][40300:40302] CHIP:TOO: GroupId: 10 + [1683800704.470161][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470164][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470168][40300:40302] CHIP:TOO: GroupName: grp10 + [1683800704.470170][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470172][40300:40302] CHIP:TOO: } + [1683800704.470177][40300:40302] CHIP:TOO: [10]: { + [1683800704.470180][40300:40302] CHIP:TOO: GroupId: 11 + [1683800704.470183][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470187][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470189][40300:40302] CHIP:TOO: GroupName: grp11 + [1683800704.470192][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470195][40300:40302] CHIP:TOO: } + [1683800704.470200][40300:40302] CHIP:TOO: [11]: { + [1683800704.470203][40300:40302] CHIP:TOO: GroupId: 12 + [1683800704.470206][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470210][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470212][40300:40302] CHIP:TOO: GroupName: grp12 + [1683800704.470214][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470217][40300:40302] CHIP:TOO: } disabled: true - label: @@ -651,33 +997,88 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - 1674550693.202331][20637:20639] CHIP:DMG: } - [1674550693.202481][20637:20639] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 2738113270 - [1674550693.202503][20637:20639] CHIP:TOO: GroupTable: 3 entries - [1674550693.202517][20637:20639] CHIP:TOO: [1]: { - [1674550693.202525][20637:20639] CHIP:TOO: GroupId: 2 - [1674550693.202530][20637:20639] CHIP:TOO: Endpoints: 1 entries - [1674550693.202536][20637:20639] CHIP:TOO: [1]: 0 - [1674550693.202541][20637:20639] CHIP:TOO: GroupName: grp2 - [1674550693.202544][20637:20639] CHIP:TOO: FabricIndex: 1 - [1674550693.202547][20637:20639] CHIP:TOO: } - [1674550693.202554][20637:20639] CHIP:TOO: [2]: { - [1674550693.202558][20637:20639] CHIP:TOO: GroupId: 3 - [1674550693.202562][20637:20639] CHIP:TOO: Endpoints: 1 entries - [1674550693.202567][20637:20639] CHIP:TOO: [1]: 0 - [1674550693.202570][20637:20639] CHIP:TOO: GroupName: grp3 - [1674550693.202572][20637:20639] CHIP:TOO: FabricIndex: 1 - [1674550693.202574][20637:20639] CHIP:TOO: } - [1674550693.202580][20637:20639] CHIP:TOO: [3]: { - [1674550693.202582][20637:20639] CHIP:TOO: GroupId: 4 - [1674550693.202586][20637:20639] CHIP:TOO: Endpoints: 1 entries - [1674550693.202591][20637:20639] CHIP:TOO: [1]: 0 - [1674550693.202595][20637:20639] CHIP:TOO: GroupName: grp4 - [1674550693.202599][20637:20639] CHIP:TOO: FabricIndex: 1 - [1674550693.202602][20637:20639] CHIP:TOO: } + Verify that Grouptable not contains GroupId 0X0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683800854.535383][40352:40354] CHIP:DMG: } + [1683800854.535580][40352:40354] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 + [1683800854.535627][40352:40354] CHIP:TOO: GroupTable: 11 entries + [1683800854.535654][40352:40354] CHIP:TOO: [1]: { + [1683800854.535662][40352:40354] CHIP:TOO: GroupId: 2 + [1683800854.535667][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535671][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535676][40352:40354] CHIP:TOO: GroupName: grp2 + [1683800854.535679][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535682][40352:40354] CHIP:TOO: } + [1683800854.535688][40352:40354] CHIP:TOO: [2]: { + [1683800854.535693][40352:40354] CHIP:TOO: GroupId: 3 + [1683800854.535695][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535698][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535701][40352:40354] CHIP:TOO: GroupName: grp3 + [1683800854.535704][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535706][40352:40354] CHIP:TOO: } + [1683800854.535711][40352:40354] CHIP:TOO: [3]: { + [1683800854.535714][40352:40354] CHIP:TOO: GroupId: 4 + [1683800854.535717][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535720][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535723][40352:40354] CHIP:TOO: GroupName: grp4 + [1683800854.535727][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535728][40352:40354] CHIP:TOO: } + [1683800854.535733][40352:40354] CHIP:TOO: [4]: { + [1683800854.535735][40352:40354] CHIP:TOO: GroupId: 5 + [1683800854.535738][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535741][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535744][40352:40354] CHIP:TOO: GroupName: grp5 + [1683800854.535747][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535750][40352:40354] CHIP:TOO: } + [1683800854.535755][40352:40354] CHIP:TOO: [5]: { + [1683800854.535757][40352:40354] CHIP:TOO: GroupId: 6 + [1683800854.535760][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535763][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535765][40352:40354] CHIP:TOO: GroupName: grp6 + [1683800854.535768][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535770][40352:40354] CHIP:TOO: } + [1683800854.535775][40352:40354] CHIP:TOO: [6]: { + [1683800854.535778][40352:40354] CHIP:TOO: GroupId: 7 + [1683800854.535781][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535785][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535788][40352:40354] CHIP:TOO: GroupName: grp7 + [1683800854.535790][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535793][40352:40354] CHIP:TOO: } + [1683800854.535798][40352:40354] CHIP:TOO: [7]: { + [1683800854.535801][40352:40354] CHIP:TOO: GroupId: 8 + [1683800854.535804][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535807][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535809][40352:40354] CHIP:TOO: GroupName: grp8 + [1683800854.535812][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535814][40352:40354] CHIP:TOO: } + [1683800854.535819][40352:40354] CHIP:TOO: [8]: { + [1683800854.535822][40352:40354] CHIP:TOO: GroupId: 9 + [1683800854.535825][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535828][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535831][40352:40354] CHIP:TOO: GroupName: grp9 + [1683800854.535834][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535835][40352:40354] CHIP:TOO: } + [1683800854.535841][40352:40354] CHIP:TOO: [9]: { + [1683800854.535843][40352:40354] CHIP:TOO: GroupId: 10 + [1683800854.535847][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535850][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535854][40352:40354] CHIP:TOO: GroupName: grp10 + [1683800854.535857][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535859][40352:40354] CHIP:TOO: } + [1683800854.535864][40352:40354] CHIP:TOO: [10]: { + [1683800854.535866][40352:40354] CHIP:TOO: GroupId: 11 + [1683800854.535870][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535873][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535876][40352:40354] CHIP:TOO: GroupName: grp11 + [1683800854.535879][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535881][40352:40354] CHIP:TOO: } + [1683800854.535886][40352:40354] CHIP:TOO: [11]: { + [1683800854.535889][40352:40354] CHIP:TOO: GroupId: 12 + [1683800854.535893][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535896][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535899][40352:40354] CHIP:TOO: GroupName: grp12 + [1683800854.535901][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535903][40352:40354] CHIP:TOO: } disabled: true - label: "TH sends RemoveAllGroups command to DUT as unicast method" @@ -719,7 +1120,6 @@ tests: Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1656332191.739327][27032:27037] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3761602970 [1656332191.739391][27032:27037] CHIP:TOO: GroupTable: 0 entries disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml index 5d28c8daa6eb8d..1c33ac64ae7b4c 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml @@ -39,10 +39,9 @@ tests: Verify the "MaxGroupsPerFabric value" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1674550919.106409][20702:20704] CHIP:DMG: } - [1674550919.106442][20702:20704] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 1314349257 - [1674550919.106455][20702:20704] CHIP:TOO: MaxGroupsPerFabric: 4 + [1683802556.948465][41067:41069] CHIP:DMG: } + [1683802556.948507][41067:41069] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 1698601848 + [1683802556.948520][41067:41069] CHIP:TOO: MaxGroupsPerFabric: 12 disabled: true - label: | @@ -74,28 +73,26 @@ tests: GroupKeyMap attribute list on GroupKeyManagement cluster with the values provided in the above steps verification: | - Execute the following command in TH to generate the pre-condition to execute this test case: - + Execute the following command in TH to generate the pre-condition step : ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 0, "epochKey0": + "groupKeySecurityPolicy": 1, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 - Verify the "status is success" on the TH(Chip-tool) Log: + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = [1658316948.574561][4039:4044] CHIP:DMG: { [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), [1658316948.574632][4039:4044] CHIP:DMG: }, - Before adding the Groups (0x0002,0x0003) execute this command + Before adding the Groups by AddGroup execute below command ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 - - Verify the status is success on the TH Log: + Verify the "status is success" on the TH Log and below is the sample log provided for the raspi platform: [1662655615.539611][229172:229177] CHIP:DMG: AttributeStatusIB = [1662655615.539623][229172:229177] CHIP:DMG: { @@ -129,75 +126,246 @@ tests: [1662655615.539904][229172:229177] CHIP:DMG: status = 0x00 (SUCCESS), [1662655615.539910][229172:229177] CHIP:DMG: }, + Before adding the Groups(0x0006 to Maxgroup) by AddGroupIfIdentifying command execute this command - Before adding the Groups (0x0006,0x0007) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1,"fabricIndex": 1}]' 1 0 - - - Verify the "status is success" on the TH(Chip-tool) Log: - - [1663071815.843582][23720:23725] CHIP:DMG: WriteClient moving to [ResponseRe] - [1663071815.843667][23720:23725] CHIP:DMG: WriteResponseMessage = - [1663071815.843695][23720:23725] CHIP:DMG: { - [1663071815.843718][23720:23725] CHIP:DMG: AttributeStatusIBs = - [1663071815.843750][23720:23725] CHIP:DMG: [ - [1663071815.843775][23720:23725] CHIP:DMG: AttributeStatusIB = - [1663071815.843809][23720:23725] CHIP:DMG: { - [1663071815.843838][23720:23725] CHIP:DMG: AttributePathIB = - [1663071815.843874][23720:23725] CHIP:DMG: { - [1663071815.843909][23720:23725] CHIP:DMG: Endpoint = 0x0, - [1663071815.843947][23720:23725] CHIP:DMG: Cluster = 0x3f, - [1663071815.843985][23720:23725] CHIP:DMG: Attribute = 0x0000_0000, - [1663071815.844018][23720:23725] CHIP:DMG: } - [1663071815.844058][23720:23725] CHIP:DMG: - [1663071815.844089][23720:23725] CHIP:DMG: StatusIB = - [1663071815.844125][23720:23725] CHIP:DMG: { - [1663071815.844159][23720:23725] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071815.844192][23720:23725] CHIP:DMG: }, - [1663071815.844227][23720:23725] CHIP:DMG: - [1663071815.844257][23720:23725] CHIP:DMG: }, - [1663071815.844295][23720:23725] CHIP:DMG: - [1663071815.844322][23720:23725] CHIP:DMG: AttributeStatusIB = - [1663071815.844352][23720:23725] CHIP:DMG: { - [1663071815.844380][23720:23725] CHIP:DMG: AttributePathIB = - [1663071815.844412][23720:23725] CHIP:DMG: { - [1663071815.844445][23720:23725] CHIP:DMG: Endpoint = 0x0, - [1663071815.844482][23720:23725] CHIP:DMG: Cluster = 0x3f, - [1663071815.844518][23720:23725] CHIP:DMG: Attribute = 0x0000_0000, - [1663071815.844555][23720:23725] CHIP:DMG: ListIndex = Null, - [1663071815.844587][23720:23725] CHIP:DMG: } - [1663071815.844623][23720:23725] CHIP:DMG: - [1663071815.844657][23720:23725] CHIP:DMG: StatusIB = - [1663071815.844691][23720:23725] CHIP:DMG: { - [1663071815.844724][23720:23725] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071815.844760][23720:23725] CHIP:DMG: }, - [1663071815.844793][23720:23725] CHIP:DMG: - [1663071815.844824][23720:23725] CHIP:DMG: }, - [1663071815.844866][23720:23725] CHIP:DMG: - [1663071815.844893][23720:23725] CHIP:DMG: AttributeStatusIB = - [1663071815.844922][23720:23725] CHIP:DMG: { - [1663071815.844952][23720:23725] CHIP:DMG: AttributePathIB = - [1663071815.844986][23720:23725] CHIP:DMG: { - [1663071815.845021][23720:23725] CHIP:DMG: Endpoint = 0x0, - [1663071815.845058][23720:23725] CHIP:DMG: Cluster = 0x3f, - [1663071815.845097][23720:23725] CHIP:DMG: Attribute = 0x0000_0000, - [1663071815.845131][23720:23725] CHIP:DMG: ListIndex = Null, - [1663071815.845165][23720:23725] CHIP:DMG: } - [1663071815.845202][23720:23725] CHIP:DMG: - [1663071815.845236][23720:23725] CHIP:DMG: StatusIB = - [1663071815.845269][23720:23725] CHIP:DMG: { - [1663071815.845304][23720:23725] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071815.845337][23720:23725] CHIP:DMG: }, - - - Before adding the Groups (0x0008,0x0009) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1,"fabricIndex": 1}]' 1 0 - + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":10, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 11, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":12, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":13, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 14, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":15, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 16, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":17, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + [1683882354.197161][7723:7725] CHIP:DMG: WriteResponseMessage = + [1683882354.197166][7723:7725] CHIP:DMG: { + [1683882354.197168][7723:7725] CHIP:DMG: AttributeStatusIBs = + [1683882354.197176][7723:7725] CHIP:DMG: [ + [1683882354.197180][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197188][7723:7725] CHIP:DMG: { + [1683882354.197193][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197198][7723:7725] CHIP:DMG: { + [1683882354.197203][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197208][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197213][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197217][7723:7725] CHIP:DMG: } + [1683882354.197224][7723:7725] CHIP:DMG: + [1683882354.197228][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197233][7723:7725] CHIP:DMG: { + [1683882354.197237][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197242][7723:7725] CHIP:DMG: }, + [1683882354.197247][7723:7725] CHIP:DMG: + [1683882354.197250][7723:7725] CHIP:DMG: }, + [1683882354.197259][7723:7725] CHIP:DMG: + [1683882354.197263][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197268][7723:7725] CHIP:DMG: { + [1683882354.197271][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197276][7723:7725] CHIP:DMG: { + [1683882354.197280][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197285][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197290][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197295][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197299][7723:7725] CHIP:DMG: } + [1683882354.197306][7723:7725] CHIP:DMG: + [1683882354.197310][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197315][7723:7725] CHIP:DMG: { + [1683882354.197319][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197324][7723:7725] CHIP:DMG: }, + [1683882354.197328][7723:7725] CHIP:DMG: + [1683882354.197332][7723:7725] CHIP:DMG: }, + [1683882354.197343][7723:7725] CHIP:DMG: + [1683882354.197347][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197351][7723:7725] CHIP:DMG: { + [1683882354.197353][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197356][7723:7725] CHIP:DMG: { + [1683882354.197358][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197361][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197364][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197366][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197368][7723:7725] CHIP:DMG: } + [1683882354.197372][7723:7725] CHIP:DMG: + [1683882354.197374][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197377][7723:7725] CHIP:DMG: { + [1683882354.197379][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197381][7723:7725] CHIP:DMG: }, + [1683882354.197384][7723:7725] CHIP:DMG: + [1683882354.197385][7723:7725] CHIP:DMG: }, + [1683882354.197391][7723:7725] CHIP:DMG: + [1683882354.197393][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197395][7723:7725] CHIP:DMG: { + [1683882354.197398][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197403][7723:7725] CHIP:DMG: { + [1683882354.197408][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197413][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197417][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197421][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197426][7723:7725] CHIP:DMG: } + [1683882354.197432][7723:7725] CHIP:DMG: + [1683882354.197437][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197441][7723:7725] CHIP:DMG: { + [1683882354.197445][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197450][7723:7725] CHIP:DMG: }, + [1683882354.197454][7723:7725] CHIP:DMG: + [1683882354.197458][7723:7725] CHIP:DMG: }, + [1683882354.197467][7723:7725] CHIP:DMG: + [1683882354.197471][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197475][7723:7725] CHIP:DMG: { + [1683882354.197479][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197483][7723:7725] CHIP:DMG: { + [1683882354.197488][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197493][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197497][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197502][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197506][7723:7725] CHIP:DMG: } + [1683882354.197512][7723:7725] CHIP:DMG: + [1683882354.197516][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197521][7723:7725] CHIP:DMG: { + [1683882354.197525][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197529][7723:7725] CHIP:DMG: }, + [1683882354.197534][7723:7725] CHIP:DMG: + [1683882354.197538][7723:7725] CHIP:DMG: }, + [1683882354.197547][7723:7725] CHIP:DMG: + [1683882354.197551][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197555][7723:7725] CHIP:DMG: { + [1683882354.197559][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197563][7723:7725] CHIP:DMG: { + [1683882354.197568][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197573][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197578][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197582][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197586][7723:7725] CHIP:DMG: } + [1683882354.197593][7723:7725] CHIP:DMG: + [1683882354.197597][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197602][7723:7725] CHIP:DMG: { + [1683882354.197606][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197610][7723:7725] CHIP:DMG: }, + [1683882354.197615][7723:7725] CHIP:DMG: + [1683882354.197618][7723:7725] CHIP:DMG: }, + [1683882354.197627][7723:7725] CHIP:DMG: + [1683882354.197631][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197635][7723:7725] CHIP:DMG: { + [1683882354.197640][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197644][7723:7725] CHIP:DMG: { + [1683882354.197649][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197653][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197658][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197663][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197667][7723:7725] CHIP:DMG: } + [1683882354.197673][7723:7725] CHIP:DMG: + [1683882354.197677][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197682][7723:7725] CHIP:DMG: { + [1683882354.197687][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197690][7723:7725] CHIP:DMG: }, + [1683882354.197695][7723:7725] CHIP:DMG: + [1683882354.197699][7723:7725] CHIP:DMG: }, + [1683882354.197708][7723:7725] CHIP:DMG: + [1683882354.197712][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197716][7723:7725] CHIP:DMG: { + [1683882354.197720][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197724][7723:7725] CHIP:DMG: { + [1683882354.197729][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197733][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197738][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197743][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197747][7723:7725] CHIP:DMG: } + [1683882354.197753][7723:7725] CHIP:DMG: + [1683882354.197757][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197762][7723:7725] CHIP:DMG: { + [1683882354.197767][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197771][7723:7725] CHIP:DMG: }, + [1683882354.197776][7723:7725] CHIP:DMG: + [1683882354.197779][7723:7725] CHIP:DMG: }, + [1683882354.197789][7723:7725] CHIP:DMG: + [1683882354.197792][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197797][7723:7725] CHIP:DMG: { + [1683882354.197800][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197805][7723:7725] CHIP:DMG: { + [1683882354.197809][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197814][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197819][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197824][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197828][7723:7725] CHIP:DMG: } + [1683882354.197835][7723:7725] CHIP:DMG: + [1683882354.197839][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197843][7723:7725] CHIP:DMG: { + [1683882354.197848][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197852][7723:7725] CHIP:DMG: }, + [1683882354.197857][7723:7725] CHIP:DMG: + [1683882354.197861][7723:7725] CHIP:DMG: }, + [1683882354.197870][7723:7725] CHIP:DMG: + [1683882354.197874][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197878][7723:7725] CHIP:DMG: { + [1683882354.197882][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197886][7723:7725] CHIP:DMG: { + [1683882354.197891][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197896][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197900][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197905][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197909][7723:7725] CHIP:DMG: } + [1683882354.197917][7723:7725] CHIP:DMG: + [1683882354.197921][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197925][7723:7725] CHIP:DMG: { + [1683882354.197930][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197934][7723:7725] CHIP:DMG: }, + [1683882354.197939][7723:7725] CHIP:DMG: + [1683882354.197943][7723:7725] CHIP:DMG: }, + [1683882354.197952][7723:7725] CHIP:DMG: + [1683882354.197956][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197960][7723:7725] CHIP:DMG: { + [1683882354.197963][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197968][7723:7725] CHIP:DMG: { + [1683882354.197972][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197976][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197981][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197984][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197989][7723:7725] CHIP:DMG: } + [1683882354.197995][7723:7725] CHIP:DMG: + [1683882354.197998][7723:7725] CHIP:DMG: StatusIB = + [1683882354.198002][7723:7725] CHIP:DMG: { + [1683882354.198007][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.198011][7723:7725] CHIP:DMG: }, + [1683882354.198015][7723:7725] CHIP:DMG: + [1683882354.198019][7723:7725] CHIP:DMG: }, + [1683882354.198028][7723:7725] CHIP:DMG: + [1683882354.198032][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.198036][7723:7725] CHIP:DMG: { + [1683882354.198040][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.198044][7723:7725] CHIP:DMG: { + [1683882354.198049][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.198053][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.198058][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.198063][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.198067][7723:7725] CHIP:DMG: } + [1683882354.198073][7723:7725] CHIP:DMG: + [1683882354.198077][7723:7725] CHIP:DMG: StatusIB = + [1683882354.198081][7723:7725] CHIP:DMG: { + [1683882354.198086][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.198090][7723:7725] CHIP:DMG: }, + [1683882354.198094][7723:7725] CHIP:DMG: + [1683882354.198098][7723:7725] CHIP:DMG: }, + [1683882354.198107][7723:7725] CHIP:DMG: + [1683882354.198111][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.198115][7723:7725] CHIP:DMG: { + [1683882354.198119][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.198123][7723:7725] CHIP:DMG: { + [1683882354.198128][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.198132][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.198137][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.198142][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.198146][7723:7725] CHIP:DMG: } + [1683882354.198152][7723:7725] CHIP:DMG: + [1683882354.198156][7723:7725] CHIP:DMG: StatusIB = + [1683882354.198160][7723:7725] CHIP:DMG: { + [1683882354.198165][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.198169][7723:7725] CHIP:DMG: }, + [1683882354.198174][7723:7725] CHIP:DMG: + [1683882354.198178][7723:7725] CHIP:DMG: }, + [1683882354.198184][7723:7725] CHIP:DMG: + [1683882354.198187][7723:7725] CHIP:DMG: ], + [1683882354.198223][7723:7725] CHIP:DMG: + [1683882354.198227][7723:7725] CHIP:DMG: InteractionModelRevision = 1 + [1683882354.198230][7723:7725] CHIP:DMG: } + + Before adding the Groups (Maxgroup+1) by AddGroupIfIdentifying execute below command which is used to check the Resource_Exhausted Condition + + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":18, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":19, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1674551849.075921][20994:20996] CHIP:DMG: WriteResponseMessage = [1674551849.075924][20994:20996] CHIP:DMG: { @@ -257,25 +425,6 @@ tests: [1674551849.076102][20994:20996] CHIP:DMG: [1674551849.076105][20994:20996] CHIP:DMG: InteractionModelRevision = 1 [1674551849.076108][20994:20996] CHIP:DMG: } - - - - Before adding the Group0x0005 execute this command which is used to check the Resource_Exhausted Condition - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 5, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 - - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - [1658319969.849079][4777:4782] CHIP:DMG: StatusIB = - [1658319969.849119][4777:4782] CHIP:DMG: { - [1658319969.849158][4777:4782] CHIP:DMG: status = 0x00 (SUCCESS), - [1658319969.849194][4777:4782] CHIP:DMG: }, - [1658319969.849704][4777:4782] CHIP:DMG: StatusIB = - [1658319969.849739][4777:4782] CHIP:DMG: { - [1658319969.849774][4777:4782] CHIP:DMG: status = 0x00 (SUCCESS), - [1658319969.849814][4777:4782] CHIP:DMG: }, disabled: true - label: "DUT supports Identify cluster" @@ -390,7 +539,6 @@ tests: verification: | ./chip-tool groups get-group-membership [0002] 1 0 - Verify the "grouplist" entry has one item 0x0002 and Capacity is in the inclusive range of 0 to 254 or null on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -555,7 +703,6 @@ tests: [1653552667.307881][2571:2576] CHIP:DMG: status = 0x00 (SUCCESS), [1653552667.307922][2571:2576] CHIP:DMG: }, - ./chip-tool groups add-group-if-identifying 0x0009 gp9 1 0 Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -564,6 +711,92 @@ tests: [1674551849.597995][21000:21002] CHIP:DMG: { [1674551849.597998][21000:21002] CHIP:DMG: status = 0x00 (SUCCESS), [1674551849.598001][21000:21002] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000a gp10 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882426.604685][7756:7758] CHIP:DMG: StatusIB = + [1683882426.604688][7756:7758] CHIP:DMG: { + [1683882426.604691][7756:7758] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882426.604701][7756:7758] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000b gp11 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882432.529527][7760:7762] CHIP:DMG: StatusIB = + [1683882432.529532][7760:7762] CHIP:DMG: { + [1683882432.529535][7760:7762] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882432.529538][7760:7762] CHIP:DMG: }, + [1683882432.529543][7760:7762] CHIP:DMG: + + ./chip-tool groups add-group-if-identifying 0x000c gp12 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882437.464914][7763:7765] CHIP:DMG: StatusIB = + [1683882437.464927][7763:7765] CHIP:DMG: { + [1683882437.464940][7763:7765] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882437.464951][7763:7765] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000d gp13 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882442.334908][7766:7768] CHIP:DMG: StatusIB = + [1683882442.334911][7766:7768] CHIP:DMG: { + [1683882442.334915][7766:7768] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882442.334918][7766:7768] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000e gp14 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + 1683882448.814358][7769:7771] CHIP:DMG: + [1683882448.814361][7769:7771] CHIP:DMG: StatusIB = + [1683882448.814367][7769:7771] CHIP:DMG: { + [1683882448.814371][7769:7771] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882448.814374][7769:7771] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000e gp15 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882454.216005][7772:7774] CHIP:DMG: + [1683882454.216016][7772:7774] CHIP:DMG: StatusIB = + [1683882454.216029][7772:7774] CHIP:DMG: { + [1683882454.216045][7772:7774] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882454.216057][7772:7774] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000f gp15 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882460.656727][7775:7777] CHIP:DMG: StatusIB = + [1683882460.656730][7775:7777] CHIP:DMG: { + [1683882460.656733][7775:7777] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882460.656737][7775:7777] CHIP:DMG: }, + [1683882460.656740][7775:7777] CHIP:DMG: + + ./chip-tool groups add-group-if-identifying 0x0010 gp16 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882470.921771][7779:7781] CHIP:DMG: StatusIB = + [1683882470.921775][7779:7781] CHIP:DMG: { + [1683882470.921779][7779:7781] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882470.921783][7779:7781] CHIP:DMG: }, + [1683882470.921787][7779:7781] CHIP:DMG: + + ./chip-tool groups add-group-if-identifying 0x0011 gp17 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882478.955105][7783:7785] CHIP:DMG: StatusIB = + [1683882478.955124][7783:7785] CHIP:DMG: { + [1683882478.955143][7783:7785] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882478.955160][7783:7785] CHIP:DMG: }, disabled: true - label: @@ -571,8 +804,7 @@ tests: (maxgroups+2) times as unicast method with different GroupID" PICS: G.S.C05.Rsp verification: | - ./chip-tool groups add-group-if-identifying 0x0005 gp5 1 0 - + ./chip-tool groups add-group-if-identifying 0x0012 gp18 1 0 Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -580,6 +812,16 @@ tests: [1658317372.589363][4296:4301] CHIP:DMG: { [1658317372.589399][4296:4301] CHIP:DMG: status = 0x89 (RESOURCE_EXHAUSTED), [1658317372.589432][4296:4301] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x0013 gp19 1 0 + + Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882594.518675][7824:7826] CHIP:DMG: StatusIB = + [1683882594.518680][7824:7826] CHIP:DMG: { + [1683882594.518685][7824:7826] CHIP:DMG: status = 0x89 (RESOURCE_EXHAUSTED), + [1683882594.518690][7824:7826] CHIP:DMG: }, + [1683882594.518695][7824:7826] CHIP:DMG: disabled: true - label: @@ -589,39 +831,95 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable" does not have GroupName gp5 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1674552384.204664][21058:21060] CHIP:DMG: } - [1674552384.204841][21058:21060] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1314349292 - [1674552384.204867][21058:21060] CHIP:TOO: GroupTable: 4 entries - [1674552384.204879][21058:21060] CHIP:TOO: [1]: { - [1674552384.204886][21058:21060] CHIP:TOO: GroupId: 6 - [1674552384.204890][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204894][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204898][21058:21060] CHIP:TOO: GroupName: gp6 - [1674552384.204901][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204904][21058:21060] CHIP:TOO: } - [1674552384.204910][21058:21060] CHIP:TOO: [2]: { - [1674552384.204912][21058:21060] CHIP:TOO: GroupId: 7 - [1674552384.204915][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204918][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204921][21058:21060] CHIP:TOO: GroupName: gp7 - [1674552384.204923][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204926][21058:21060] CHIP:TOO: } - [1674552384.204931][21058:21060] CHIP:TOO: [3]: { - [1674552384.204933][21058:21060] CHIP:TOO: GroupId: 8 - [1674552384.204936][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204939][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204941][21058:21060] CHIP:TOO: GroupName: gp8 - [1674552384.204944][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204946][21058:21060] CHIP:TOO: } - [1674552384.204951][21058:21060] CHIP:TOO: [4]: { - [1674552384.204953][21058:21060] CHIP:TOO: GroupId: 9 - [1674552384.204956][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204959][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204962][21058:21060] CHIP:TOO: GroupName: gp9 - [1674552384.204964][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204967][21058:21060] CHIP:TOO: } + Verify the "grouptable" does not have GroupName gp5 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + 1683882614.150283][7830:7832] CHIP:DMG: } + [1683882614.150492][7830:7832] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 223017989 + [1683882614.150539][7830:7832] CHIP:TOO: GroupTable: 12 entries + [1683882614.150552][7830:7832] CHIP:TOO: [1]: { + [1683882614.150555][7830:7832] CHIP:TOO: GroupId: 6 + [1683882614.150559][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150565][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150571][7830:7832] CHIP:TOO: GroupName: gp6 + [1683882614.150575][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150579][7830:7832] CHIP:TOO: } + [1683882614.150587][7830:7832] CHIP:TOO: [2]: { + [1683882614.150590][7830:7832] CHIP:TOO: GroupId: 7 + [1683882614.150595][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150600][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150604][7830:7832] CHIP:TOO: GroupName: gp7 + [1683882614.150607][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150610][7830:7832] CHIP:TOO: } + [1683882614.150618][7830:7832] CHIP:TOO: [3]: { + [1683882614.150621][7830:7832] CHIP:TOO: GroupId: 8 + [1683882614.150626][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150630][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150634][7830:7832] CHIP:TOO: GroupName: gp8 + [1683882614.150638][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150641][7830:7832] CHIP:TOO: } + [1683882614.150647][7830:7832] CHIP:TOO: [4]: { + [1683882614.150651][7830:7832] CHIP:TOO: GroupId: 9 + [1683882614.150654][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150658][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150662][7830:7832] CHIP:TOO: GroupName: gp9 + [1683882614.150665][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150668][7830:7832] CHIP:TOO: } + [1683882614.150675][7830:7832] CHIP:TOO: [5]: { + [1683882614.150678][7830:7832] CHIP:TOO: GroupId: 10 + [1683882614.150681][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150684][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150687][7830:7832] CHIP:TOO: GroupName: gp10 + [1683882614.150691][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150694][7830:7832] CHIP:TOO: } + [1683882614.150701][7830:7832] CHIP:TOO: [6]: { + [1683882614.150703][7830:7832] CHIP:TOO: GroupId: 11 + [1683882614.150706][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150710][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150712][7830:7832] CHIP:TOO: GroupName: gp11 + [1683882614.150715][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150717][7830:7832] CHIP:TOO: } + [1683882614.150722][7830:7832] CHIP:TOO: [7]: { + [1683882614.150725][7830:7832] CHIP:TOO: GroupId: 12 + [1683882614.150728][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150731][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150734][7830:7832] CHIP:TOO: GroupName: gp12 + [1683882614.150736][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150739][7830:7832] CHIP:TOO: } + [1683882614.150744][7830:7832] CHIP:TOO: [8]: { + [1683882614.150746][7830:7832] CHIP:TOO: GroupId: 13 + [1683882614.150749][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150752][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150755][7830:7832] CHIP:TOO: GroupName: gp13 + [1683882614.150759][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150762][7830:7832] CHIP:TOO: } + [1683882614.150767][7830:7832] CHIP:TOO: [9]: { + [1683882614.150770][7830:7832] CHIP:TOO: GroupId: 14 + [1683882614.150773][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150776][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150779][7830:7832] CHIP:TOO: GroupName: gp15 + [1683882614.150781][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150784][7830:7832] CHIP:TOO: } + [1683882614.150789][7830:7832] CHIP:TOO: [10]: { + [1683882614.150791][7830:7832] CHIP:TOO: GroupId: 15 + [1683882614.150795][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150798][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150801][7830:7832] CHIP:TOO: GroupName: gp15 + [1683882614.150803][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150806][7830:7832] CHIP:TOO: } + [1683882614.150811][7830:7832] CHIP:TOO: [11]: { + [1683882614.150813][7830:7832] CHIP:TOO: GroupId: 16 + [1683882614.150816][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150820][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150822][7830:7832] CHIP:TOO: GroupName: gp16 + [1683882614.150825][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150827][7830:7832] CHIP:TOO: } + [1683882614.150832][7830:7832] CHIP:TOO: [12]: { + [1683882614.150835][7830:7832] CHIP:TOO: GroupId: 17 + [1683882614.150838][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150841][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150844][7830:7832] CHIP:TOO: GroupName: gp17 + [1683882614.150847][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150850][7830:7832] CHIP:TOO: } disabled: true - label: "TH sends RemoveAllGroups command to DUT as unicast method" @@ -645,7 +943,6 @@ tests: verification: | ./chip-tool groups add-group-if-identifying 0x0000 gp45 1 0 - Verify the "status is CONSTRAINT_ERROR" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1658307266.719438][3251:3256] CHIP:DMG: StatusIB = @@ -659,7 +956,7 @@ tests: the following fields: GroupId as 0x0046 GroupName as Gp46" PICS: G.S.C05.Rsp verification: | - ./chip-tool groups add-group-if-identifying 0x0045 gp46 1 0 + ./chip-tool groups add-group-if-identifying 0x0046 gp46 1 0 Verify the "status is UNSUPPORTED_ACCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -691,7 +988,6 @@ tests: Verify the "identify time" attribute value is 0x0000 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1658307393.820520][3274:3279] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3871913767 [1658307393.820575][3274:3279] CHIP:TOO: identify time: 0 disabled: true @@ -705,7 +1001,6 @@ tests: Verify the "status is SUCCESS" , GroupId is 0x0004 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1651224746.146005][3038:3043] CHIP:DMG: StatusIB = [1651224746.146038][3038:3043] CHIP:DMG: { [1651224746.146073][3038:3043] CHIP:DMG: status = 0x00 (SUCCESS), @@ -719,7 +1014,6 @@ tests: Verify the "grouptable entries is 0" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1658317914.656772][4650:4655] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3844079664 [1658317914.656843][4650:4655] CHIP:TOO: GroupTable: 0 entries disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml index 6279015e7118ee..51c53ad057bf3d 100644 --- a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 125.3.2. [TC-G-3.2] Commands [DUT-Client] +name: 125.3.2. [TC-G-3.2] Groups Cluster Commands [DUT-Client] PICS: - G.C @@ -48,7 +48,7 @@ tests: Execute the following command in TH to generate the pre-condition step : ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 0, "epochKey0": + "groupKeySecurityPolicy": 1, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 @@ -86,9 +86,9 @@ tests: [1666939337.681047][8101:8101] CHIP:DMG: }, - Before adding the Group 0x0002,0x0003 execute this command in DUT + Before adding the Group 0x0002,0x0003, 0x0004 execute this command in DUT - ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1},{"groupId": 4, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 Verify the command response in TH (all-Clusters-app) log @@ -186,8 +186,6 @@ tests: [1666939418.383416][8101:8101] CHIP:DMG: [1666939418.383418][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - - ./chip-tool groups add-group 0x0003 gp3 1 1 Verify the command response in TH (all-Clusters-app) log @@ -221,56 +219,6 @@ tests: [1666939441.007825][8101:8101] CHIP:DMG: [1666939441.007827][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - - - Execute the below command before adding the Group0x0004 execute this command in step-4. - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 4, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 - - Verify the command response in TH (all-Clusters-app) log - - [1666939476.749560][8101:8101] CHIP:DMG: - [1666939476.749567][8101:8101] CHIP:DMG: WriteResponseMessage = - [1666939476.749569][8101:8101] CHIP:DMG: { - [1666939476.749572][8101:8101] CHIP:DMG: AttributeStatusIBs = - [1666939476.749575][8101:8101] CHIP:DMG: [ - [1666939476.749577][8101:8101] CHIP:DMG: AttributeStatusIB = - [1666939476.749579][8101:8101] CHIP:DMG: { - [1666939476.749581][8101:8101] CHIP:DMG: AttributePathIB = - [1666939476.749583][8101:8101] CHIP:DMG: { - [1666939476.749585][8101:8101] CHIP:DMG: Endpoint = 0x0, - [1666939476.749587][8101:8101] CHIP:DMG: Cluster = 0x3f, - [1666939476.749589][8101:8101] CHIP:DMG: Attribute = 0x0000_0000, - [1666939476.749591][8101:8101] CHIP:DMG: } - [1666939476.749594][8101:8101] CHIP:DMG: - [1666939476.749596][8101:8101] CHIP:DMG: StatusIB = - [1666939476.749599][8101:8101] CHIP:DMG: { - [1666939476.749601][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939476.749603][8101:8101] CHIP:DMG: }, - [1666939476.749605][8101:8101] CHIP:DMG: - [1666939476.749607][8101:8101] CHIP:DMG: }, - [1666939476.749610][8101:8101] CHIP:DMG: - [1666939476.749612][8101:8101] CHIP:DMG: AttributeStatusIB = - [1666939476.749614][8101:8101] CHIP:DMG: { - [1666939476.749616][8101:8101] CHIP:DMG: AttributePathIB = - [1666939476.749618][8101:8101] CHIP:DMG: { - [1666939476.749620][8101:8101] CHIP:DMG: Endpoint = 0x0, - [1666939476.749622][8101:8101] CHIP:DMG: Cluster = 0x3f, - [1666939476.749624][8101:8101] CHIP:DMG: Attribute = 0x0000_0000, - [1666939476.749626][8101:8101] CHIP:DMG: ListIndex = Null, - [1666939476.749628][8101:8101] CHIP:DMG: } - [1666939476.749631][8101:8101] CHIP:DMG: - [1666939476.749633][8101:8101] CHIP:DMG: StatusIB = - [1666939476.749635][8101:8101] CHIP:DMG: { - [1666939476.749637][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939476.749639][8101:8101] CHIP:DMG: }, - [1666939476.749641][8101:8101] CHIP:DMG: - [1666939476.749643][8101:8101] CHIP:DMG: }, - [1666939476.749645][8101:8101] CHIP:DMG: - [1666939476.749647][8101:8101] CHIP:DMG: ], - [1666939476.749651][8101:8101] CHIP:DMG: - [1666939476.749653][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - ./chip-tool groups add-group 0x0004 gp4 1 1 Verify the command response in TH (all-Clusters-app) log @@ -358,6 +306,7 @@ tests: ./chip-tool groups remove-group 0x0002 1 1 Verify the "RemoveGroup command response" on the TH(Allcluster-app) Log: + 1666940385.829986][8101:8101] CHIP:DMG: InvokeResponseMessage = [1666940385.829988][8101:8101] CHIP:DMG: { [1666940385.829990][8101:8101] CHIP:DMG: suppressResponse = false, @@ -394,6 +343,7 @@ tests: ./chip-tool groups remove-all-groups 1 1 Verify the "RemoveAllGroups command response" on the TH(Allcluster-app) Log: + [1666940426.392765][8101:8101] CHIP:DMG: InvokeResponseMessage = [1666940426.392768][8101:8101] CHIP:DMG: { [1666940426.392770][8101:8101] CHIP:DMG: suppressResponse = false, diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml index ee617bce301186..a4b845438d9dd1 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml @@ -160,22 +160,20 @@ tests: verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - [1655721447.462511][10909:10909] CHIP:EM: Handling via exchange: 28866r, Delegate: 0xaaaac37ce418 - [1655721447.462589][10909:10909] CHIP:IM: Received Read request - [1655721447.462717][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655721447.462770][10909:10909] CHIP:DMG: { - [1655721447.462817][10909:10909] CHIP:DMG: AttributePathIBs = - [1655721447.462908][10909:10909] CHIP:DMG: [ - [1655721447.462961][10909:10909] CHIP:DMG: AttributePathIB = - [1655721447.463014][10909:10909] CHIP:DMG: { - [1655721447.463066][10909:10909] CHIP:DMG: } - [1655721447.463121][10909:10909] CHIP:DMG: - [1655721447.463173][10909:10909] CHIP:DMG: ], - [1655721447.463228][10909:10909] CHIP:DMG: - [1655721447.463282][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655721447.463334][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655721447.463382][10909:10909] CHIP:DMG: }, - [1655721447.463503][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] + [1684327544.654910][138835:138837] CHIP:DMG: ReportDataMessage = + [1684327544.654915][138835:138837] CHIP:DMG: { + [1684327544.654920][138835:138837] CHIP:DMG: AttributeReportIBs = + [1684327544.654926][138835:138837] CHIP:DMG: [ + [1684327544.654929][138835:138837] CHIP:DMG: AttributeReportIB = + [1684327544.654940][138835:138837] CHIP:DMG: { + [1684327544.654949][138835:138837] CHIP:DMG: AttributeDataIB = + [1684327544.654956][138835:138837] CHIP:DMG: { + [1684327544.654964][138835:138837] CHIP:DMG: DataVersion = 0x91861588, + [1684327544.654970][138835:138837] CHIP:DMG: AttributePathIB = + [1684327544.654978][138835:138837] CHIP:DMG: { + [1684327544.654995][138835:138837] CHIP:DMG: Attribute = 0x0000_FFFD, + [1684327544.655002][138835:138837] CHIP:DMG: } + If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml index 5a94e9cdba86e5..6bbe2d79f40fe7 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml @@ -38,27 +38,27 @@ tests: execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT ./chip-all-clusters-app - Once DUT reach the commissionable state pls send below mentioned command on RD"s respectively. Pls use equivalent command on the respective DUT + Once DUT reach the commissionable state pls send below mentioned command on RD's respectively. Pls use equivalent command on the respective DUT *Provision the device using chip tool on first controller(RD1) - ./chip-tool pairing onnetwork 1 20202021 + ./chip-tool pairing onnetwork 1 20202021 ./chip-tool pairing open-commissioning-window 1 1 400 2000 3840 *Provision the device using chip tool on 2nd controller(RD2) - ./chip-tool pairing code 2 36453420312(mannualcode) --commissioner-name beta + ./chip-tool pairing code 2 36453420312(mannualcode) --commissioner-name beta ./chip-tool pairing open-commissioning-window 2 1 400 2000 3840 --commissioner-name beta *Provision the device using chip tool on 3rd controller(RD3) - ./chip-tool pairing code 3 35603352859(mannualcode) --commissioner-name 4 - ./chip-tool pairing open-commissioning-window 3 1 400 2000 3840 --commissioner-name 4 + ./chip-tool pairing code 3 35603352859(mannualcode) --commissioner-name gamma + ./chip-tool pairing open-commissioning-window 3 1 400 2000 3840 --commissioner-name gamma *Provision the device using chip tool on 4th controller(RD4) - ./chip-tool pairing code 4 36375333175(mannualcode) --commissioner-name 5 - ./chip-tool pairing open-commissioning-window 4 1 400 2000 3840 --commissioner-name 5 + ./chip-tool pairing code 4 36375333175(mannualcode) --commissioner-name 4 + ./chip-tool pairing open-commissioning-window 4 1 400 2000 3840 --commissioner-name 4 *Provision the device using chip tool on 5th controller(RD5) - ./chip-tool pairing code 5 35358158796(mannualcode) --commissioner-name 6 + ./chip-tool pairing code 5 35358158796(mannualcode) --commissioner-name 5 disabled: true - label: @@ -69,1034 +69,434 @@ tests: the attributes that have been subscribed or trigger an action on the DUT to generate an event." verification: | - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest messages from each Reference Device(Eg. RD1...) to DUT and verify all the subscription requests are success and change the value of - all the attributes by sending a write command, after sending a write command verify on each of these Reference Devices that the appropriate attribute - value has been received. - - - - on the first reference device send 3 Subscribe Request Messages to DUT - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 - [1660652952.537644][58131:58136] CHIP:EM: Removed CHIP MessageCounter:11153878 from RetransTable on exchange 57366i - [1660652952.537721][58131:58136] CHIP:DMG: ReportDataMessage = - [1660652952.537759][58131:58136] CHIP:DMG: { - [1660652952.537794][58131:58136] CHIP:DMG: SubscriptionId = 0x50d4243c, - [1660652952.537829][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660652952.537873][58131:58136] CHIP:DMG: [ - [1660652952.537907][58131:58136] CHIP:DMG: AttributeReportIB = - [1660652952.537964][58131:58136] CHIP:DMG: { - [1660652952.538008][58131:58136] CHIP:DMG: AttributeDataIB = - [1660652952.538055][58131:58136] CHIP:DMG: { - [1660652952.538106][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660652952.538152][58131:58136] CHIP:DMG: AttributePathIB = - [1660652952.538205][58131:58136] CHIP:DMG: { - [1660652952.538254][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660652952.538308][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660652952.538358][58131:58136] CHIP:DMG: Attribute = 0x0000_0005, - [1660652952.538409][58131:58136] CHIP:DMG: } - [1660652952.538465][58131:58136] CHIP:DMG: - [1660652952.538517][58131:58136] CHIP:DMG: Data = "" (0 chars), - [1660652952.538562][58131:58136] CHIP:DMG: }, - [1660652952.538615][58131:58136] CHIP:DMG: - [1660652952.538654][58131:58136] CHIP:DMG: }, - [1660652952.538700][58131:58136] CHIP:DMG: - [1660652952.538734][58131:58136] CHIP:DMG: ], - [1660652952.538777][58131:58136] CHIP:DMG: - [1660652952.538811][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660652952.538844][58131:58136] CHIP:DMG: } - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 - [1660653005.341371][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653005.341441][58131:58136] CHIP:DMG: { - [1660653005.341503][58131:58136] CHIP:DMG: SubscriptionId = 0xea4facb0, - [1660653005.341568][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653005.341648][58131:58136] CHIP:DMG: [ - [1660653005.341711][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653005.341808][58131:58136] CHIP:DMG: { - [1660653005.341881][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653005.341972][58131:58136] CHIP:DMG: { - [1660653005.342065][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653005.342148][58131:58136] CHIP:DMG: AttributePathIB = - [1660653005.342244][58131:58136] CHIP:DMG: { - [1660653005.342340][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653005.342436][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653005.342528][58131:58136] CHIP:DMG: Attribute = 0x0000_0006, - [1660653005.342616][58131:58136] CHIP:DMG: } - [1660653005.342708][58131:58136] CHIP:DMG: - [1660653005.342801][58131:58136] CHIP:DMG: Data = "XX" (2 chars), - [1660653005.342883][58131:58136] CHIP:DMG: }, - [1660653005.342972][58131:58136] CHIP:DMG: - [1660653005.343045][58131:58136] CHIP:DMG: }, - [1660653005.343129][58131:58136] CHIP:DMG: - [1660653005.343191][58131:58136] CHIP:DMG: ], - [1660653005.343270][58131:58136] CHIP:DMG: - [1660653005.343331][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653005.343392][58131:58136] CHIP:DMG: } - [1660653005.343616][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653005.343884][58131:58136] CHIP:TOO: Location: XX - [1660653005.343983][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa00129b0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 - [1660653043.575397][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653043.575423][58131:58136] CHIP:DMG: { - [1660653043.575445][58131:58136] CHIP:DMG: SubscriptionId = 0x1ff9dbc5, - [1660653043.575467][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653043.575504][58131:58136] CHIP:DMG: [ - [1660653043.575526][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653043.575556][58131:58136] CHIP:DMG: { - [1660653043.575579][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653043.575605][58131:58136] CHIP:DMG: { - [1660653043.575633][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653043.575658][58131:58136] CHIP:DMG: AttributePathIB = - [1660653043.575686][58131:58136] CHIP:DMG: { - [1660653043.575713][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653043.575743][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653043.575806][58131:58136] CHIP:DMG: Attribute = 0x0000_0010, - [1660653043.575833][58131:58136] CHIP:DMG: } - [1660653043.575863][58131:58136] CHIP:DMG: - [1660653043.575892][58131:58136] CHIP:DMG: Data = false, - [1660653043.575917][58131:58136] CHIP:DMG: }, - [1660653043.575944][58131:58136] CHIP:DMG: - [1660653043.575966][58131:58136] CHIP:DMG: }, - [1660653043.575993][58131:58136] CHIP:DMG: - [1660653043.576013][58131:58136] CHIP:DMG: ], - [1660653043.576041][58131:58136] CHIP:DMG: - [1660653043.576063][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653043.576084][58131:58136] CHIP:DMG: } - [1660653043.576169][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653043.576207][58131:58136] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653043.576240][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0012b40]: Moving to [AwaitingSu] - - - - on the 2nd reference device send 3 Subscribe Request Messages to DUT - - basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653125.592310][58143:58148] CHIP:DMG: { - [1660653125.592348][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653125.592387][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653125.592435][58143:58148] CHIP:DMG: [ - [1660653125.592472][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653125.592527][58143:58148] CHIP:DMG: { - [1660653125.592568][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653125.592618][58143:58148] CHIP:DMG: { - [1660653125.592675][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653125.592726][58143:58148] CHIP:DMG: AttributePathIB = - [1660653125.592785][58143:58148] CHIP:DMG: { - [1660653125.592839][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653125.592896][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653125.592946][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653125.592997][58143:58148] CHIP:DMG: } - [1660653125.593051][58143:58148] CHIP:DMG: - [1660653125.593109][58143:58148] CHIP:DMG: Data = "" (0 chars), - [1660653125.593158][58143:58148] CHIP:DMG: }, - [1660653125.593212][58143:58148] CHIP:DMG: - [1660653125.593255][58143:58148] CHIP:DMG: }, - [1660653125.593305][58143:58148] CHIP:DMG: - [1660653125.593342][58143:58148] CHIP:DMG: ], - [1660653125.593390][58143:58148] CHIP:DMG: - [1660653125.593428][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653125.593464][58143:58148] CHIP:DMG: } - [1660653125.593640][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653125.593706][58143:58148] CHIP:TOO: NodeLabel: - [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653198.460359][58143:58148] CHIP:DMG: { - [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653198.460487][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653198.460567][58143:58148] CHIP:DMG: [ - [1660653198.460630][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653198.460718][58143:58148] CHIP:DMG: { - [1660653198.460786][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653198.460871][58143:58148] CHIP:DMG: { - [1660653198.460966][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653198.461058][58143:58148] CHIP:DMG: AttributePathIB = - [1660653198.461147][58143:58148] CHIP:DMG: { - [1660653198.461244][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653198.461335][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653198.461427][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653198.461513][58143:58148] CHIP:DMG: } - [1660653198.461604][58143:58148] CHIP:DMG: - [1660653198.461699][58143:58148] CHIP:DMG: Data = "XX" (2 chars), - [1660653198.461782][58143:58148] CHIP:DMG: }, - [1660653198.461880][58143:58148] CHIP:DMG: - [1660653198.461952][58143:58148] CHIP:DMG: }, - [1660653198.462037][58143:58148] CHIP:DMG: - [1660653198.462099][58143:58148] CHIP:DMG: ], - [1660653198.462176][58143:58148] CHIP:DMG: - [1660653198.462241][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653198.462303][58143:58148] CHIP:DMG: } - [1660653198.462524][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653198.462606][58143:58148] CHIP:TOO: Location: XX - [1660653198.462695][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68010fa0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i - [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653260.633387][58143:58148] CHIP:DMG: { - [1660653260.633442][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653260.633493][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653260.633560][58143:58148] CHIP:DMG: [ - [1660653260.633615][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653260.633691][58143:58148] CHIP:DMG: { - [1660653260.633755][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653260.633820][58143:58148] CHIP:DMG: { - [1660653260.633891][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653260.633964][58143:58148] CHIP:DMG: AttributePathIB = - [1660653260.634046][58143:58148] CHIP:DMG: { - [1660653260.634130][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653260.634212][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653260.634292][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653260.634366][58143:58148] CHIP:DMG: } - [1660653260.634445][58143:58148] CHIP:DMG: - [1660653260.634523][58143:58148] CHIP:DMG: Data = false, - [1660653260.634600][58143:58148] CHIP:DMG: }, - [1660653260.634674][58143:58148] CHIP:DMG: - [1660653260.634736][58143:58148] CHIP:DMG: }, - [1660653260.634802][58143:58148] CHIP:DMG: - [1660653260.634855][58143:58148] CHIP:DMG: ], - [1660653260.635066][58143:58148] CHIP:DMG: - [1660653260.635128][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653260.635181][58143:58148] CHIP:DMG: } - [1660653260.635371][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653260.635446][58143:58148] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653260.635523][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68011170]: Moving to [AwaitingSu] - - - - - on the 3rd reference device send 3 Subscribe Request Messages to DUT - basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i - [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653438.741143][58149:58154] CHIP:DMG: { - [1660653438.741236][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653438.741262][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653438.741294][58149:58154] CHIP:DMG: [ - [1660653438.741318][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653438.741352][58149:58154] CHIP:DMG: { - [1660653438.741380][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653438.741415][58149:58154] CHIP:DMG: { - [1660653438.741448][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653438.741479][58149:58154] CHIP:DMG: AttributePathIB = - [1660653438.741517][58149:58154] CHIP:DMG: { - [1660653438.741553][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653438.741592][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653438.741627][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653438.741660][58149:58154] CHIP:DMG: } - [1660653438.741695][58149:58154] CHIP:DMG: - [1660653438.741732][58149:58154] CHIP:DMG: Data = "" (0 chars), - [1660653438.741764][58149:58154] CHIP:DMG: }, - [1660653438.741800][58149:58154] CHIP:DMG: - [1660653438.741828][58149:58154] CHIP:DMG: }, - [1660653438.741859][58149:58154] CHIP:DMG: - [1660653438.741883][58149:58154] CHIP:DMG: ], - [1660653438.741913][58149:58154] CHIP:DMG: - [1660653438.741938][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653438.741961][58149:58154] CHIP:DMG: } - [1660653438.742081][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653438.742125][58149:58154] CHIP:TOO: NodeLabel: - [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653500.501007][58149:58154] CHIP:DMG: { - [1660653500.501077][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, - [1660653500.501126][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653500.501204][58149:58154] CHIP:DMG: [ - [1660653500.501253][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653500.501323][58149:58154] CHIP:DMG: { - [1660653500.501397][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653500.501466][58149:58154] CHIP:DMG: { - [1660653500.501550][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653500.501615][58149:58154] CHIP:DMG: AttributePathIB = - [1660653500.501698][58149:58154] CHIP:DMG: { - [1660653500.501765][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653500.501835][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653500.501905][58149:58154] CHIP:DMG: Attribute = 0x0000_0006, - [1660653500.501971][58149:58154] CHIP:DMG: } - [1660653500.502041][58149:58154] CHIP:DMG: - [1660653500.502111][58149:58154] CHIP:DMG: Data = "XX" (2 chars), - [1660653500.502176][58149:58154] CHIP:DMG: }, - [1660653500.502249][58149:58154] CHIP:DMG: - [1660653500.502303][58149:58154] CHIP:DMG: }, - [1660653500.502367][58149:58154] CHIP:DMG: - [1660653500.502414][58149:58154] CHIP:DMG: ], - [1660653500.502473][58149:58154] CHIP:DMG: - [1660653500.502520][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653500.502567][58149:58154] CHIP:DMG: } - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653545.650817][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653545.650842][58149:58154] CHIP:DMG: { - [1660653545.650864][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, - [1660653545.650901][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653545.650929][58149:58154] CHIP:DMG: [ - [1660653545.650950][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653545.650999][58149:58154] CHIP:DMG: { - [1660653545.651032][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653545.651060][58149:58154] CHIP:DMG: { - [1660653545.651088][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653545.651123][58149:58154] CHIP:DMG: AttributePathIB = - [1660653545.651151][58149:58154] CHIP:DMG: { - [1660653545.651179][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653545.651209][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653545.651238][58149:58154] CHIP:DMG: Attribute = 0x0000_0010, - [1660653545.651265][58149:58154] CHIP:DMG: } - [1660653545.651294][58149:58154] CHIP:DMG: - [1660653545.651323][58149:58154] CHIP:DMG: Data = false, - [1660653545.651349][58149:58154] CHIP:DMG: }, - [1660653545.651377][58149:58154] CHIP:DMG: - [1660653545.651399][58149:58154] CHIP:DMG: }, - [1660653545.651425][58149:58154] CHIP:DMG: - [1660653545.651446][58149:58154] CHIP:DMG: ], - [1660653545.651473][58149:58154] CHIP:DMG: - [1660653545.651494][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653545.651514][58149:58154] CHIP:DMG: } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 4th reference device send 3 Subscribe Request Messages to DUT - - basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 5th reference device send 3 Subscribe Request Messages to DUT - - basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] + Send 3 Subscriptionrequest messages from each Reference Device(Eg. RD1...) to DUT and verify all the subscription requests are success and change the value of all the attributes by sending a write command, after sending a write command verify on each of these Reference Devices that the appropriate attribute value has been received. + + + #1. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true + [1684320859.182506][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320859.182528][136393:136395] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320859.182560][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320859.182569][136393:136395] CHIP:TOO: Location: XX + [1684320859.182595][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320859.182601][136393:136395] CHIP:TOO: NodeLabel: + [1684320859.182621][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb5100169f0]: Moving to [AwaitingSu] + [1684320859.182662][136393:136395] CHIP:EM: <<< [E:41656i S:42488 M:180349702 (Ack:108041995)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684320859.182673][136393:136395] CHIP:IN: (S) Sending msg 180349702 on secure session with LSID: 42488 + [1684320859.182973][136393:136395] CHIP:EM: >>> [E:41656i S:42488 M:108041996 (Ack:180349702)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684320859.182985][136393:136395] CHIP:EM: Found matching exchange: 41656i, Delegate: 0x7fb510016a00 + [1684320859.182996][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349702 from Retrans Table on exchange 41656i + [1684320859.183007][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684320859.183019][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684320859.183025][136393:136395] CHIP:DMG: { + [1684320859.183031][136393:136395] CHIP:DMG: SubscriptionId = 0x791da1c4, + [1684320859.183038][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684320859.183044][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320859.183049][136393:136395] CHIP:DMG: } + [1684320859.183057][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x791da1c4 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + + + + #2. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684320880.234954][136396:136398] CHIP:DMG: } + [1684320880.235018][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320880.235029][136396:136398] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320880.235048][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320880.235053][136396:136398] CHIP:TOO: Location: XX + [1684320880.235068][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320880.235072][136396:136398] CHIP:TOO: NodeLabel: + [1684320880.235083][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a00018ac0]: Moving to [AwaitingSu] + [1684320880.235100][136396:136398] CHIP:EM: <<< [E:35582i S:50848 M:252532041 (Ack:201846712)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684320880.235106][136396:136398] CHIP:IN: (S) Sending msg 252532041 on secure session with LSID: 50848 + [1684320880.235224][136396:136398] CHIP:EM: >>> [E:35582i S:50848 M:201846713 (Ack:252532041)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684320880.235229][136396:136398] CHIP:EM: Found matching exchange: 35582i, Delegate: 0x7f6a00018ad0 + [1684320880.235233][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532041 from Retrans Table on exchange 35582i + [1684320880.235237][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684320880.235243][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684320880.235245][136396:136398] CHIP:DMG: { + [1684320880.235248][136396:136398] CHIP:DMG: SubscriptionId = 0x53b4c6f8, + [1684320880.235251][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684320880.235254][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684320880.235256][136396:136398] CHIP:DMG: } + [1684320880.235260][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x53b4c6f8 MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + + + #3. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + [1684320897.144854][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320897.144874][136409:136411] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320897.144902][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320897.144910][136409:136411] CHIP:TOO: Location: XX + [1684320897.144930][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320897.144936][136409:136411] CHIP:TOO: NodeLabel: + [1684320897.144950][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc017580]: Moving to [AwaitingSu] + [1684320897.144985][136409:136411] CHIP:EM: <<< [E:42344i S:52489 M:199100307 (Ack:174085421)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684320897.144994][136409:136411] CHIP:IN: (S) Sending msg 199100307 on secure session with LSID: 52489 + [1684320897.145246][136409:136411] CHIP:EM: >>> [E:42344i S:52489 M:174085422 (Ack:199100307)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684320897.145257][136409:136411] CHIP:EM: Found matching exchange: 42344i, Delegate: 0x7f53dc017590 + [1684320897.145267][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100307 from Retrans Table on exchange 42344i + [1684320897.145276][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684320897.145286][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684320897.145291][136409:136411] CHIP:DMG: { + [1684320897.145297][136409:136411] CHIP:DMG: SubscriptionId = 0x39430ad, + [1684320897.145302][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684320897.145307][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684320897.145311][136409:136411] CHIP:DMG: } + [1684320897.145318][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x039430ad MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + + #4. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684320914.059978][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320914.060000][136403:136405] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320914.060033][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320914.060043][136403:136405] CHIP:TOO: Location: XX + [1684320914.060069][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320914.060076][136403:136405] CHIP:TOO: NodeLabel: + [1684320914.060096][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc00adb0]: Moving to [AwaitingSu] + [1684320914.060153][136403:136405] CHIP:EM: <<< [E:28542i S:21311 M:202084349 (Ack:249111933)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684320914.060168][136403:136405] CHIP:IN: (S) Sending msg 202084349 on secure session with LSID: 21311 + [1684320914.060565][136403:136405] CHIP:EM: >>> [E:28542i S:21311 M:249111934 (Ack:202084349)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684320914.060573][136403:136405] CHIP:EM: Found matching exchange: 28542i, Delegate: 0x7ff4cc00adc0 + [1684320914.060581][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084349 from Retrans Table on exchange 28542i + [1684320914.060589][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684320914.060598][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684320914.060602][136403:136405] CHIP:DMG: { + [1684320914.060606][136403:136405] CHIP:DMG: SubscriptionId = 0x66c37454, + [1684320914.060611][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684320914.060616][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684320914.060620][136403:136405] CHIP:DMG: } + [1684320914.060625][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0x66c37454 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + + #5. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684320928.187912][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320928.187937][136414:136416] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320928.187968][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320928.187977][136414:136416] CHIP:TOO: Location: XX + [1684320928.188002][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320928.188009][136414:136416] CHIP:TOO: NodeLabel: + [1684320928.188029][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4013ed0]: Moving to [AwaitingSu] + [1684320928.188078][136414:136416] CHIP:EM: <<< [E:5169i S:40695 M:166660998 (Ack:81061545)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684320928.188091][136414:136416] CHIP:IN: (S) Sending msg 166660998 on secure session with LSID: 40695 + [1684320928.188415][136414:136416] CHIP:EM: >>> [E:5169i S:40695 M:81061546 (Ack:166660998)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684320928.188427][136414:136416] CHIP:EM: Found matching exchange: 5169i, Delegate: 0x7f58a4013ee0 + [1684320928.188437][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166660998 from Retrans Table on exchange 5169i + [1684320928.188447][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684320928.188459][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684320928.188465][136414:136416] CHIP:DMG: { + [1684320928.188471][136414:136416] CHIP:DMG: SubscriptionId = 0x652585ee, + [1684320928.188478][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684320928.188484][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684320928.188489][136414:136416] CHIP:DMG: } + [1684320928.188497][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0x652585ee MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 once all the subscription is active, on the first reference device enter below mentioned commands to change the attribute values in RD1 basicinformation write node-label '"newnode"' 1 0 - ReportDataMessage = - [1660653595.180285][58131:58136] CHIP:DMG: { - [1660653595.180335][58131:58136] CHIP:DMG: SubscriptionId = 0x50d4243c, - [1660653595.180388][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653595.180456][58131:58136] CHIP:DMG: [ - [1660653595.180508][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653595.180579][58131:58136] CHIP:DMG: { - [1660653595.180640][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653595.180707][58131:58136] CHIP:DMG: { - [1660653595.180794][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f7, - [1660653595.180874][58131:58136] CHIP:DMG: AttributePathIB = - [1660653595.180958][58131:58136] CHIP:DMG: { - [1660653595.181042][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653595.181131][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653595.181214][58131:58136] CHIP:DMG: Attribute = 0x0000_0005, - [1660653595.181281][58131:58136] CHIP:DMG: } - [1660653595.181353][58131:58136] CHIP:DMG: - [1660653595.181426][58131:58136] CHIP:DMG: Data = ""newnode"" (9 chars), - [1660653595.181491][58131:58136] CHIP:DMG: }, - [1660653595.181564][58131:58136] CHIP:DMG: - [1660653595.181638][58131:58136] CHIP:DMG: }, - [1660653595.181706][58131:58136] CHIP:DMG: - [1660653595.181772][58131:58136] CHIP:DMG: ], - [1660653595.181858][58131:58136] CHIP:DMG: - [1660653595.181924][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653595.181987][58131:58136] CHIP:DMG: } - [1660653595.182209][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190839 - [1660653595.182295][58131:58136] CHIP:TOO: NodeLabel: "newnode" - [1660653595.182400][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x50d4243c Peer = 01:0000000000000001 - - basicinformation write location in 1 0 - ReportDataMessage = - [1660653646.567396][58131:58136] CHIP:DMG: { - [1660653646.567414][58131:58136] CHIP:DMG: SubscriptionId = 0xea4facb0, - [1660653646.567432][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653646.567455][58131:58136] CHIP:DMG: [ - [1660653646.567472][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653646.567497][58131:58136] CHIP:DMG: { - [1660653646.567515][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653646.567537][58131:58136] CHIP:DMG: { - [1660653646.567560][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f8, - [1660653646.567581][58131:58136] CHIP:DMG: AttributePathIB = - [1660653646.567604][58131:58136] CHIP:DMG: { - [1660653646.567627][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653646.567651][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653646.567676][58131:58136] CHIP:DMG: Attribute = 0x0000_0006, - [1660653646.567699][58131:58136] CHIP:DMG: } - [1660653646.567723][58131:58136] CHIP:DMG: - [1660653646.567749][58131:58136] CHIP:DMG: Data = "in" (2 chars), - [1660653646.567852][58131:58136] CHIP:DMG: }, - [1660653646.567880][58131:58136] CHIP:DMG: - [1660653646.567904][58131:58136] CHIP:DMG: }, - [1660653646.567931][58131:58136] CHIP:DMG: - [1660653646.567952][58131:58136] CHIP:DMG: ], - [1660653646.567980][58131:58136] CHIP:DMG: - [1660653646.568002][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653646.568023][58131:58136] CHIP:DMG: } - [1660653646.568112][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.568151][58131:58136] CHIP:TOO: Location: in - [1660653646.568191][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xea4facb0 Peer = 01:0000000000000001 - - - - basicinformation write local-config-disabled 1 1 0 - ReportDataMessage = - [1660653666.029792][58131:58136] CHIP:DMG: { - [1660653666.029813][58131:58136] CHIP:DMG: SubscriptionId = 0x1ff9dbc5, - [1660653666.029835][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653666.029862][58131:58136] CHIP:DMG: [ - [1660653666.029883][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653666.029921][58131:58136] CHIP:DMG: { - [1660653666.029947][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653666.029980][58131:58136] CHIP:DMG: { - [1660653666.030013][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f9, - [1660653666.030045][58131:58136] CHIP:DMG: AttributePathIB = - [1660653666.030071][58131:58136] CHIP:DMG: { - [1660653666.030107][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653666.030137][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653666.030161][58131:58136] CHIP:DMG: Attribute = 0x0000_0010, - [1660653666.030184][58131:58136] CHIP:DMG: } - [1660653666.030209][58131:58136] CHIP:DMG: - [1660653666.030234][58131:58136] CHIP:DMG: Data = true, - [1660653666.030255][58131:58136] CHIP:DMG: }, - [1660653666.030278][58131:58136] CHIP:DMG: - [1660653666.030297][58131:58136] CHIP:DMG: }, - [1660653666.030320][58131:58136] CHIP:DMG: - [1660653666.030337][58131:58136] CHIP:DMG: ], - [1660653666.030361][58131:58136] CHIP:DMG: - [1660653666.030378][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653666.030395][58131:58136] CHIP:DMG: } - [1660653666.030472][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190841 - [1660653666.030502][58131:58136] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.030535][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x1ff9dbc5 Peer = 01:00000 + [1684320946.180177][136393:136395] CHIP:DMG: WriteResponseMessage = + [1684320946.180180][136393:136395] CHIP:DMG: { + [1684320946.180183][136393:136395] CHIP:DMG: AttributeStatusIBs = + [1684320946.180189][136393:136395] CHIP:DMG: [ + [1684320946.180191][136393:136395] CHIP:DMG: AttributeStatusIB = + [1684320946.180196][136393:136395] CHIP:DMG: { + [1684320946.180199][136393:136395] CHIP:DMG: AttributePathIB = + [1684320946.180202][136393:136395] CHIP:DMG: { + [1684320946.180206][136393:136395] CHIP:DMG: Endpoint = 0x0, + [1684320946.180210][136393:136395] CHIP:DMG: Cluster = 0x28, + [1684320946.180213][136393:136395] CHIP:DMG: Attribute = 0x0000_0005, + [1684320946.180216][136393:136395] CHIP:DMG: } + [1684320946.180220][136393:136395] CHIP:DMG: + [1684320946.180223][136393:136395] CHIP:DMG: StatusIB = + [1684320946.180227][136393:136395] CHIP:DMG: { + [1684320946.180230][136393:136395] CHIP:DMG: status = 0x00 (SUCCESS), + [1684320946.180232][136393:136395] CHIP:DMG: }, + [1684320946.180235][136393:136395] CHIP:DMG: + [1684320946.180238][136393:136395] CHIP:DMG: }, + [1684320946.180242][136393:136395] CHIP:DMG: + [1684320946.180244][136393:136395] CHIP:DMG: ], + [1684320946.180248][136393:136395] CHIP:DMG: + [1684320946.180250][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320946.180253][136393:136395] CHIP:DMG: } + [1684320946.180267][136393:136395] CHIP:DMG: WriteClient moving to [AwaitingDe] + + basicinformation write location in 1 0 + [1684320950.120156][136393:136395] CHIP:DMG: WriteResponseMessage = + [1684320950.120159][136393:136395] CHIP:DMG: { + [1684320950.120162][136393:136395] CHIP:DMG: AttributeStatusIBs = + [1684320950.120168][136393:136395] CHIP:DMG: [ + [1684320950.120171][136393:136395] CHIP:DMG: AttributeStatusIB = + [1684320950.120174][136393:136395] CHIP:DMG: { + [1684320950.120177][136393:136395] CHIP:DMG: AttributePathIB = + [1684320950.120181][136393:136395] CHIP:DMG: { + [1684320950.120185][136393:136395] CHIP:DMG: Endpoint = 0x0, + [1684320950.120188][136393:136395] CHIP:DMG: Cluster = 0x28, + [1684320950.120192][136393:136395] CHIP:DMG: Attribute = 0x0000_0006, + [1684320950.120196][136393:136395] CHIP:DMG: } + [1684320950.120201][136393:136395] CHIP:DMG: + [1684320950.120204][136393:136395] CHIP:DMG: StatusIB = + [1684320950.120208][136393:136395] CHIP:DMG: { + [1684320950.120212][136393:136395] CHIP:DMG: status = 0x00 (SUCCESS), + [1684320950.120215][136393:136395] CHIP:DMG: }, + [1684320950.120218][136393:136395] CHIP:DMG: + [1684320950.120221][136393:136395] CHIP:DMG: }, + [1684320950.120225][136393:136395] CHIP:DMG: + [1684320950.120228][136393:136395] CHIP:DMG: ], + [1684320950.120233][136393:136395] CHIP:DMG: + [1684320950.120236][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320950.120238][136393:136395] CHIP:DMG: } + [1684320950.120257][136393:136395] CHIP:DMG: WriteClient moving to [AwaitingDe] + + + basicinformation write local-config-disabled 1 1 0 + [1684320954.914458][136393:136395] CHIP:DMG: WriteResponseMessage = + [1684320954.914463][136393:136395] CHIP:DMG: { + [1684320954.914466][136393:136395] CHIP:DMG: AttributeStatusIBs = + [1684320954.914472][136393:136395] CHIP:DMG: [ + [1684320954.914475][136393:136395] CHIP:DMG: AttributeStatusIB = + [1684320954.914484][136393:136395] CHIP:DMG: { + [1684320954.914490][136393:136395] CHIP:DMG: AttributePathIB = + [1684320954.914498][136393:136395] CHIP:DMG: { + [1684320954.914502][136393:136395] CHIP:DMG: Endpoint = 0x0, + [1684320954.914507][136393:136395] CHIP:DMG: Cluster = 0x28, + [1684320954.914512][136393:136395] CHIP:DMG: Attribute = 0x0000_0010, + [1684320954.914514][136393:136395] CHIP:DMG: } + [1684320954.914519][136393:136395] CHIP:DMG: + [1684320954.914524][136393:136395] CHIP:DMG: StatusIB = + [1684320954.914530][136393:136395] CHIP:DMG: { + [1684320954.914533][136393:136395] CHIP:DMG: status = 0x00 (SUCCESS), + [1684320954.914538][136393:136395] CHIP:DMG: }, + [1684320954.914542][136393:136395] CHIP:DMG: + [1684320954.914545][136393:136395] CHIP:DMG: }, + [1684320954.914549][136393:136395] CHIP:DMG: + [1684320954.914555][136393:136395] CHIP:DMG: ], + [1684320954.914561][136393:136395] CHIP:DMG: + [1684320954.914564][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320954.914569][136393:136395] CHIP:DMG: } + + [1684320959.188576][136393:136395] CHIP:DMG: } + [1684320959.188649][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684320959.188666][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684320959.188698][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684320959.188709][136393:136395] CHIP:TOO: Location: in + [1684320959.188740][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684320959.188748][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684320959.188779][136393:136395] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x791da1c4 Peer = 01:0000000000000001 + [1684320959.188854][136393:136395] CHIP:EM: <<< [E:39644r S:42488 M:180349710 (Ack:108042000)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684320959.188871][136393:136395] CHIP:IN: (S) Sending msg 180349710 on secure session with LSID: 42488 + Once RD1 change the attibute values by sending above command, verify that all the RD*(RD2/3/4/5) should be notified with a subscription report - on the 2nd reference device verify the ReportDataMessage with the attribute value change - [1660653595.177882][58143:58148] CHIP:EM: Handling via exchange: 9001r, Delegate: 0xaaaaea1cd718 - [1660653595.178151][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653595.178219][58143:58148] CHIP:DMG: { - [1660653595.178272][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653595.178325][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653595.178396][58143:58148] CHIP:DMG: [ - [1660653595.178449][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653595.178522][58143:58148] CHIP:DMG: { - [1660653595.178580][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653595.178647][58143:58148] CHIP:DMG: { - [1660653595.178717][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f7, - [1660653595.178804][58143:58148] CHIP:DMG: AttributePathIB = - [1660653595.178874][58143:58148] CHIP:DMG: { - [1660653595.178942][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653595.179014][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653595.179086][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653595.179153][58143:58148] CHIP:DMG: } - [1660653595.179225][58143:58148] CHIP:DMG: - [1660653595.179300][58143:58148] CHIP:DMG: Data = ""newnode"" (9 chars), - [1660653595.179363][58143:58148] CHIP:DMG: }, - [1660653595.179438][58143:58148] CHIP:DMG: - [1660653595.179499][58143:58148] CHIP:DMG: }, - [1660653595.179587][58143:58148] CHIP:DMG: - [1660653595.179639][58143:58148] CHIP:DMG: ], - [1660653595.179705][58143:58148] CHIP:DMG: - [1660653595.179894][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653595.179952][58143:58148] CHIP:DMG: } - [1660653595.180163][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190839 - [1660653595.180235][58143:58148] CHIP:TOO: NodeLabel: "newnode" - [1660653595.180511][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xc15110c4 Peer = 02:0000000000000002 - - - [1660653646.567549][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653646.567570][58143:58148] CHIP:DMG: { - [1660653646.567587][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653646.567605][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653646.567628][58143:58148] CHIP:DMG: [ - [1660653646.567646][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653646.567670][58143:58148] CHIP:DMG: { - [1660653646.567689][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653646.567709][58143:58148] CHIP:DMG: { - [1660653646.567731][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f8, - [1660653646.567780][58143:58148] CHIP:DMG: AttributePathIB = - [1660653646.567806][58143:58148] CHIP:DMG: { - [1660653646.567829][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653646.567854][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653646.568334][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653646.568364][58143:58148] CHIP:DMG: } - [1660653646.568726][58143:58148] CHIP:DMG: - [1660653646.568769][58143:58148] CHIP:DMG: Data = "in" (2 chars), - [1660653646.569119][58143:58148] CHIP:DMG: }, - [1660653646.569313][58143:58148] CHIP:DMG: - [1660653646.569337][58143:58148] CHIP:DMG: }, - [1660653646.569518][58143:58148] CHIP:DMG: - [1660653646.569538][58143:58148] CHIP:DMG: ], - [1660653646.569566][58143:58148] CHIP:DMG: - [1660653646.569588][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653646.569610][58143:58148] CHIP:DMG: } - [1660653646.569682][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569713][58143:58148] CHIP:TOO: Location: in - [1660653646.569762][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xfed77bda Peer = 02:0000000000000002 - - - [1660653666.030382][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653666.030401][58143:58148] CHIP:DMG: { - [1660653666.030419][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653666.030438][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653666.030461][58143:58148] CHIP:DMG: [ - [1660653666.030478][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653666.030502][58143:58148] CHIP:DMG: { - [1660653666.030521][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653666.030542][58143:58148] CHIP:DMG: { - [1660653666.030564][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f9, - [1660653666.030586][58143:58148] CHIP:DMG: AttributePathIB = - [1660653666.030609][58143:58148] CHIP:DMG: { - [1660653666.030647][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653666.030672][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653666.030696][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653666.030718][58143:58148] CHIP:DMG: } - [1660653666.030742][58143:58148] CHIP:DMG: - [1660653666.030778][58143:58148] CHIP:DMG: Data = true, - [1660653666.030803][58143:58148] CHIP:DMG: }, - [1660653666.030827][58143:58148] CHIP:DMG: - [1660653666.030846][58143:58148] CHIP:DMG: }, - [1660653666.030868][58143:58148] CHIP:DMG: - [1660653666.030885][58143:58148] CHIP:DMG: ], - [1660653666.030908][58143:58148] CHIP:DMG: - [1660653666.030926][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653666.030944][58143:58148] CHIP:DMG: } - [1660653666.031027][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190841 - [1660653666.031058][58143:58148] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031092][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x60feee4d Peer = 02:0000000000000002 - - - on the 3rd reference device verify the ReportDataMessage with the attribute value change - onic time: 000000000199A0AE msec - [1660653545.654422][58149:58154] CHIP:EM: Flushed pending ack for MessageCounter:144882910 on exchange 34402i - [1660653595.178474][58149:58154] CHIP:EM: Received message of type 0x5 with protocolId (0, 1) and MessageCounter:144882911 on exchange 9002r - [1660653595.178564][58149:58154] CHIP:EM: Handling via exchange: 9002r, Delegate: 0xaaaade55d718 - [1660653595.178743][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653595.178805][58149:58154] CHIP:DMG: { - [1660653595.178858][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653595.178912][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653595.178980][58149:58154] CHIP:DMG: [ - [1660653595.179033][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653595.179106][58149:58154] CHIP:DMG: { - [1660653595.179163][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653595.179225][58149:58154] CHIP:DMG: { - [1660653595.179291][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f7, - [1660653595.179355][58149:58154] CHIP:DMG: AttributePathIB = - [1660653595.179422][58149:58154] CHIP:DMG: { - [1660653595.179498][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653595.179640][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653595.179718][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653595.179864][58149:58154] CHIP:DMG: } - [1660653595.179939][58149:58154] CHIP:DMG: - [1660653595.180012][58149:58154] CHIP:DMG: Data = ""newnode"" (9 chars), - [1660653595.180077][58149:58154] CHIP:DMG: }, - [1660653595.180148][58149:58154] CHIP:DMG: - [1660653595.180204][58149:58154] CHIP:DMG: }, - [1660653595.180276][58149:58154] CHIP:DMG: - [1660653595.180328][58149:58154] CHIP:DMG: ], - [1660653595.180395][58149:58154] CHIP:DMG: - [1660653595.180462][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653595.180513][58149:58154] CHIP:DMG: } - [1660653595.180721][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190839 - [1660653595.180792][58149:58154] CHIP:TOO: NodeLabel: "newnode" - [1660653595.180894][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = - - - [1660653646.568849][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653646.568878][58149:58154] CHIP:DMG: { - [1660653646.568903][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, - [1660653646.568926][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653646.568955][58149:58154] CHIP:DMG: [ - [1660653646.568974][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653646.569004][58149:58154] CHIP:DMG: { - [1660653646.569027][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653646.569054][58149:58154] CHIP:DMG: { - [1660653646.569082][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f8, - [1660653646.569109][58149:58154] CHIP:DMG: AttributePathIB = - [1660653646.569138][58149:58154] CHIP:DMG: { - [1660653646.569165][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653646.569194][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653646.569225][58149:58154] CHIP:DMG: Attribute = 0x0000_0006, - [1660653646.569253][58149:58154] CHIP:DMG: } - [1660653646.569282][58149:58154] CHIP:DMG: - [1660653646.569313][58149:58154] CHIP:DMG: Data = "in" (2 chars), - [1660653646.569339][58149:58154] CHIP:DMG: }, - [1660653646.569368][58149:58154] CHIP:DMG: - [1660653646.569392][58149:58154] CHIP:DMG: }, - [1660653646.569419][58149:58154] CHIP:DMG: - [1660653646.569441][58149:58154] CHIP:DMG: ], - [1660653646.569469][58149:58154] CHIP:DMG: - [1660653646.569492][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653646.569510][58149:58154] CHIP:DMG: } - [1660653646.569596][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569638][58149:58154] CHIP:TOO: Location: in - [1660653646.569738][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xb129bd8c Peer = 03:0000000000000003 - - MessageCounter:144882915 on exchange 9008r - [1660653666.030877][58149:58154] CHIP:EM: Handling via exchange: 9008r, Delegate: 0xaaaade55d718 - [1660653666.030942][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653666.030968][58149:58154] CHIP:DMG: { - [1660653666.030986][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, - [1660653666.031004][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653666.031028][58149:58154] CHIP:DMG: [ - [1660653666.031045][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653666.031069][58149:58154] CHIP:DMG: { - [1660653666.031089][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653666.031111][58149:58154] CHIP:DMG: { - [1660653666.031133][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f9, - [1660653666.031155][58149:58154] CHIP:DMG: AttributePathIB = - [1660653666.031178][58149:58154] CHIP:DMG: { - [1660653666.031202][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653666.031226][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653666.031251][58149:58154] CHIP:DMG: Attribute = 0x0000_0010, - [1660653666.031274][58149:58154] CHIP:DMG: } - [1660653666.031308][58149:58154] CHIP:DMG: - [1660653666.031334][58149:58154] CHIP:DMG: Data = true, - [1660653666.031355][58149:58154] CHIP:DMG: }, - [1660653666.031379][58149:58154] CHIP:DMG: - [1660653666.031398][58149:58154] CHIP:DMG: }, - [1660653666.031421][58149:58154] CHIP:DMG: - [1660653666.031438][58149:58154] CHIP:DMG: ], - [1660653666.031462][58149:58154] CHIP:DMG: - [1660653666.031480][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653666.031503][58149:58154] CHIP:DMG: } - [1660653666.031584][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190841 - [1660653666.031617][58149:58154] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031655][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x5310d542 Peer = 03:0000000000 - - - - on the 4th reference device verify the ReportDataMessage with the attribute value change - - [1660653595.182209][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 378219084 - [1660653595.182295][58131:58136] CHIP:TOO: NodeLabel: "newnode" - [1660653595.182400][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x50d4249f Peer = 01:0000000000000001 - - [1660653646.569682][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569713][58143:58148] CHIP:TOO: Location: in - [1660653646.569762][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xfed77bda Peer = 02:0000000000000002 - - - [1660653666.031584][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 37821909841 - [1660653666.031617][58149:58154] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031655][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x5310d57o2 Peer = 03:0000000000 - - - - - - - on the 5th reference device verify the ReportDataMessage with the attribute value change - - [1660653595.182209][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 378218970 - [1660653595.182295][58131:58136] CHIP:TOO: NodeLabel: "newnode" - [1660653595.182400][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x50d42ftc Peer = 01:0000000000000001 - - - [1660653646.569682][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569713][58143:58148] CHIP:TOO: Location: in - [1660653646.569762][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xfed77bda Peer = 02:0000000000000002 - - - [1660653666.031584][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190981 - [1660653666.031617][58149:58154] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031655][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x5310d5l0 Peer = 03:0000000000 + + #1. on the 2nd reference device verify the ReportDataMessage with the attribute value change + [1684320980.257823][136396:136398] CHIP:DMG: } + [1684320980.257880][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684320980.257894][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684320980.257921][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684320980.257930][136396:136398] CHIP:TOO: Location: in + [1684320980.257956][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684320980.257963][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684320980.257994][136396:136398] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x53b4c6f8 Peer = 02:0000000000000002 + [1684320980.258041][136396:136398] CHIP:EM: <<< [E:39645r S:50848 M:252532043 (Ack:201846714)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684320980.258055][136396:136398] CHIP:IN: (S) Sending msg 252532043 on secure session with LSID: 50848 + + + #2. on the 3rd reference device verify the ReportDataMessage with the attribute value change + + + [1684320997.161989][136409:136411] CHIP:DMG: } + [1684320997.162051][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684320997.162065][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684320997.162092][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684320997.162102][136409:136411] CHIP:TOO: Location: in + [1684320997.162128][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684320997.162136][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684320997.162175][136409:136411] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x039430ad Peer = 03:0000000000000003 + [1684320997.162223][136409:136411] CHIP:EM: <<< [E:39646r S:52489 M:199100309 (Ack:174085423)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684320997.162236][136409:136411] CHIP:IN: (S) Sending msg 199100309 on secure session with LSID: 52489 + + #3. on the 4th reference device verify the ReportDataMessage with the attribute value change + [1684321014.078519][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321014.078535][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321014.078568][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321014.078578][136403:136405] CHIP:TOO: Location: in + [1684321014.078608][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321014.078616][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684321014.078648][136403:136405] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x66c37454 Peer = 04:0000000000000004 + [1684321014.078701][136403:136405] CHIP:EM: <<< [E:39647r S:21311 M:202084351 (Ack:249111935)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684321014.078716][136403:136405] CHIP:IN: (S) Sending msg 202084351 on secure session with LSID: 21311 + + #4. on the 5th reference device verify the ReportDataMessage with the attribute value change + [1684321028.194445][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321028.194465][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321028.194505][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321028.194518][136414:136416] CHIP:TOO: Location: in + [1684321028.194554][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321028.194565][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684321028.194602][136414:136416] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x652585ee Peer = 05:0000000000000005 + [1684321028.194659][136414:136416] CHIP:EM: <<< [E:39648r S:40695 M:166661000 (Ack:81061547)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684321028.194678][136414:136416] CHIP:IN: (S) Sending msg 166661000 on secure session with LSID: 40695 disabled: true - label: "RD1, RD2, RD3, RD4, RD5 send 3 Subscribe Request Messages to DUT.(Total - 15 active subscriptions) Each subscribe requests should contain 3 different paths. The subscription request from RD1 should - contain 4 paths." + contain 4 paths. +" verification: | After provisioning again the values are been set to default values such as node label= " ". so in VS mentioned as node-label="", location=XX and local-config-disabled=FALSE but if your going to verify 3 steps contentiously you will get the attribute value as node-label="newlabel", location=in and local-config-disabled=TRUE. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest message from each Reference Device(Eg. RD1...) to DUT - and verify all the subscription requests are succes. and in The subscription request from RD1 should contain 4 paths, Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. - - on the first reference device(RD1) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 - [1660652952.537644][58131:58136] CHIP:EM: Removed CHIP MessageCounter:11153878 from RetransTable on exchange 57366i - [1660652952.537721][58131:58136] CHIP:DMG: ReportDataMessage = - [1660652952.537759][58131:58136] CHIP:DMG: { - [1660652952.537794][58131:58136] CHIP:DMG: SubscriptionId = 0x50d4243c, - [1660652952.537829][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660652952.537873][58131:58136] CHIP:DMG: [ - [1660652952.537907][58131:58136] CHIP:DMG: AttributeReportIB = - [1660652952.537964][58131:58136] CHIP:DMG: { - [1660652952.538008][58131:58136] CHIP:DMG: AttributeDataIB = - [1660652952.538055][58131:58136] CHIP:DMG: { - [1660652952.538106][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660652952.538152][58131:58136] CHIP:DMG: AttributePathIB = - [1660652952.538205][58131:58136] CHIP:DMG: { - [1660652952.538254][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660652952.538308][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660652952.538358][58131:58136] CHIP:DMG: Attribute = 0x0000_0005, - [1660652952.538409][58131:58136] CHIP:DMG: } - [1660652952.538465][58131:58136] CHIP:DMG: - [1660652952.538517][58131:58136] CHIP:DMG: Data = "" (0 chars), - [1660652952.538562][58131:58136] CHIP:DMG: }, - [1660652952.538615][58131:58136] CHIP:DMG: - [1660652952.538654][58131:58136] CHIP:DMG: }, - [1660652952.538700][58131:58136] CHIP:DMG: - [1660652952.538734][58131:58136] CHIP:DMG: ], - [1660652952.538777][58131:58136] CHIP:DMG: - [1660652952.538811][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660652952.538844][58131:58136] CHIP:DMG: } - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 - [1660653005.341371][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653005.341441][58131:58136] CHIP:DMG: { - [1660653005.341503][58131:58136] CHIP:DMG: SubscriptionId = 0xea4facb0, - [1660653005.341568][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653005.341648][58131:58136] CHIP:DMG: [ - [1660653005.341711][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653005.341808][58131:58136] CHIP:DMG: { - [1660653005.341881][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653005.341972][58131:58136] CHIP:DMG: { - [1660653005.342065][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653005.342148][58131:58136] CHIP:DMG: AttributePathIB = - [1660653005.342244][58131:58136] CHIP:DMG: { - [1660653005.342340][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653005.342436][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653005.342528][58131:58136] CHIP:DMG: Attribute = 0x0000_0006, - [1660653005.342616][58131:58136] CHIP:DMG: } - [1660653005.342708][58131:58136] CHIP:DMG: - [1660653005.342801][58131:58136] CHIP:DMG: Data = "XX" (2 chars), - [1660653005.342883][58131:58136] CHIP:DMG: }, - [1660653005.342972][58131:58136] CHIP:DMG: - [1660653005.343045][58131:58136] CHIP:DMG: }, - [1660653005.343129][58131:58136] CHIP:DMG: - [1660653005.343191][58131:58136] CHIP:DMG: ], - [1660653005.343270][58131:58136] CHIP:DMG: - [1660653005.343331][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653005.343392][58131:58136] CHIP:DMG: } - [1660653005.343616][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653005.343884][58131:58136] CHIP:TOO: Location: XX - [1660653005.343983][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa00129b0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 - [1660653043.575397][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653043.575423][58131:58136] CHIP:DMG: { - [1660653043.575445][58131:58136] CHIP:DMG: SubscriptionId = 0x1ff9dbc5, - [1660653043.575467][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653043.575504][58131:58136] CHIP:DMG: [ - [1660653043.575526][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653043.575556][58131:58136] CHIP:DMG: { - [1660653043.575579][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653043.575605][58131:58136] CHIP:DMG: { - [1660653043.575633][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653043.575658][58131:58136] CHIP:DMG: AttributePathIB = - [1660653043.575686][58131:58136] CHIP:DMG: { - [1660653043.575713][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653043.575743][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653043.575806][58131:58136] CHIP:DMG: Attribute = 0x0000_0010, - [1660653043.575833][58131:58136] CHIP:DMG: } - [1660653043.575863][58131:58136] CHIP:DMG: - [1660653043.575892][58131:58136] CHIP:DMG: Data = false, - [1660653043.575917][58131:58136] CHIP:DMG: }, - [1660653043.575944][58131:58136] CHIP:DMG: - [1660653043.575966][58131:58136] CHIP:DMG: }, - [1660653043.575993][58131:58136] CHIP:DMG: - [1660653043.576013][58131:58136] CHIP:DMG: ], - [1660653043.576041][58131:58136] CHIP:DMG: - [1660653043.576063][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653043.576084][58131:58136] CHIP:DMG: } - [1660653043.576169][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653043.576207][58131:58136] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653043.576240][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0012b40]: Moving to [AwaitingSu] - - - - on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653125.592310][58143:58148] CHIP:DMG: { - [1660653125.592348][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653125.592387][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653125.592435][58143:58148] CHIP:DMG: [ - [1660653125.592472][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653125.592527][58143:58148] CHIP:DMG: { - [1660653125.592568][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653125.592618][58143:58148] CHIP:DMG: { - [1660653125.592675][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653125.592726][58143:58148] CHIP:DMG: AttributePathIB = - [1660653125.592785][58143:58148] CHIP:DMG: { - [1660653125.592839][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653125.592896][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653125.592946][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653125.592997][58143:58148] CHIP:DMG: } - [1660653125.593051][58143:58148] CHIP:DMG: - [1660653125.593109][58143:58148] CHIP:DMG: Data = "" (0 chars), - [1660653125.593158][58143:58148] CHIP:DMG: }, - [1660653125.593212][58143:58148] CHIP:DMG: - [1660653125.593255][58143:58148] CHIP:DMG: }, - [1660653125.593305][58143:58148] CHIP:DMG: - [1660653125.593342][58143:58148] CHIP:DMG: ], - [1660653125.593390][58143:58148] CHIP:DMG: - [1660653125.593428][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653125.593464][58143:58148] CHIP:DMG: } - [1660653125.593640][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653125.593706][58143:58148] CHIP:TOO: NodeLabel: - [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - - - - - - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653198.460359][58143:58148] CHIP:DMG: { - [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653198.460487][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653198.460567][58143:58148] CHIP:DMG: [ - [1660653198.460630][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653198.460718][58143:58148] CHIP:DMG: { - [1660653198.460786][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653198.460871][58143:58148] CHIP:DMG: { - [1660653198.460966][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653198.461058][58143:58148] CHIP:DMG: AttributePathIB = - [1660653198.461147][58143:58148] CHIP:DMG: { - [1660653198.461244][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653198.461335][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653198.461427][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653198.461513][58143:58148] CHIP:DMG: } - [1660653198.461604][58143:58148] CHIP:DMG: - [1660653198.461699][58143:58148] CHIP:DMG: Data = "XX" (2 chars), - [1660653198.461782][58143:58148] CHIP:DMG: }, - [1660653198.461880][58143:58148] CHIP:DMG: - [1660653198.461952][58143:58148] CHIP:DMG: }, - [1660653198.462037][58143:58148] CHIP:DMG: - [1660653198.462099][58143:58148] CHIP:DMG: ], - [1660653198.462176][58143:58148] CHIP:DMG: - [1660653198.462241][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653198.462303][58143:58148] CHIP:DMG: } - [1660653198.462524][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653198.462606][58143:58148] CHIP:TOO: Location: XX - [1660653198.462695][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68010fa0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i - [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653260.633387][58143:58148] CHIP:DMG: { - [1660653260.633442][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653260.633493][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653260.633560][58143:58148] CHIP:DMG: [ - [1660653260.633615][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653260.633691][58143:58148] CHIP:DMG: { - [1660653260.633755][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653260.633820][58143:58148] CHIP:DMG: { - [1660653260.633891][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653260.633964][58143:58148] CHIP:DMG: AttributePathIB = - [1660653260.634046][58143:58148] CHIP:DMG: { - [1660653260.634130][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653260.634212][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653260.634292][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653260.634366][58143:58148] CHIP:DMG: } - [1660653260.634445][58143:58148] CHIP:DMG: - [1660653260.634523][58143:58148] CHIP:DMG: Data = false, - [1660653260.634600][58143:58148] CHIP:DMG: }, - [1660653260.634674][58143:58148] CHIP:DMG: - [1660653260.634736][58143:58148] CHIP:DMG: }, - [1660653260.634802][58143:58148] CHIP:DMG: - [1660653260.634855][58143:58148] CHIP:DMG: ], - [1660653260.635066][58143:58148] CHIP:DMG: - [1660653260.635128][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653260.635181][58143:58148] CHIP:DMG: } - [1660653260.635371][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653260.635446][58143:58148] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653260.635523][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68011170]: Moving to [AwaitingSu] - - - - - on the 3rd reference device(RD3) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i - [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653438.741143][58149:58154] CHIP:DMG: { - [1660653438.741236][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653438.741262][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653438.741294][58149:58154] CHIP:DMG: [ - [1660653438.741318][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653438.741352][58149:58154] CHIP:DMG: { - [1660653438.741380][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653438.741415][58149:58154] CHIP:DMG: { - [1660653438.741448][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653438.741479][58149:58154] CHIP:DMG: AttributePathIB = - [1660653438.741517][58149:58154] CHIP:DMG: { - [1660653438.741553][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653438.741592][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653438.741627][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653438.741660][58149:58154] CHIP:DMG: } - [1660653438.741695][58149:58154] CHIP:DMG: - [1660653438.741732][58149:58154] CHIP:DMG: Data = "" (0 chars), - [1660653438.741764][58149:58154] CHIP:DMG: }, - [1660653438.741800][58149:58154] CHIP:DMG: - [1660653438.741828][58149:58154] CHIP:DMG: }, - [1660653438.741859][58149:58154] CHIP:DMG: - [1660653438.741883][58149:58154] CHIP:DMG: ], - [1660653438.741913][58149:58154] CHIP:DMG: - [1660653438.741938][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653438.741961][58149:58154] CHIP:DMG: } - [1660653438.742081][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653438.742125][58149:58154] CHIP:TOO: NodeLabel: - [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 4th reference device(RD4) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - + #1. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true + [1684321430.691985][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321430.691998][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321430.692025][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321430.692034][136393:136395] CHIP:TOO: Location: in + [1684321430.692062][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321430.692069][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684321430.692091][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510017ca0]: Moving to [AwaitingSu] + [1684321430.692138][136393:136395] CHIP:EM: <<< [E:41660i S:42488 M:180349712 (Ack:108042002)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684321430.692153][136393:136395] CHIP:IN: (S) Sending msg 180349712 on secure session with LSID: 42488 + [1684321430.692466][136393:136395] CHIP:EM: >>> [E:41660i S:42488 M:108042003 (Ack:180349712)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684321430.692478][136393:136395] CHIP:EM: Found matching exchange: 41660i, Delegate: 0x7fb510017cb0 + [1684321430.692492][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349712 from Retrans Table on exchange 41660i + [1684321430.692504][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684321430.692519][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684321430.692526][136393:136395] CHIP:DMG: { + [1684321430.692534][136393:136395] CHIP:DMG: SubscriptionId = 0x46bedde0, + [1684321430.692542][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684321430.692547][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684321430.692552][136393:136395] CHIP:DMG: } + [1684321430.692564][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x46bedde0 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684321430.692575][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510017ca0]: Moving to [Subscripti] + + #2. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684321446.066373][136396:136398] CHIP:DMG: } + [1684321446.066395][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321446.066400][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321446.066409][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321446.066412][136396:136398] CHIP:TOO: Location: in + [1684321446.066420][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321446.066423][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684321446.066429][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000aa80]: Moving to [AwaitingSu] + [1684321446.066443][136396:136398] CHIP:EM: <<< [E:35583i S:50848 M:252532045 (Ack:201846716)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684321446.066447][136396:136398] CHIP:IN: (S) Sending msg 252532045 on secure session with LSID: 50848 + [1684321446.066549][136396:136398] CHIP:EM: >>> [E:35583i S:50848 M:201846717 (Ack:252532045)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684321446.066553][136396:136398] CHIP:EM: Found matching exchange: 35583i, Delegate: 0x7f6a0000aa90 + [1684321446.066556][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532045 from Retrans Table on exchange 35583i + [1684321446.066559][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684321446.066563][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684321446.066565][136396:136398] CHIP:DMG: { + [1684321446.066567][136396:136398] CHIP:DMG: SubscriptionId = 0x9d9e9791, + [1684321446.066569][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684321446.066571][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684321446.066573][136396:136398] CHIP:DMG: } + [1684321446.066576][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x9d9e9791 MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + [1684321446.066579][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000aa80]: Moving to [Subscripti] + + #3. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + 1684321460.706260][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321460.706265][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321460.706275][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321460.706279][136409:136411] CHIP:TOO: Location: in + [1684321460.706289][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321460.706292][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684321460.706300][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc00f140]: Moving to [AwaitingSu] + [1684321460.706312][136409:136411] CHIP:EM: <<< [E:42345i S:52489 M:199100311 (Ack:174085425)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684321460.706317][136409:136411] CHIP:IN: (S) Sending msg 199100311 on secure session with LSID: 52489 + [1684321460.706424][136409:136411] CHIP:EM: >>> [E:42345i S:52489 M:174085426 (Ack:199100311)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684321460.706428][136409:136411] CHIP:EM: Found matching exchange: 42345i, Delegate: 0x7f53dc00f150 + [1684321460.706432][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100311 from Retrans Table on exchange 42345i + [1684321460.706436][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684321460.706441][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684321460.706443][136409:136411] CHIP:DMG: { + [1684321460.706446][136409:136411] CHIP:DMG: SubscriptionId = 0x1387ade2, + [1684321460.706449][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684321460.706452][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684321460.706455][136409:136411] CHIP:DMG: } + [1684321460.706458][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x1387ade2 MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + [1684321460.706462][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc00f140]: Moving to [Subscripti] + + + + #4. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684321487.408563][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321487.408572][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321487.408590][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321487.408595][136403:136405] CHIP:TOO: Location: in + [1684321487.408612][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321487.408616][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684321487.408631][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc015b50]: Moving to [AwaitingSu] + [1684321487.408657][136403:136405] CHIP:EM: <<< [E:28543i S:21311 M:202084353 (Ack:249111937)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684321487.408665][136403:136405] CHIP:IN: (S) Sending msg 202084353 on secure session with LSID: 21311 + [1684321487.408861][136403:136405] CHIP:EM: >>> [E:28543i S:21311 M:249111938 (Ack:202084353)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684321487.408868][136403:136405] CHIP:EM: Found matching exchange: 28543i, Delegate: 0x7ff4cc015b60 + [1684321487.408875][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084353 from Retrans Table on exchange 28543i + [1684321487.408881][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684321487.408888][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684321487.408891][136403:136405] CHIP:DMG: { + [1684321487.408895][136403:136405] CHIP:DMG: SubscriptionId = 0x54356760, + [1684321487.408899][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684321487.408902][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684321487.408906][136403:136405] CHIP:DMG: } + [1684321487.408910][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0x54356760 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + [1684321487.408916][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc015b50]: Moving to [Subscripti] + + + + #5. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684321505.359231][136414:136416] CHIP:DMG: } + [1684321505.359291][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321505.359298][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321505.359312][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321505.359316][136414:136416] CHIP:TOO: Location: in + [1684321505.359331][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321505.359334][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684321505.359345][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4009230]: Moving to [AwaitingSu] + [1684321505.359365][136414:136416] CHIP:EM: <<< [E:5170i S:40695 M:166661002 (Ack:81061549)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684321505.359370][136414:136416] CHIP:IN: (S) Sending msg 166661002 on secure session with LSID: 40695 + [1684321505.359510][136414:136416] CHIP:EM: >>> [E:5170i S:40695 M:81061550 (Ack:166661002)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684321505.359515][136414:136416] CHIP:EM: Found matching exchange: 5170i, Delegate: 0x7f58a4009240 + [1684321505.359519][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166661002 from Retrans Table on exchange 5170i + [1684321505.359524][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684321505.359530][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684321505.359533][136414:136416] CHIP:DMG: { + [1684321505.359536][136414:136416] CHIP:DMG: SubscriptionId = 0xd52f8dad, + [1684321505.359539][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684321505.359542][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684321505.359545][136414:136416] CHIP:DMG: } + [1684321505.359548][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0xd52f8dad MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 + [1684321505.359553][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4009230]: Moving to [Subscripti] Once all 15 subscriptions are active send one more subscriptiopn command in RD1 and Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. - basicinformation subscribe product-id 100 1000 1 0 --keepSubscriptions 1 - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: ProductID: 32769 - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] + On the 1st reference device(RD1) send a Subscribe Request Messages to DUT. + basicinformation subscribe product-id 100 1000 1 0 --keepSubscriptions true + [1684321545.164738][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3947588725 + [1684321545.164763][136393:136395] CHIP:TOO: ProductID: 32769 + [1684321545.164787][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb51001bcc0]: Moving to [AwaitingSu] + [1684321545.164851][136393:136395] CHIP:EM: <<< [E:41661i S:42488 M:180349715 (Ack:108042004)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684321545.164868][136393:136395] CHIP:IN: (S) Sending msg 180349715 on secure session with LSID: 42488 + [1684321545.165191][136393:136395] CHIP:EM: >>> [E:41661i S:42488 M:108042005 (Ack:180349715)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684321545.165201][136393:136395] CHIP:EM: Found matching exchange: 41661i, Delegate: 0x7fb51001bcd0 + [1684321545.165210][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349715 from Retrans Table on exchange 41661i + [1684321545.165218][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684321545.165229][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684321545.165234][136393:136395] CHIP:DMG: { + [1684321545.165238][136393:136395] CHIP:DMG: SubscriptionId = 0xe9abeae7, + [1684321545.165253][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684321545.165263][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684321545.165271][136393:136395] CHIP:DMG: } + [1684321545.165282][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0xe9abeae7 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684321545.165295][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb51001bcc0]: Moving to [Subscripti] disabled: true - label: @@ -1106,296 +506,142 @@ tests: Requests are activated, RD1 sends 6 subscription request messages with each of them having 3 different paths." verification: | - After provisioning again the values are been set to default values such as node label= " ". so in VS mentioned as node-label="", location=XX and local-config-disabled=FALSE but if your going to verify 3 steps contentiously you will get the attribute value as node-label="newlabel", location=in and local-config-disabled=TRUE. - - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest message from each Reference Device(Eg. RD1...) to DUT - and verify all the subscription requests are succes. and in The subscription request - from RD1 should contain 6 paths, Verify that the subscriptions from RD2, RD3, RD4 and - RD5 are not affected. - - on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653125.592310][58143:58148] CHIP:DMG: { - [1660653125.592348][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653125.592387][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653125.592435][58143:58148] CHIP:DMG: [ - [1660653125.592472][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653125.592527][58143:58148] CHIP:DMG: { - [1660653125.592568][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653125.592618][58143:58148] CHIP:DMG: { - [1660653125.592675][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653125.592726][58143:58148] CHIP:DMG: AttributePathIB = - [1660653125.592785][58143:58148] CHIP:DMG: { - [1660653125.592839][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653125.592896][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653125.592946][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653125.592997][58143:58148] CHIP:DMG: } - [1660653125.593051][58143:58148] CHIP:DMG: - [1660653125.593109][58143:58148] CHIP:DMG: Data = "" (0 chars), - [1660653125.593158][58143:58148] CHIP:DMG: }, - [1660653125.593212][58143:58148] CHIP:DMG: - [1660653125.593255][58143:58148] CHIP:DMG: }, - [1660653125.593305][58143:58148] CHIP:DMG: - [1660653125.593342][58143:58148] CHIP:DMG: ], - [1660653125.593390][58143:58148] CHIP:DMG: - [1660653125.593428][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653125.593464][58143:58148] CHIP:DMG: } - [1660653125.593640][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653125.593706][58143:58148] CHIP:TOO: NodeLabel: - [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653198.460359][58143:58148] CHIP:DMG: { - [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653198.460487][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653198.460567][58143:58148] CHIP:DMG: [ - [1660653198.460630][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653198.460718][58143:58148] CHIP:DMG: { - [1660653198.460786][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653198.460871][58143:58148] CHIP:DMG: { - [1660653198.460966][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653198.461058][58143:58148] CHIP:DMG: AttributePathIB = - [1660653198.461147][58143:58148] CHIP:DMG: { - [1660653198.461244][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653198.461335][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653198.461427][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653198.461513][58143:58148] CHIP:DMG: } - [1660653198.461604][58143:58148] CHIP:DMG: - [1660653198.461699][58143:58148] CHIP:DMG: Data = "XX" (2 chars), - [1660653198.461782][58143:58148] CHIP:DMG: }, - [1660653198.461880][58143:58148] CHIP:DMG: - [1660653198.461952][58143:58148] CHIP:DMG: }, - [1660653198.462037][58143:58148] CHIP:DMG: - [1660653198.462099][58143:58148] CHIP:DMG: ], - [1660653198.462176][58143:58148] CHIP:DMG: - [1660653198.462241][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653198.462303][58143:58148] CHIP:DMG: } - [1660653198.462524][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653198.462606][58143:58148] CHIP:TOO: Location: XX - [1660653198.462695][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68010fa0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i - [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653260.633387][58143:58148] CHIP:DMG: { - [1660653260.633442][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653260.633493][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653260.633560][58143:58148] CHIP:DMG: [ - [1660653260.633615][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653260.633691][58143:58148] CHIP:DMG: { - [1660653260.633755][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653260.633820][58143:58148] CHIP:DMG: { - [1660653260.633891][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653260.633964][58143:58148] CHIP:DMG: AttributePathIB = - [1660653260.634046][58143:58148] CHIP:DMG: { - [1660653260.634130][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653260.634212][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653260.634292][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653260.634366][58143:58148] CHIP:DMG: } - [1660653260.634445][58143:58148] CHIP:DMG: - [1660653260.634523][58143:58148] CHIP:DMG: Data = false, - [1660653260.634600][58143:58148] CHIP:DMG: }, - [1660653260.634674][58143:58148] CHIP:DMG: - [1660653260.634736][58143:58148] CHIP:DMG: }, - [1660653260.634802][58143:58148] CHIP:DMG: - [1660653260.634855][58143:58148] CHIP:DMG: ], - [1660653260.635066][58143:58148] CHIP:DMG: - [1660653260.635128][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653260.635181][58143:58148] CHIP:DMG: } - [1660653260.635371][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653260.635446][58143:58148] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653260.635523][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68011170]: Moving to [AwaitingSu] - - - - - on the 3nd reference device(RD3) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i - [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653438.741143][58149:58154] CHIP:DMG: { - [1660653438.741236][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653438.741262][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653438.741294][58149:58154] CHIP:DMG: [ - [1660653438.741318][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653438.741352][58149:58154] CHIP:DMG: { - [1660653438.741380][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653438.741415][58149:58154] CHIP:DMG: { - [1660653438.741448][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653438.741479][58149:58154] CHIP:DMG: AttributePathIB = - [1660653438.741517][58149:58154] CHIP:DMG: { - [1660653438.741553][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653438.741592][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653438.741627][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653438.741660][58149:58154] CHIP:DMG: } - [1660653438.741695][58149:58154] CHIP:DMG: - [1660653438.741732][58149:58154] CHIP:DMG: Data = "" (0 chars), - [1660653438.741764][58149:58154] CHIP:DMG: }, - [1660653438.741800][58149:58154] CHIP:DMG: - [1660653438.741828][58149:58154] CHIP:DMG: }, - [1660653438.741859][58149:58154] CHIP:DMG: - [1660653438.741883][58149:58154] CHIP:DMG: ], - [1660653438.741913][58149:58154] CHIP:DMG: - [1660653438.741938][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653438.741961][58149:58154] CHIP:DMG: } - [1660653438.742081][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653438.742125][58149:58154] CHIP:TOO: NodeLabel: - [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653500.501007][58149:58154] CHIP:DMG: { - [1660653500.501077][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, - [1660653500.501126][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653500.501204][58149:58154] CHIP:DMG: [ - [1660653500.501253][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653500.501323][58149:58154] CHIP:DMG: { - [1660653500.501397][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653500.501466][58149:58154] CHIP:DMG: { - [1660653500.501550][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653500.501615][58149:58154] CHIP:DMG: AttributePathIB = - [1660653500.501698][58149:58154] CHIP:DMG: { - [1660653500.501765][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653500.501835][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653500.501905][58149:58154] CHIP:DMG: Attribute = 0x0000_0006, - [1660653500.501971][58149:58154] CHIP:DMG: } - [1660653500.502041][58149:58154] CHIP:DMG: - [1660653500.502111][58149:58154] CHIP:DMG: Data = "XX" (2 chars), - [1660653500.502176][58149:58154] CHIP:DMG: }, - [1660653500.502249][58149:58154] CHIP:DMG: - [1660653500.502303][58149:58154] CHIP:DMG: }, - [1660653500.502367][58149:58154] CHIP:DMG: - [1660653500.502414][58149:58154] CHIP:DMG: ], - [1660653500.502473][58149:58154] CHIP:DMG: - [1660653500.502520][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653500.502567][58149:58154] CHIP:DMG: } - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653545.650817][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653545.650842][58149:58154] CHIP:DMG: { - [1660653545.650864][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, - . - . - . - [1660653545.651494][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653545.651514][58149:58154] CHIP:DMG: } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 4nd reference device(RD4) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - on the 1st reference device(RD1) send 6 Subscribe Request Messages to DUT, and Verify that the Subscriptions from RD2, RD3, RD4, RD5 are not affected. - - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 - [1660653005.343616][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653005.343884][58131:58136] CHIP:TOO: Location: XX - [1660653005.343983][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa00129b0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 - [1660653043.576169][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653043.576207][58131:58136] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653043.576240][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0012b40]: Moving to [AwaitingSu] - - - - - basicinformation subscribe product-id 100 1000 1 0 --keepSubscriptions 1 - - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: ProductID: 32769 - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] - - - basicinformation subscribe software-version 100 1000 1 0 --keepSubscriptions 1 - - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: software-version: - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] + #1. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684322787.342206][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322787.342219][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322787.342246][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322787.342255][136396:136398] CHIP:TOO: Location: in + [1684322787.342282][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322787.342289][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684322787.342308][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0001a460]: Moving to [AwaitingSu] + [1684322787.342351][136396:136398] CHIP:EM: <<< [E:35584i S:50848 M:252532050 (Ack:201846722)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684322787.342363][136396:136398] CHIP:IN: (S) Sending msg 252532050 on secure session with LSID: 50848 + [1684322787.342676][136396:136398] CHIP:EM: >>> [E:35584i S:50848 M:201846723 (Ack:252532050)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684322787.342686][136396:136398] CHIP:EM: Found matching exchange: 35584i, Delegate: 0x7f6a0001a470 + [1684322787.342698][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532050 from Retrans Table on exchange 35584i + [1684322787.342708][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684322787.342719][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684322787.342725][136396:136398] CHIP:DMG: { + [1684322787.342732][136396:136398] CHIP:DMG: SubscriptionId = 0x5275cbaa, + [1684322787.342739][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684322787.342745][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684322787.342751][136396:136398] CHIP:DMG: } + [1684322787.342759][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x5275cbaa MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + [1684322787.342769][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0001a460]: Moving to [Subscripti] + + + + + #2. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + [1684322803.467486][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322803.467490][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322803.467499][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322803.467502][136409:136411] CHIP:TOO: Location: in + [1684322803.467511][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322803.467513][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684322803.467520][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc01bb90]: Moving to [AwaitingSu] + [1684322803.467531][136409:136411] CHIP:EM: <<< [E:42346i S:52489 M:199100316 (Ack:174085431)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684322803.467535][136409:136411] CHIP:IN: (S) Sending msg 199100316 on secure session with LSID: 52489 + [1684322803.467616][136409:136411] CHIP:EM: >>> [E:42346i S:52489 M:174085432 (Ack:199100316)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684322803.467619][136409:136411] CHIP:EM: Found matching exchange: 42346i, Delegate: 0x7f53dc01bba0 + [1684322803.467622][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100316 from Retrans Table on exchange 42346i + [1684322803.467626][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684322803.467630][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684322803.467632][136409:136411] CHIP:DMG: { + [1684322803.467633][136409:136411] CHIP:DMG: SubscriptionId = 0x66b265e4, + [1684322803.467636][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684322803.467638][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684322803.467639][136409:136411] CHIP:DMG: } + [1684322803.467642][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x66b265e4 MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + [1684322803.467645][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc01bb90]: Moving to [Subscripti] + + + + #3. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684322837.225922][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322837.225930][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322837.225940][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322837.225943][136403:136405] CHIP:TOO: Location: in + [1684322837.225952][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322837.225955][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684322837.225961][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc019c70]: Moving to [AwaitingSu] + [1684322837.225980][136403:136405] CHIP:EM: <<< [E:28544i S:21311 M:202084358 (Ack:249111943)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684322837.225984][136403:136405] CHIP:IN: (S) Sending msg 202084358 on secure session with LSID: 21311 + [1684322837.226089][136403:136405] CHIP:EM: >>> [E:28544i S:21311 M:249111944 (Ack:202084358)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684322837.226093][136403:136405] CHIP:EM: Found matching exchange: 28544i, Delegate: 0x7ff4cc019c80 + [1684322837.226096][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084358 from Retrans Table on exchange 28544i + [1684322837.226099][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684322837.226103][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684322837.226106][136403:136405] CHIP:DMG: { + [1684322837.226108][136403:136405] CHIP:DMG: SubscriptionId = 0x169a2c48, + [1684322837.226110][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684322837.226112][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684322837.226114][136403:136405] CHIP:DMG: } + [1684322837.226117][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0x169a2c48 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + [1684322837.226120][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc019c70]: Moving to [Subscripti] + + + + #4. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684322852.957519][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322852.957525][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322852.957537][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322852.957541][136414:136416] CHIP:TOO: Location: in + [1684322852.957552][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322852.957556][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684322852.957564][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a400e880]: Moving to [AwaitingSu] + [1684322852.957585][136414:136416] CHIP:EM: <<< [E:5171i S:40695 M:166661007 (Ack:81061555)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684322852.957590][136414:136416] CHIP:IN: (S) Sending msg 166661007 on secure session with LSID: 40695 + [1684322852.957730][136414:136416] CHIP:EM: >>> [E:5171i S:40695 M:81061556 (Ack:166661007)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684322852.957734][136414:136416] CHIP:EM: Found matching exchange: 5171i, Delegate: 0x7f58a400e890 + [1684322852.957739][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166661007 from Retrans Table on exchange 5171i + [1684322852.957744][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684322852.957749][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684322852.957752][136414:136416] CHIP:DMG: { + [1684322852.957755][136414:136416] CHIP:DMG: SubscriptionId = 0xddeeb045, + [1684322852.957758][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684322852.957761][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684322852.957763][136414:136416] CHIP:DMG: } + [1684322852.957767][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0xddeeb045 MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 + [1684322852.957771][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a400e880]: Moving to [Subscripti] + Once all 15 subscriptions are active send one more subscriptiopn command in RD1 and Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. - basicinformation subscribe hardware-version 100 1000 1 0 --keepSubscriptions 1 - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: hardware-version: - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] + #5. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028,0x0028,0x0028,0x0028' '5,6,16,1,2,3' 100 1000 1 '0,0,0,0,0,0' --keepSubscriptions true + [1684322869.703109][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0003 DataVersion: 3947588725 + [1684322869.703124][136393:136395] CHIP:TOO: ProductName: TEST_PRODUCT + [1684322869.703160][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0002 DataVersion: 3947588725 + [1684322869.703506][136393:136395] CHIP:TOO: VendorID: 65521 + [1684322869.703534][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0001 DataVersion: 3947588725 + [1684322869.703541][136393:136395] CHIP:TOO: VendorName: TEST_VENDOR + [1684322869.703567][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322869.703577][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322869.703602][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322869.703609][136393:136395] CHIP:TOO: Location: in + [1684322869.703634][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322869.703641][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684322869.703668][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb5100236a0]: Moving to [AwaitingSu] + [1684322869.703716][136393:136395] CHIP:EM: <<< [E:41662i S:42488 M:180349721 (Ack:108042012)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684322869.703728][136393:136395] CHIP:IN: (S) Sending msg 180349721 on secure session with LSID: 42488 + [1684322869.704068][136393:136395] CHIP:EM: >>> [E:41662i S:42488 M:108042013 (Ack:180349721)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684322869.704072][136393:136395] CHIP:EM: Found matching exchange: 41662i, Delegate: 0x7fb5100236b0 + [1684322869.704077][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349721 from Retrans Table on exchange 41662i + [1684322869.704081][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684322869.704087][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684322869.704089][136393:136395] CHIP:DMG: { + [1684322869.704092][136393:136395] CHIP:DMG: SubscriptionId = 0x3e46ea65, + [1684322869.704095][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684322869.704098][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684322869.704101][136393:136395] CHIP:DMG: } + [1684322869.704105][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x3e46ea65 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684322869.704109][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb5100236a0]: Moving to [Subscripti] disabled: true - label: @@ -1405,289 +651,142 @@ tests: Subscription Requests are activated, send a Subscribe request messages having 3 different paths from RD1A to the DUT." verification: | - After provisioning again the values are been set to default values such as node label= " ". so in VS mentioned as node-label="", location=XX and local-config-disabled=FALSE but if your going to verify 3 steps contentiously you will get the attribute value as node-label="newlabel", location=in and local-config-disabled=TRUE. - - - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest message from each Reference Device(RD1, RD2, RD3, RD4, RD5) to DUT - and Verify that the subscription request messages from RD1, RD2, RD3, RD4 and RD5 succeed, Once all the Subscription Requests are activated, send a Subscribe request messages having 3 different paths from RD1A to the DUT, Verify that the Subscription from RD1A gets INVALID_ACTION and the previous subscriptions from RD2, RD3, RD4 and RD5 are not affected. - - - #1. on the 1st reference device(RD1) send 3 Subscribe Request Messages to DUT. - basicinformation subscribe node-label 10 100 1 0 --keepSubscriptions 1 - [1683023740.651692][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023740.651797][20746:20748] CHIP:TOO: NodeLabel: - [1683023740.651955][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa00113f0]: Moving to [AwaitingSu] - - [1683023740.730917][20746:20748] CHIP:DMG: SubscribeResponse is received - [1683023740.730997][20746:20748] CHIP:DMG: SubscribeResponseMessage = - [1683023740.731053][20746:20748] CHIP:DMG: { - [1683023740.731108][20746:20748] CHIP:DMG: SubscriptionId = 0x17668ae8, - [1683023740.731168][20746:20748] CHIP:DMG: MaxInterval = 0x64, - [1683023740.731228][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683023740.731336][20746:20748] CHIP:DMG: } - [1683023740.731398][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0x17668ae8 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 - [1683023740.731462][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa00113f0]: Moving to [Subscripti] - - basicinformation subscribe location 10 100 1 0 --keepSubscriptions 1 - [1683023745.401394][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023745.401451][20746:20748] CHIP:TOO: Location: XX - [1683023745.401510][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa0012410]: Moving to [AwaitingSu] - - [1683023745.406163][20746:20748] CHIP:DMG: SubscribeResponse is received - [1683023745.406218][20746:20748] CHIP:DMG: SubscribeResponseMessage = - [1683023745.406255][20746:20748] CHIP:DMG: { - [1683023745.406291][20746:20748] CHIP:DMG: SubscriptionId = 0xf8319a9f, - [1683023745.406332][20746:20748] CHIP:DMG: MaxInterval = 0x64, - [1683023745.406371][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683023745.406408][20746:20748] CHIP:DMG: } - [1683023745.406448][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0xf8319a9f MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 - - basicinformation subscribe local-config-disabled 10 100 1 0 --keepSubscriptions 1 - [1683023751.447899][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023751.447962][20746:20748] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023751.448022][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa000ec00]: Moving to [AwaitingSu] - - [1683023751.775533][20746:20748] CHIP:DMG: SubscribeResponse is received - [1683023751.775617][20746:20748] CHIP:DMG: SubscribeResponseMessage = - [1683023751.775673][20746:20748] CHIP:DMG: { - [1683023751.775728][20746:20748] CHIP:DMG: SubscriptionId = 0xa2ce2aa3, - [1683023751.775789][20746:20748] CHIP:DMG: MaxInterval = 0x64, - [1683023751.775848][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683023751.775903][20746:20748] CHIP:DMG: } - [1683023751.775965][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0xa2ce2aa3 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 - - - #2. on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 - [1683019368.769185][16375:16377] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 416649077 - [1683019368.769287][16375:16377] CHIP:TOO: NodeLabel: - [1683019368.769397][16375:16377] CHIP:DMG: MoveToState ReadClient[0xffff78015930]: Moving to [AwaitingSu] - - [1683019368.774602][16375:16377] CHIP:EM: Found matching exchange: 19856i, Delegate: 0xffff78015940 - - [1683019368.774748][16375:16377] CHIP:DMG: SubscribeResponse is received - [1683019368.774826][16375:16377] CHIP:DMG: SubscribeResponseMessage = - [1683019368.774883][16375:16377] CHIP:DMG: { - [1683019368.774962][16375:16377] CHIP:DMG: SubscriptionId = 0xb7a1a85e, - [1683019368.775024][16375:16377] CHIP:DMG: MaxInterval = 0x3e8, - [1683019368.775084][16375:16377] CHIP:DMG: InteractionModelRevision = 1 - [1683019368.775163][16375:16377] CHIP:DMG: } - [1683019368.775223][16375:16377] CHIP:DMG: Subscription established with SubscriptionID = 0xb7a1a85e MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 - - basicinformation subscribe location 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 - [1683023771.051381][16546:16548] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023771.051459][16546:16548] CHIP:TOO: Location: XX - [1683023771.051545][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff78015c80]: Moving to [AwaitingSu] - - [1683023771.083290][16546:16548] CHIP:DMG: SubscribeResponse is received - [1683023771.083352][16546:16548] CHIP:DMG: SubscribeResponseMessage = - [1683023771.083394][16546:16548] CHIP:DMG: { - [1683023771.083436][16546:16548] CHIP:DMG: SubscriptionId = 0xa5ff48a4, - [1683023771.083481][16546:16548] CHIP:DMG: MaxInterval = 0x64, - [1683023771.083526][16546:16548] CHIP:DMG: InteractionModelRevision = 1 - [1683023771.083568][16546:16548] CHIP:DMG: } - [1683023771.083613][16546:16548] CHIP:DMG: Subscription established with SubscriptionID = 0xa5ff48a4 MinInterval = 10s MaxInterval = 100s Peer = 04:0000000000000002 - [1683023771.083661][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff78015c80]: Moving to [Subscripti] - - - basicinformation subscribe local-config-disabled 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 - [1683023801.394622][16546:16548] CHIP:DMG: } - [1683023801.394810][16546:16548] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023801.394881][16546:16548] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023801.394955][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff7800ab00]: Moving to [AwaitingSu] - - [1683023801.610439][16546:16548] CHIP:DMG: SubscribeResponse is received - [1683023801.610523][16546:16548] CHIP:DMG: SubscribeResponseMessage = - [1683023801.610580][16546:16548] CHIP:DMG: { - [1683023801.610635][16546:16548] CHIP:DMG: SubscriptionId = 0xbbbba6b2, - [1683023801.610695][16546:16548] CHIP:DMG: MaxInterval = 0x64, - [1683023801.610754][16546:16548] CHIP:DMG: InteractionModelRevision = 1 - [1683023801.610809][16546:16548] CHIP:DMG: } - [1683023801.610877][16546:16548] CHIP:DMG: Subscription established with SubscriptionID = 0xbbbba6b2 MinInterval = 10s MaxInterval = 100s Peer = 04:0000000000000002 - [1683023801.610941][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff7800ab00]: Moving to [Subscripti] - - - - #3. on the 3rd reference device(RD3) send 3 Subscribe Request Messages to DUT. - subscribe node-label 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 - - basicinformation [1683023811.287511][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023811.287610][16549:16551] CHIP:TOO: NodeLabel: - [1683023811.287717][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c00dbe0]: Moving to [AwaitingSu] - - [1683023811.322041][16549:16551] CHIP:DMG: SubscribeResponse is received - [1683023811.322102][16549:16551] CHIP:DMG: SubscribeResponseMessage = - [1683023811.322145][16549:16551] CHIP:DMG: { - [1683023811.322187][16549:16551] CHIP:DMG: SubscriptionId = 0x72bdea7c, - [1683023811.322242][16549:16551] CHIP:DMG: MaxInterval = 0x64, - [1683023811.322287][16549:16551] CHIP:DMG: InteractionModelRevision = 1 - [1683023811.322328][16549:16551] CHIP:DMG: } - [1683023811.322379][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0x72bdea7c MinInterval = 10s MaxInterval = 100s Peer = 05:0000000000000003 - [1683023811.322428][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c00dbe0]: Moving to [Subscripti] - - basicinformation subscribe location 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1683023815.007685][16549:16551] CHIP:DMG: } - [1683023815.007910][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023815.007988][16549:16551] CHIP:TOO: Location: XX - [1683023815.008073][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c009820]: Moving to [AwaitingSu] - - [1683023815.113033][16549:16551] CHIP:DMG: SubscribeResponse is received - [1683023815.113104][16549:16551] CHIP:DMG: SubscribeResponseMessage = - [1683023815.113154][16549:16551] CHIP:DMG: { - [1683023815.113201][16549:16551] CHIP:DMG: SubscriptionId = 0xab3d91df, - [1683023815.113263][16549:16551] CHIP:DMG: MaxInterval = 0x64, - [1683023815.113315][16549:16551] CHIP:DMG: InteractionModelRevision = 1 - [1683023815.113363][16549:16551] CHIP:DMG: } - [1683023815.113414][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0xab3d91df - - basicinformation subscribe local-config-disabled 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1683023821.155994][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023821.156071][16549:16551] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023821.156156][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c0065e0]: Moving to [AwaitingSu] - - [1683023821.513855][16549:16551] CHIP:DMG: SubscribeResponse is received - [1683023821.513938][16549:16551] CHIP:DMG: SubscribeResponseMessage = - [1683023821.513997][16549:16551] CHIP:DMG: { - [1683023821.514051][16549:16551] CHIP:DMG: SubscriptionId = 0xed6b320a, - [1683023821.514112][16549:16551] CHIP:DMG: MaxInterval = 0x64, - [1683023821.514171][16549:16551] CHIP:DMG: InteractionModelRevision = 1 - [1683023821.514226][16549:16551] CHIP:DMG: } - [1683023821.514286][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0xed6b320a MinInterval = 10s MaxInterval = 100s Peer = 05:0000000000000003 - [1683023821.514350][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c0065e0]: Moving to [Subscripti] - - - - - #4. on the 4th reference device(RD4) send 3 Subscribe Request Messages to DUT. - basicinformation subscribe node-label 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1683023829.174556][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023829.174623][16552:16554] CHIP:TOO: NodeLabel: - [1683023829.174695][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00ea60]: Moving to [AwaitingSu] - - [1683023829.240342][16552:16554] CHIP:DMG: SubscribeResponse is received - [1683023829.240425][16552:16554] CHIP:DMG: SubscribeResponseMessage = - [1683023829.240482][16552:16554] CHIP:DMG: { - [1683023829.240536][16552:16554] CHIP:DMG: SubscriptionId = 0x315f789, - [1683023829.240602][16552:16554] CHIP:DMG: MaxInterval = 0x64, - [1683023829.240699][16552:16554] CHIP:DMG: InteractionModelRevision = 1 - [1683023829.240759][16552:16554] CHIP:DMG: } - [1683023829.240821][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x0315f789 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 - [1683023829.240884][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00ea60]: Moving to [Subscripti] - - basicinformation subscribe location 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1683023833.561934][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023833.562012][16552:16554] CHIP:TOO: Location: XX - [1683023833.562099][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00f7a0]: Moving to [AwaitingSu] - - [1683023833.594233][16552:16554] CHIP:DMG: SubscribeResponse is received - [1683023833.594312][16552:16554] CHIP:DMG: SubscribeResponseMessage = - [1683023833.594368][16552:16554] CHIP:DMG: { - [1683023833.594423][16552:16554] CHIP:DMG: SubscriptionId = 0x309d8fe3, - [1683023833.594483][16552:16554] CHIP:DMG: MaxInterval = 0x64, - [1683023833.594542][16552:16554] CHIP:DMG: InteractionModelRevision = 1 - [1683023833.594598][16552:16554] CHIP:DMG: } - [1683023833.594657][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x309d8fe3 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 - [1683023833.594721][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00f7a0]: Moving to [Subscripti] - - basicinformation subscribe local-config-disabled 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1683023839.311550][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023839.311601][16552:16554] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023839.311658][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00d980]: Moving to [AwaitingSu] - - [1683023839.630453][16552:16554] CHIP:DMG: SubscribeResponse is received - [1683023839.630535][16552:16554] CHIP:DMG: SubscribeResponseMessage = - [1683023839.630591][16552:16554] CHIP:DMG: { - [1683023839.630646][16552:16554] CHIP:DMG: SubscriptionId = 0x4e972da5, - [1683023839.630706][16552:16554] CHIP:DMG: MaxInterval = 0x64, - [1683023839.630765][16552:16554] CHIP:DMG: InteractionModelRevision = 1 - [1683023839.630820][16552:16554] CHIP:DMG: } - [1683023839.630880][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x4e972da5 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 - [1683023839.630943][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00d980]: Moving to [Subscripti] - - - - #5. on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 - [1683023847.548455][16555:16557] CHIP:DMG: } - [1683023847.548609][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023847.548680][16555:16557] CHIP:TOO: NodeLabel: - [1683023847.548807][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0018c20]: Moving to [AwaitingSu] - - [1683023847.560487][16555:16557] CHIP:DMG: SubscribeResponse is received - [1683023847.560529][16555:16557] CHIP:DMG: SubscribeResponseMessage = - [1683023847.560556][16555:16557] CHIP:DMG: { - [1683023847.560582][16555:16557] CHIP:DMG: SubscriptionId = 0x734b2439, - [1683023847.560612][16555:16557] CHIP:DMG: MaxInterval = 0x64, - [1683023847.560640][16555:16557] CHIP:DMG: InteractionModelRevision = 1 - [1683023847.560727][16555:16557] CHIP:DMG: } - - - basicinformation subscribe location 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 - [1683023853.665414][16555:16557] CHIP:DMG: } - [1683023853.665640][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023853.665716][16555:16557] CHIP:TOO: Location: XX - [1683023853.665801][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa000dbe0]: Moving to [AwaitingSu] - - [1683023854.271536][16555:16557] CHIP:DMG: SubscribeResponse is received - [1683023854.271621][16555:16557] CHIP:DMG: SubscribeResponseMessage = - [1683023854.271677][16555:16557] CHIP:DMG: { - [1683023854.271733][16555:16557] CHIP:DMG: SubscriptionId = 0x9538a40, - [1683023854.271795][16555:16557] CHIP:DMG: MaxInterval = 0x64, - [1683023854.271854][16555:16557] CHIP:DMG: InteractionModelRevision = 1 - [1683023854.271909][16555:16557] CHIP:DMG: } - [1683023854.271970][16555:16557] CHIP:DMG: Subscription established with SubscriptionID = 0x09538a40 MinInterval = 10s MaxInterval = 100s Peer = 07:0000000000000005 - [1683023854.272035][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa000dbe0]: Moving to [Subscripti] - - - basicinformation subscribe local-config-disabled 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 - [1683023862.573994][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023862.574047][16555:16557] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023862.574104][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0014cc0]: Moving to [AwaitingSu] - - [1683023862.758142][16555:16557] CHIP:DMG: SubscribeResponse is received - [1683023862.758224][16555:16557] CHIP:DMG: SubscribeResponseMessage = - [1683023862.758280][16555:16557] CHIP:DMG: { - [1683023862.758334][16555:16557] CHIP:DMG: SubscriptionId = 0xe04a3425, - [1683023862.758395][16555:16557] CHIP:DMG: MaxInterval = 0x64, - [1683023862.758453][16555:16557] CHIP:DMG: InteractionModelRevision = 1 - [1683023862.758508][16555:16557] CHIP:DMG: } - [1683023862.758568][16555:16557] CHIP:DMG: Subscription established with SubscriptionID = 0xe04a3425 MinInterval = 10s MaxInterval = 100s Peer = 07:0000000000000005 - [1683023862.758631][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0014cc0]: Moving to [Subscripti] + #1. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true + [1684323009.937251][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323009.937257][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323009.937274][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323009.937279][136393:136395] CHIP:TOO: Location: in + [1684323009.937293][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323009.937298][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684323009.937308][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510002110]: Moving to [AwaitingSu] + [1684323009.937334][136393:136395] CHIP:EM: <<< [E:41663i S:42488 M:180349725 (Ack:108042016)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684323009.937339][136393:136395] CHIP:IN: (S) Sending msg 180349725 on secure session with LSID: 42488 + [1684323009.937486][136393:136395] CHIP:EM: >>> [E:41663i S:42488 M:108042017 (Ack:180349725)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684323009.937491][136393:136395] CHIP:EM: Found matching exchange: 41663i, Delegate: 0x7fb510002120 + [1684323009.937496][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349725 from Retrans Table on exchange 41663i + [1684323009.937501][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684323009.937506][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684323009.937509][136393:136395] CHIP:DMG: { + [1684323009.937511][136393:136395] CHIP:DMG: SubscriptionId = 0x11c7cc15, + [1684323009.937514][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684323009.937517][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684323009.937519][136393:136395] CHIP:DMG: } + [1684323009.937523][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x11c7cc15 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684323009.937527][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510002110]: Moving to [Subscripti] + + + #2. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684323023.679481][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323023.679488][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323023.679503][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323023.679508][136396:136398] CHIP:TOO: Location: in + [1684323023.679521][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323023.679525][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684323023.679535][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000a890]: Moving to [AwaitingSu] + [1684323023.679556][136396:136398] CHIP:EM: <<< [E:35585i S:50848 M:252532054 (Ack:201846726)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684323023.679563][136396:136398] CHIP:IN: (S) Sending msg 252532054 on secure session with LSID: 50848 + [1684323023.679719][136396:136398] CHIP:EM: >>> [E:35585i S:50848 M:201846727 (Ack:252532054)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684323023.679724][136396:136398] CHIP:EM: Found matching exchange: 35585i, Delegate: 0x7f6a0000a8a0 + [1684323023.679728][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532054 from Retrans Table on exchange 35585i + [1684323023.679733][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684323023.679737][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684323023.679740][136396:136398] CHIP:DMG: { + [1684323023.679742][136396:136398] CHIP:DMG: SubscriptionId = 0x9aba1995, + [1684323023.679745][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684323023.679747][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684323023.679749][136396:136398] CHIP:DMG: } + [1684323023.679752][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x9aba1995 MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + [1684323023.679756][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000a890]: Moving to [Subscripti] + + + + #3. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + [1684323039.115907][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323039.115916][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323039.115943][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323039.115949][136409:136411] CHIP:TOO: Location: in + [1684323039.115977][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323039.115981][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684323039.116000][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc016c20]: Moving to [AwaitingSu] + [1684323039.116030][136409:136411] CHIP:EM: <<< [E:42347i S:52489 M:199100320 (Ack:174085435)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684323039.116039][136409:136411] CHIP:IN: (S) Sending msg 199100320 on secure session with LSID: 52489 + [1684323039.116217][136409:136411] CHIP:EM: >>> [E:42347i S:52489 M:174085436 (Ack:199100320)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684323039.116226][136409:136411] CHIP:EM: Found matching exchange: 42347i, Delegate: 0x7f53dc016c30 + [1684323039.116234][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100320 from Retrans Table on exchange 42347i + [1684323039.116242][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684323039.116251][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684323039.116257][136409:136411] CHIP:DMG: { + [1684323039.116262][136409:136411] CHIP:DMG: SubscriptionId = 0x4bceb4f4, + [1684323039.116268][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684323039.116273][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684323039.116278][136409:136411] CHIP:DMG: } + [1684323039.116284][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x4bceb4f4 MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + [1684323039.116292][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc016c20]: Moving to [Subscripti] + + + + #4. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684323055.304162][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323055.304177][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323055.304206][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323055.304216][136403:136405] CHIP:TOO: Location: in + [1684323055.304243][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323055.304250][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684323055.304274][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc010a60]: Moving to [AwaitingSu] + [1684323055.304312][136403:136405] CHIP:EM: <<< [E:28545i S:21311 M:202084362 (Ack:249111947)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684323055.304324][136403:136405] CHIP:IN: (S) Sending msg 202084362 on secure session with LSID: 21311 + [1684323055.304636][136403:136405] CHIP:EM: >>> [E:28545i S:21311 M:249111948 (Ack:202084362)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684323055.304647][136403:136405] CHIP:EM: Found matching exchange: 28545i, Delegate: 0x7ff4cc010a70 + [1684323055.304660][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084362 from Retrans Table on exchange 28545i + [1684323055.304671][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684323055.304685][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684323055.304693][136403:136405] CHIP:DMG: { + [1684323055.304700][136403:136405] CHIP:DMG: SubscriptionId = 0xa0a990f4, + [1684323055.304709][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684323055.304717][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684323055.304724][136403:136405] CHIP:DMG: } + [1684323055.304733][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0xa0a990f4 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + [1684323055.304744][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc010a60]: Moving to [Subscripti] + + #5. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684323072.765216][136414:136416] CHIP:DMG: } + [1684323072.765277][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323072.765290][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323072.765318][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323072.765327][136414:136416] CHIP:TOO: Location: in + [1684323072.765352][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323072.765359][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684323072.765379][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4014ee0]: Moving to [AwaitingSu] + [1684323072.765426][136414:136416] CHIP:EM: <<< [E:5172i S:40695 M:166661011 (Ack:81061559)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684323072.765439][136414:136416] CHIP:IN: (S) Sending msg 166661011 on secure session with LSID: 40695 + [1684323072.765654][136414:136416] CHIP:EM: >>> [E:5172i S:40695 M:81061560 (Ack:166661011)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684323072.765661][136414:136416] CHIP:EM: Found matching exchange: 5172i, Delegate: 0x7f58a4014ef0 + [1684323072.765666][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166661011 from Retrans Table on exchange 5172i + [1684323072.765670][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684323072.765675][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684323072.765678][136414:136416] CHIP:DMG: { + [1684323072.765680][136414:136416] CHIP:DMG: SubscriptionId = 0x8e2931b5, + [1684323072.765682][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684323072.765684][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684323072.765686][136414:136416] CHIP:DMG: } + [1684323072.765689][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0x8e2931b5 MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 + [1684323072.765692][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4014ee0]: Moving to [Subscripti] #6. on the 6th reference device(RD1A), send a Subscribe request messages having 3 different paths from RD1A to the DUT and verify that the Subscription from RD1A gets INVALID_ACTION and the previous subscriptions from RD2, RD3, RD4 and RD5 are not affected. - basicinformation subscribe product-id 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 - [1683024005.367756][20746:20748] CHIP:DMG: StatusResponseMessage = - [1683024005.367820][20746:20748] CHIP:DMG: { - [1683024005.367876][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683024005.367936][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683024005.367992][20746:20748] CHIP:DMG: } - [1683024005.368048][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683024005.368228][20746:20748] CHIP:EM: <<< [E:64674i S:8831 M:127649869 (Ack:60224523)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) - [1683024005.368310][20746:20748] CHIP:IN: (S) Sending msg 127649869 on secure session with LSID: 8831 - - basicinformation subscribe software-version 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 - [1683024012.704591][20746:20748] CHIP:EM: Rxd Ack; Removing MessageCounter:127649870 from Retrans Table on exchange 64675i - [1683024012.704702][20746:20748] CHIP:DMG: StatusResponseMessage = - [1683024012.704765][20746:20748] CHIP:DMG: { - [1683024012.704821][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683024012.704882][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683024012.704937][20746:20748] CHIP:DMG: } - [1683024012.704992][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683024012.705166][20746:20748] CHIP:EM: <<< [E:64675i S:8831 M:127649871 (Ack:60224525)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) - [1683024012.705250][20746:20748] CHIP:IN: (S) Sending msg 127649871 on secure session with LSID: 8831 - - basicinformation subscribe hardware-version 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 - [1683024021.531533][20746:20748] CHIP:DMG: StatusResponseMessage = - [1683024021.531597][20746:20748] CHIP:DMG: { - [1683024021.531654][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683024021.531715][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683024021.531771][20746:20748] CHIP:DMG: } - [1683024021.531827][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683024021.532007][20746:20748] CHIP:EM: <<< [E:64676i S:8831 M:127649873 (Ack:60224527)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true --commissioner-nodeid 0x2 + [1684323125.397674][136393:136395] CHIP:EM: Found matching exchange: 41665i, Delegate: 0x7fb510037f20 + [1684323125.397688][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:195269296 from Retrans Table on exchange 41665i + [1684323125.397712][136393:136395] CHIP:DMG: StatusResponseMessage = + [1684323125.397720][136393:136395] CHIP:DMG: { + [1684323125.397726][136393:136395] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1684323125.397734][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684323125.397739][136393:136395] CHIP:DMG: } + [1684323125.397747][136393:136395] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1684323125.397786][136393:136395] CHIP:EM: <<< [E:41665i S:42489 M:195269297 (Ack:24764489)] (S) Msg TX to 7:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684323125.397798][136393:136395] CHIP:IN: (S) Sending msg 195269297 on secure session with LSID: 42489 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ILL_3_1_Simulated.yaml similarity index 50% rename from src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_ILL_3_1_Simulated.yaml index f72420c10c2b69..17e4c8b93399e4 100644 --- a/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ILL_3_1_Simulated.yaml @@ -11,9 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 71.3.1. [TC-ILL-3.1] Attributes with Client as DUT +name: 69.3.1. [TC-ILL-3.1] Attributes with client as DUT PICS: - ILL.C @@ -24,164 +23,39 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Illuminance Measurement" endpoint: 0 tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: ILL.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - sudo ./chip-tool illuminancemeasurement read min-measured-value 1 1 - Verify DUT receives min-measured-value attribute response on the TH(all-clusters-app) Log: - - [1658142106.966504][13946:13946] CHIP:IM: Received Read request - [1658142106.966671][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142106.966738][13946:13946] CHIP:DMG: { - [1658142106.966821][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142106.966887][13946:13946] CHIP:DMG: [ - [1658142106.966947][13946:13946] CHIP:DMG: AttributePathIB = - [1658142106.967035][13946:13946] CHIP:DMG: { - [1658142106.967105][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142106.967209][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142106.967254][13946:13946] CHIP:DMG: Attribute = 0x0000_0001, - [1658142106.967281][13946:13946] CHIP:DMG: } - [1658142106.967320][13946:13946] CHIP:DMG: - [1658142106.967346][13946:13946] CHIP:DMG: ], - [1658142106.967384][13946:13946] CHIP:DMG: - [1658142106.967413][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142106.967447][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142106.967471][13946:13946] CHIP:DMG: }, - [1658142106.967568][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658142106.967676][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - sudo ./chip-tool illuminancemeasurement read max-measured-value 1 1 - Verify DUT receives max-measured-value attribute response on the TH(all-clusters-app) Log: - [1658142397.298817][13946:13946] CHIP:IM: Received Read request - [1658142397.298895][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142397.298932][13946:13946] CHIP:DMG: { - [1658142397.298960][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142397.298986][13946:13946] CHIP:DMG: [ - [1658142397.299020][13946:13946] CHIP:DMG: AttributePathIB = - [1658142397.299047][13946:13946] CHIP:DMG: { - [1658142397.299085][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142397.299125][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142397.299158][13946:13946] CHIP:DMG: Attribute = 0x0000_0002, - [1658142397.299195][13946:13946] CHIP:DMG: } - [1658142397.299223][13946:13946] CHIP:DMG: - [1658142397.299258][13946:13946] CHIP:DMG: ], - [1658142397.299286][13946:13946] CHIP:DMG: - [1658142397.299321][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142397.299346][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142397.299378][13946:13946] CHIP:DMG: }, - [1658142397.299462][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658142397.299556][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + - label: "Read attribute: MeasuredValue" + wait: "readAttribute" + attribute: "MeasuredValue" - sudo ./chip-tool illuminancemeasurement read measured-value 1 1 - Verify DUT receives measured-value attribute response on the TH(all-clusters-app) Log: - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - [1658142471.266188][13946:13946] CHIP:IM: Received Read request - [1658142471.266273][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142471.266303][13946:13946] CHIP:DMG: { - [1658142471.266329][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142471.266358][13946:13946] CHIP:DMG: [ - [1658142471.266386][13946:13946] CHIP:DMG: AttributePathIB = - [1658142471.266417][13946:13946] CHIP:DMG: { - [1658142471.266449][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142471.266486][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142471.266521][13946:13946] CHIP:DMG: Attribute = 0x0000_0000, - [1658142471.266558][13946:13946] CHIP:DMG: } - [1658142471.266593][13946:13946] CHIP:DMG: - [1658142471.266624][13946:13946] CHIP:DMG: ], - [1658142471.266656][13946:13946] CHIP:DMG: - [1658142471.266686][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142471.266714][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142471.266740][13946:13946] CHIP:DMG: }, - [1658142471.266826][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658142471.266939][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: ILL.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + - label: "Read attribute: MinMeasuredValue" + wait: "readAttribute" + attribute: "MinMeasuredValue" - ./chip-tool illuminancemeasurement read tolerance 1 1 - Verify DUT receives tolerance attribute response on the TH(all-clusters-app) Log: - [1658142553.001113][13946:13946] CHIP:IM: Received Read request - [1658142553.001197][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142553.001258][13946:13946] CHIP:DMG: { - [1658142553.001284][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142553.001314][13946:13946] CHIP:DMG: [ - [1658142553.001342][13946:13946] CHIP:DMG: AttributePathIB = - [1658142553.001373][13946:13946] CHIP:DMG: { - [1658142553.001424][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142553.001465][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142553.001501][13946:13946] CHIP:DMG: Attribute = 0x0000_0003, - [1658142553.001536][13946:13946] CHIP:DMG: } - [1658142553.001568][13946:13946] CHIP:DMG: - [1658142553.001598][13946:13946] CHIP:DMG: ], - [1658142553.001630][13946:13946] CHIP:DMG: - [1658142553.001660][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142553.001690][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142553.001717][13946:13946] CHIP:DMG: }, - [1658142553.001801][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] + - label: "Read attribute: MaxMeasuredValue" + wait: "readAttribute" + attribute: "MaxMeasuredValue" + - label: "Read attribute: Tolerance" + wait: "readAttribute" + attribute: "Tolerance" - ./chip-tool illuminancemeasurement read light-sensor-type 1 1 - Verify DUT receives light-sensor-type attribute response on the TH(all-clusters-app) Log: - [1658142581.619138][13946:13946] CHIP:IM: Received Read request - [1658142581.619214][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142581.619265][13946:13946] CHIP:DMG: { - [1658142581.619288][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142581.619314][13946:13946] CHIP:DMG: [ - [1658142581.619338][13946:13946] CHIP:DMG: AttributePathIB = - [1658142581.619365][13946:13946] CHIP:DMG: { - [1658142581.619393][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142581.619425][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142581.619456][13946:13946] CHIP:DMG: Attribute = 0x0000_0004, - [1658142581.619485][13946:13946] CHIP:DMG: } - [1658142581.619512][13946:13946] CHIP:DMG: - [1658142581.619537][13946:13946] CHIP:DMG: ], - [1658142581.619565][13946:13946] CHIP:DMG: - [1658142581.619591][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142581.619616][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142581.619639][13946:13946] CHIP:DMG: }, - [1658142581.619714][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: ILL.C.AM-WRITE - verification: | - No writable attrbute for this cluster - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: ILL.C.AO-WRITE - verification: | - No writable attrbute for this cluster - disabled: true + - label: "Read attribute: LightSensorType" + wait: "readAttribute" + attribute: "LightSensorType" - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + AttributeList.Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -244,7 +118,7 @@ tests: - ./chip-tool illuminancemeasurement read min-measured-value 1 1 + ./chip-tool illuminancemeasurement read min-measured-value 1 1 Verify DUT receives min-measured-value attribute response on the TH(all-clusters-minimal-app) Log: @@ -269,7 +143,7 @@ tests: [1658142106.967676][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - ./chip-tool illuminancemeasurement read max-measured-value 1 1 + ./chip-tool illuminancemeasurement read max-measured-value 1 1 Verify DUT receives max-measured-value attribute response on the TH(all-clusters-minimal-app) Log: [1658142397.298817][13946:13946] CHIP:IM: Received Read request @@ -293,7 +167,7 @@ tests: [1658142397.299556][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - ./chip-tool illuminancemeasurement read measured-value 1 1 + ./chip-tool illuminancemeasurement read measured-value 1 1 Verify DUT receives measured-value attribute response on the TH(all-clusters-minimal-app) Log: @@ -316,29 +190,51 @@ tests: [1658142471.266740][13946:13946] CHIP:DMG: }, [1658142471.266826][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] [1658142471.266939][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: ILL.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool illuminancemeasurement read tolerance 1 1 + ./chip-tool illuminancemeasurement read tolerance 1 1 on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool illuminancemeasurement read light-sensor-type 1 1 on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: ILL.C.AO-WRITE verification: | - No writable attrbute for this cluster - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml index df107b1de3424b..0cc8524324be96 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: " !KEYPADINPUT.S.NV && KEYPADINPUT.S.LK && !KEYPADINPUT.S.NK " + PICS: " !KEYPADINPUT.S.F00 && KEYPADINPUT.S.F01 && !KEYPADINPUT.S.F02 " command: "readAttribute" attribute: "FeatureMap" response: @@ -50,8 +50,8 @@ tests: constraints: type: bitmap32 - - label: "Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not" - PICS: KEYPADINPUT.S.NV + - label: "Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -59,8 +59,8 @@ tests: type: bitmap32 hasMasksSet: [0x1] - - label: "Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not" - PICS: KEYPADINPUT.S.LK + - label: "Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.F01 command: "readAttribute" attribute: "FeatureMap" response: @@ -68,8 +68,8 @@ tests: type: bitmap32 hasMasksSet: [0x2] - - label: "Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not" - PICS: KEYPADINPUT.S.NK + - label: "Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.F02 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml index eb915a197d5b80..89a9b9646634c5 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml @@ -15,7 +15,7 @@ name: 19.3.2. [TC-KEYPADINPUT-3.2] Location Keys Verification PICS: - - KEYPADINPUT.S.LK + - KEYPADINPUT.S.F01 config: nodeId: 0x12344321 @@ -32,7 +32,7 @@ tests: value: nodeId - label: "TH sends CEC Settings Keys(0x0A) to DUT" - PICS: KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp + PICS: KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp command: "SendKey" arguments: values: @@ -44,7 +44,7 @@ tests: value: 0 - label: "TH sends CEC Home Keys(0x09) to DUT" - PICS: KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp + PICS: KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp command: "SendKey" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml index 02c3fd5a104551..22e8f2332fd632 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml @@ -15,7 +15,7 @@ name: 19.3.3. [TC-KEYPADINPUT-3.3] Number Keys Verification PICS: - - KEYPADINPUT.S.NK + - KEYPADINPUT.S.F02 config: nodeId: 0x12344321 @@ -32,7 +32,7 @@ tests: value: nodeId - label: "Send Numbers1" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -44,7 +44,7 @@ tests: value: 0 - label: "Send Numbers2" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -56,7 +56,7 @@ tests: value: 0 - label: "Send Numbers3" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -68,7 +68,7 @@ tests: value: 0 - label: "Send Numbers4" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -80,7 +80,7 @@ tests: value: 0 - label: "Send Numbers5" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -92,7 +92,7 @@ tests: value: 0 - label: "Send Numbers6" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -104,7 +104,7 @@ tests: value: 0 - label: "Send Numbers7" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -116,7 +116,7 @@ tests: value: 0 - label: "Send Numbers8" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -128,7 +128,7 @@ tests: value: 0 - label: "Send Numbers9" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml deleted file mode 100644 index 9d4a00d325272c..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml +++ /dev/null @@ -1,955 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 22.2.3. [TC-LVL-2.3] Attributes with DUT as client - -PICS: - - LVL.C - - LVL.C.AM-READ - - LVL.C.AO-READ - - LVL.C.AM-WRITE - - LVL.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: LVL.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol read current-level 1 1 - Verify DUT receives current-level attribute response on the TH(all-clusters-app) Log: - [1657279115.433005][4417:4417] CHIP:IM: Received Read request - [1657279115.433184][4417:4417] CHIP:DMG: ReadRequestMessage = - [1657279115.433258][4417:4417] CHIP:DMG: { - [1657279115.433313][4417:4417] CHIP:DMG: AttributePathIBs = - [1657279115.433379][4417:4417] CHIP:DMG: [ - [1657279115.433438][4417:4417] CHIP:DMG: AttributePathIB = - [1657279115.433506][4417:4417] CHIP:DMG: { - [1657279115.433572][4417:4417] CHIP:DMG: Endpoint = 0x1, - [1657279115.433703][4417:4417] CHIP:DMG: Cluster = 0x8, - [1657279115.433781][4417:4417] CHIP:DMG: Attribute = 0x0000_0000, - [1657279115.433851][4417:4417] CHIP:DMG: } - [1657279115.433920][4417:4417] CHIP:DMG: - [1657279115.433980][4417:4417] CHIP:DMG: ], - [1657279115.434047][4417:4417] CHIP:DMG: - [1657279115.434109][4417:4417] CHIP:DMG: isFabricFiltered = true, - [1657279115.434169][4417:4417] CHIP:DMG: InteractionModelRevision = 1 - [1657279115.434226][4417:4417] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-level 1 1 - verify On TH(all-clusters-app) receives the right Read Request Message for the data sent in the above command - [1657279142.246433][4417:4417] CHIP:IM: Received Read request - [1657279142.246605][4417:4417] CHIP:DMG: ReadRequestMessage = - [1657279142.246670][4417:4417] CHIP:DMG: { - [1657279142.246725][4417:4417] CHIP:DMG: AttributePathIBs = - [1657279142.246788][4417:4417] CHIP:DMG: [ - [1657279142.246848][4417:4417] CHIP:DMG: AttributePathIB = - [1657279142.246906][4417:4417] CHIP:DMG: { - [1657279142.246965][4417:4417] CHIP:DMG: Endpoint = 0x1, - [1657279142.247028][4417:4417] CHIP:DMG: Cluster = 0x8, - [1657279142.247100][4417:4417] CHIP:DMG: Attribute = 0x0000_0011, - [1657279142.247164][4417:4417] CHIP:DMG: } - [1657279142.247245][4417:4417] CHIP:DMG: - [1657279142.247310][4417:4417] CHIP:DMG: ], - [1657279142.247375][4417:4417] CHIP:DMG: - [1657279142.247439][4417:4417] CHIP:DMG: isFabricFiltered = true, - [1657279142.247500][4417:4417] CHIP:DMG: InteractionModelRevision = 1 - [1657279142.247552][4417:4417] CHIP:DMG: }, - - - ./chip-tool levelcontrol read options 1 1 - Verify DUT receives options attribute response on the TH(all-clusters-app) Log: - [1657279166.425514][4417:4417] CHIP:IM: Received Read request - [1657279166.425770][4417:4417] CHIP:DMG: ReadRequestMessage = - [1657279166.425842][4417:4417] CHIP:DMG: { - [1657279166.425895][4417:4417] CHIP:DMG: AttributePathIBs = - [1657279166.425960][4417:4417] CHIP:DMG: [ - [1657279166.426018][4417:4417] CHIP:DMG: AttributePathIB = - [1657279166.426093][4417:4417] CHIP:DMG: { - [1657279166.426161][4417:4417] CHIP:DMG: Endpoint = 0x1, - [1657279166.426245][4417:4417] CHIP:DMG: Cluster = 0x8, - [1657279166.426310][4417:4417] CHIP:DMG: Attribute = 0x0000_000F, - [1657279166.426389][4417:4417] CHIP:DMG: } - [1657279166.426465][4417:4417] CHIP:DMG: - [1657279166.426528][4417:4417] CHIP:DMG: ], - [1657279166.426597][4417:4417] CHIP:DMG: - [1657279166.426660][4417:4417] CHIP:DMG: isFabricFiltered = true, - [1657279166.426721][4417:4417] CHIP:DMG: InteractionModelRevision = 1 - [1657279166.426777][4417:4417] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: LVL.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool levelcontrol read remaining-time 1 1 - Verify DUT receives remaining-time attribute response on the TH(all-clusters-app) Log: - 1657913316.919773][3126:3126] CHIP:IM: Received Read request - [1657913316.919880][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913316.919920][3126:3126] CHIP:DMG: { - [1657913316.919952][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913316.919995][3126:3126] CHIP:DMG: [ - [1657913316.920046][3126:3126] CHIP:DMG: AttributePathIB = - [1657913316.920135][3126:3126] CHIP:DMG: { - [1657913316.920176][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913316.920341][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913316.920396][3126:3126] CHIP:DMG: Attribute = 0x0000_0001, - [1657913316.920457][3126:3126] CHIP:DMG: } - [1657913316.920503][3126:3126] CHIP:DMG: - [1657913316.920543][3126:3126] CHIP:DMG: ], - [1657913316.920584][3126:3126] CHIP:DMG: - [1657913316.920622][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913316.920673][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913316.920707][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read min-level 1 1 - Verify DUT receives min-level attribute response on the TH(all-clusters-app) Log: - [1657913332.319502][3126:3126] CHIP:IM: Received Read request - [1657913332.319628][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913332.319675][3126:3126] CHIP:DMG: { - [1657913332.319734][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913332.319782][3126:3126] CHIP:DMG: [ - [1657913332.319826][3126:3126] CHIP:DMG: AttributePathIB = - [1657913332.319898][3126:3126] CHIP:DMG: { - [1657913332.319950][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913332.320006][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913332.320127][3126:3126] CHIP:DMG: Attribute = 0x0000_0002, - [1657913332.320181][3126:3126] CHIP:DMG: } - [1657913332.320239][3126:3126] CHIP:DMG: - [1657913332.320305][3126:3126] CHIP:DMG: ], - [1657913332.320358][3126:3126] CHIP:DMG: - [1657913332.320405][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913332.320470][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913332.320514][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read max-level 1 1 - Verify DUT receives max-level attribute response on the TH(all-clusters-app) Log: - [1657913350.880504][3126:3126] CHIP:IM: Received Read request - [1657913350.880648][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913350.880703][3126:3126] CHIP:DMG: { - [1657913350.880770][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913350.880838][3126:3126] CHIP:DMG: [ - [1657913350.880889][3126:3126] CHIP:DMG: AttributePathIB = - [1657913350.880965][3126:3126] CHIP:DMG: { - [1657913350.881023][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913350.881090][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913350.881175][3126:3126] CHIP:DMG: Attribute = 0x0000_0003, - [1657913350.881243][3126:3126] CHIP:DMG: } - [1657913350.881437][3126:3126] CHIP:DMG: - [1657913350.881496][3126:3126] CHIP:DMG: ], - [1657913350.881576][3126:3126] CHIP:DMG: - [1657913350.881630][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913350.881705][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913350.881756][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read current-frequency 1 1 - Verify DUT receives current-frequency attribute response on the TH(all-clusters-app) Log: - [1657913381.091563][3126:3126] CHIP:IM: Received Read request - [1657913381.091690][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913381.091738][3126:3126] CHIP:DMG: { - [1657913381.091797][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913381.091844][3126:3126] CHIP:DMG: [ - [1657913381.091889][3126:3126] CHIP:DMG: AttributePathIB = - [1657913381.091958][3126:3126] CHIP:DMG: { - [1657913381.092013][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913381.092105][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913381.092178][3126:3126] CHIP:DMG: Attribute = 0x0000_0004, - [1657913381.092233][3126:3126] CHIP:DMG: } - [1657913381.092284][3126:3126] CHIP:DMG: - [1657913381.092348][3126:3126] CHIP:DMG: ], - [1657913381.092400][3126:3126] CHIP:DMG: - [1657913381.092448][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913381.092514][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913381.092557][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read min-frequency 1 1 - Verify DUT receives min-frequency attribute response on the TH(all-clusters-app) Log: - [1657913397.410411][3126:3126] CHIP:IM: Received Read request - [1657913397.410539][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913397.410588][3126:3126] CHIP:DMG: { - [1657913397.410629][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913397.410676][3126:3126] CHIP:DMG: [ - [1657913397.410720][3126:3126] CHIP:DMG: AttributePathIB = - [1657913397.410782][3126:3126] CHIP:DMG: { - [1657913397.410834][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913397.410891][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913397.410948][3126:3126] CHIP:DMG: Attribute = 0x0000_0005, - [1657913397.411002][3126:3126] CHIP:DMG: } - [1657913397.411056][3126:3126] CHIP:DMG: - [1657913397.411103][3126:3126] CHIP:DMG: ], - [1657913397.411161][3126:3126] CHIP:DMG: - [1657913397.411209][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913397.411255][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913397.411298][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read max-frequency 1 1 - Verify DUT receives max-frequency attribute response on the TH(all-clusters-app) Log: - [1657913412.416960][3126:3126] CHIP:IM: Received Read request - [1657913412.417086][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913412.417134][3126:3126] CHIP:DMG: { - [1657913412.417175][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913412.417227][3126:3126] CHIP:DMG: [ - [1657913412.417271][3126:3126] CHIP:DMG: AttributePathIB = - [1657913412.417321][3126:3126] CHIP:DMG: { - [1657913412.417372][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913412.417428][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913412.417487][3126:3126] CHIP:DMG: Attribute = 0x0000_0006, - [1657913412.417542][3126:3126] CHIP:DMG: } - [1657913412.417593][3126:3126] CHIP:DMG: - [1657913412.417642][3126:3126] CHIP:DMG: ], - [1657913412.417693][3126:3126] CHIP:DMG: - [1657913412.417740][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913412.417786][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913412.417822][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-off-transition-time 1 1 - Verify DUT receives on-off-transition-time attribute response on the TH(all-clusters-app) Log: - [1657913438.117302][3126:3126] CHIP:IM: Received Read request - [1657913438.117462][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913438.117526][3126:3126] CHIP:DMG: { - [1657913438.117718][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913438.117782][3126:3126] CHIP:DMG: [ - [1657913438.117841][3126:3126] CHIP:DMG: AttributePathIB = - [1657913438.117907][3126:3126] CHIP:DMG: { - [1657913438.117976][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913438.118061][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913438.118137][3126:3126] CHIP:DMG: Attribute = 0x0000_0010, - [1657913438.118206][3126:3126] CHIP:DMG: } - [1657913438.118279][3126:3126] CHIP:DMG: - [1657913438.118347][3126:3126] CHIP:DMG: ], - [1657913438.118415][3126:3126] CHIP:DMG: - [1657913438.118474][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913438.118535][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913438.118592][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-transition-time 1 1 - Verify DUT receives on-transition-time attribute response on the TH(all-clusters-app) Log: - [1657913454.127158][3126:3126] CHIP:IM: Received Read request - [1657913454.127241][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913454.127268][3126:3126] CHIP:DMG: { - [1657913454.127291][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913454.127317][3126:3126] CHIP:DMG: [ - [1657913454.127341][3126:3126] CHIP:DMG: AttributePathIB = - [1657913454.127368][3126:3126] CHIP:DMG: { - [1657913454.127396][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913454.127461][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913454.127497][3126:3126] CHIP:DMG: Attribute = 0x0000_0012, - [1657913454.127528][3126:3126] CHIP:DMG: } - [1657913454.127556][3126:3126] CHIP:DMG: - [1657913454.127582][3126:3126] CHIP:DMG: ], - [1657913454.127610][3126:3126] CHIP:DMG: - [1657913Verify in DUT as client side: 454.127636][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913454.127661][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913454.127685][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read off-transition-time 1 1 - Verify DUT receives off-transition-time attribute response on the TH(all-clusters-app) Log: - [1657913518.488375][3126:3126] CHIP:IM: Received Read request - [1657913518.488457][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913518.488486][3126:3126] CHIP:DMG: { - [1657913518.488508][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913518.488534][3126:3126] CHIP:DMG: [ - [1657913518.488558][3126:3126] CHIP:DMG: AttributePathIB = - [1657913518.488585][3126:3126] CHIP:DMG: { - [1657913518.488613][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913518.488649][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913518.488678][3126:3126] CHIP:DMG: Attribute = 0x0000_0013, - [1657913518.488705][3126:3126] CHIP:DMG: } - [1657913518.488733][3126:3126] CHIP:DMG: - [1657913518.488757][3126:3126] CHIP:DMG: ], - [1657913518.488785][3126:3126] CHIP:DMG: - [1657913518.488812][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913518.488837][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913518.488860][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read default-move-rate 1 1 - Verify DUT receives default-move-rate attribute response on the TH(all-clusters-app) Log: - [1657913537.304689][3126:3126] CHIP:IM: Received Read request - [1657913537.304828][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913537.304884][3126:3126] CHIP:DMG: { - [1657913537.304931][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913537.304996][3126:3126] CHIP:DMG: [ - [1657913537.305047][3126:3126] CHIP:DMG: AttributePathIB = - [1657913537.305108][3126:3126] CHIP:DMG: { - [1657913537.305171][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913537.305238][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913537.305304][3126:3126] CHIP:DMG: Attribute = 0x0000_0014, - [1657913537.305372][3126:3126] CHIP:DMG: } - [1657913537.305434][3126:3126] CHIP:DMG: - [1657913537.305607][3126:3126] CHIP:DMG: ], - [1657913537.305675][3126:3126] CHIP:DMG: - [1657913537.305729][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913537.305787][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913537.305836][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read start-up-current-level 1 1 - Verify DUT receives start-up-current-level attribute response on the TH(all-clusters-app) Log: - [1657913554.968190][3126:3126] CHIP:IM: Received Read request - [1657913554.968312][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913554.968343][3126:3126] CHIP:DMG: { - [1657913554.968366][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913554.968393][3126:3126] CHIP:DMG: [ - [1657913554.968416][3126:3126] CHIP:DMG: AttributePathIB = - [1657913554.968444][3126:3126] CHIP:DMG: { - [1657913554.968473][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913554.968513][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913554.968546][3126:3126] CHIP:DMG: Attribute = 0x0000_4000, - [1657913554.968569][3126:3126] CHIP:DMG: } - [1657913554.968594][3126:3126] CHIP:DMG: - [1657913554.968617][3126:3126] CHIP:DMG: ], - [1657913554.968679][3126:3126] CHIP:DMG: - [1657913554.968717][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913554.968743][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913554.968766][3126:3126] CHIP:DMG: }, - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: LVL.C.AM-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol write on-level 5 (replace with your value) 1 1 - Verify DUT receives on-level attribute write response on the TH(all-clusters-app) Log: - [1657913667.893875][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913667.893923][3126:3126] CHIP:DMG: { - [1657913667.893965][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913667.894013][3126:3126] CHIP:DMG: timedRequest = false, - [1657913667.894058][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913667.894112][3126:3126] CHIP:DMG: [ - [1657913667.894157][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913667.894213][3126:3126] CHIP:DMG: { - [1657913667.894264][3126:3126] CHIP:DMG: AttributePathIB = - [1657913667.894322][3126:3126] CHIP:DMG: { - [1657913667.894495][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913667.894561][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913667.894622][3126:3126] CHIP:DMG: Attribute = 0x0000_0011, - [1657913667.894684][3126:3126] CHIP:DMG: } - [1657913667.894744][3126:3126] CHIP:DMG: - [1657913667.894808][3126:3126] CHIP:DMG: Data = 5, - [1657913667.894866][3126:3126] CHIP:DMG: }, - [1657913667.894914][3126:3126] CHIP:DMG: - [1657913667.894957][3126:3126] CHIP:DMG: ], - [1657913667.895010][3126:3126] CHIP:DMG: - [1657913667.895055][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913667.895105][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913667.895148][3126:3126] CHIP:DMG: }, - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: LVL.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol write on-off-transition-time 5 (replace with your own value) 1 1 - Verify DUT receives on-off-transition-time attribute write response on the TH(all-clusters-app) Log: - [1657913716.044424][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913716.044478][3126:3126] CHIP:DMG: { - [1657913716.044527][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913716.044583][3126:3126] CHIP:DMG: timedRequest = false, - [1657913716.044634][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913716.044696][3126:3126] CHIP:DMG: [ - [1657913716.044748][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913716.044806][3126:3126] CHIP:DMG: { - [1657913716.044860][3126:3126] CHIP:DMG: AttributePathIB = - [1657913716.044932][3126:3126] CHIP:DMG: { - [1657913716.044994][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913716.045061][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913716.045137][3126:3126] CHIP:DMG: Attribute = 0x0000_0010, - [1657913716.045202][3126:3126] CHIP:DMG: } - [1657913716.045270][3126:3126] CHIP:DMG: - [1657913716.045344][3126:3126] CHIP:DMG: Data = 5, - [1657913716.045407][3126:3126] CHIP:DMG: }, - [1657913716.045468][3126:3126] CHIP:DMG: - [1657913716.045519][3126:3126] CHIP:DMG: ], - [1657913716.045579][3126:3126] CHIP:DMG: - [1657913716.045630][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913716.045683][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913716.045732][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write on-transition-time 5 (replace with your value) 1 1 - Verify DUT receives on-transition-time attribute write response on the TH(all-clusters-app) Log: - [1657913743.728014][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913743.728046][3126:3126] CHIP:DMG: { - [1657913743.728145][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913743.728179][3126:3126] CHIP:DMG: timedRequest = false, - [1657913743.728239][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913743.728279][3126:3126] CHIP:DMG: [ - [1657913743.728308][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913743.728351][3126:3126] CHIP:DMG: { - [1657913743.728383][3126:3126] CHIP:DMG: AttributePathIB = - [1657913743.728423][3126:3126] CHIP:DMG: { - [1657913743.728467][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913743.728512][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913743.728553][3126:3126] CHIP:DMG: Attribute = 0x0000_0012, - [1657913743.728591][3126:3126] CHIP:DMG: } - [1657913743.728631][3126:3126] CHIP:DMG: - [1657913743.728671][3126:3126] CHIP:DMG: Data = 5, - [1657913743.728710][3126:3126] CHIP:DMG: }, - [1657913743.728746][3126:3126] CHIP:DMG: - [1657913743.728775][3126:3126] CHIP:DMG: ], - [1657913743.728811][3126:3126] CHIP:DMG: - [1657913743.728842][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913743.728872][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913743.728901][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write off-transition-time 5 1 1 - Verify DUT receives off-transition-time attribute write response on the TH(all-clusters-app) Log: - - [1657913763.836957][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913763.837010][3126:3126] CHIP:DMG: { - [1657913763.837058][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913763.837119][3126:3126] CHIP:DMG: timedRequest = false, - [1657913763.837170][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913763.837230][3126:3126] CHIP:DMG: [ - [1657913763.837361][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913763.837424][3126:3126] CHIP:DMG: { - [1657913763.837478][3126:3126] CHIP:DMG: AttributePathIB = - [1657913763.837544][3126:3126] CHIP:DMG: { - [1657913763.837580][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913763.837613][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913763.837645][3126:3126] CHIP:DMG: Attribute = 0x0000_0013, - [1657913763.837755][3126:3126] CHIP:DMG: } - [1657913763.837790][3126:3126] CHIP:DMG: - [1657913763.837822][3126:3126] CHIP:DMG: Data = 5, - [1657913763.837850][3126:3126] CHIP:DMG: }, - [1657913763.837880][3126:3126] CHIP:DMG: - [1657913763.837904][3126:3126] CHIP:DMG: ], - [1657913763.837932][3126:3126] CHIP:DMG: - [1657913763.837956][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913763.837981][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913763.838004][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write default-move-rate 5 1 1 - Verify DUT receives default-move-rate attribute write response on the TH(all-clusters-app) Log: - [1657913781.895720][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913781.895799][3126:3126] CHIP:DMG: { - [1657913781.895824][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913781.895850][3126:3126] CHIP:DMG: timedRequest = false, - [1657913781.895874][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913781.895904][3126:3126] CHIP:DMG: [ - [1657913781.895929][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913781.895956][3126:3126] CHIP:DMG: { - [1657913781.895982][3126:3126] CHIP:DMG: AttributePathIB = - [1657913781.896024][3126:3126] CHIP:DMG: { - [1657913781.896147][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913781.896209][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913781.896247][3126:3126] CHIP:DMG: Attribute = 0x0000_0014, - [1657913781.896278][3126:3126] CHIP:DMG: } - [1657913781.896312][3126:3126] CHIP:DMG: - [1657913781.896345][3126:3126] CHIP:DMG: Data = 5, - [1657913781.896374][3126:3126] CHIP:DMG: }, - [1657913781.896403][3126:3126] CHIP:DMG: - [1657913781.896427][3126:3126] CHIP:DMG: ], - [1657913781.896503][3126:3126] CHIP:DMG: - [1657913781.896531][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913781.896558][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913781.896581][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write start-up-current-level 5 (replace with your value) 123123 1 - Verify DUT receives start-up-current-level attribute write response on the TH(all-clusters-app) Log: - [1657913811.290764][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913811.290809][3126:3126] CHIP:DMG: { - [1657913811.290850][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913811.290898][3126:3126] CHIP:DMG: timedRequest = false, - [1657913811.290942][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913811.290995][3126:3126] CHIP:DMG: [ - [1657913811.291039][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913811.291094][3126:3126] CHIP:DMG: { - [1657913811.291142][3126:3126] CHIP:DMG: AttributePathIB = - [1657913811.291258][3126:3126] CHIP:DMG: { - [1657913811.291326][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913811.291394][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913811.291455][3126:3126] CHIP:DMG: Attribute = 0x0000_4000, - [1657913811.291512][3126:3126] CHIP:DMG: } - [1657913811.291630][3126:3126] CHIP:DMG: - [1657913811.291694][3126:3126] CHIP:DMG: Data = 5, - [1657913811.291748][3126:3126] CHIP:DMG: }, - [1657913811.291805][3126:3126] CHIP:DMG: - [1657913811.291848][3126:3126] CHIP:DMG: ], - [1657913811.291949][3126:3126] CHIP:DMG: - [1657913811.291992][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913811.292017][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913811.292039][3126:3126] CHIP:DMG: }, - disabled: true - - - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it - also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol read current-level 1 1 - Verify DUT receives current-level attribute response on the TH(all-clusters-minimal-app) Log: - [1657913862.815749][3126:3126] CHIP:IM: Received Read request - [1657913862.815884][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913862.815935][3126:3126] CHIP:DMG: { - [1657913862.815975][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913862.816023][3126:3126] CHIP:DMG: [ - [1657913862.816107][3126:3126] CHIP:DMG: AttributePathIB = - [1657913862.816161][3126:3126] CHIP:DMG: { - [1657913862.816212][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913862.816268][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913862.816325][3126:3126] CHIP:DMG: Attribute = 0x0000_0000, - [1657913862.816377][3126:3126] CHIP:DMG: } - [1657913862.816431][3126:3126] CHIP:DMG: - [1657913862.816477][3126:3126] CHIP:DMG: ], - [1657913862.816527][3126:3126] CHIP:DMG: - [1657913862.816573][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913862.816619][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913862.816662][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-level 1 1 - Verify DUT receives on-level attribute response on the TH(all-clusters-minimal-app) Log: - [1657913877.850398][3126:3126] CHIP:IM: Received Read request - [1657913877.850525][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913877.850574][3126:3126] CHIP:DMG: { - [1657913877.850614][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913877.850725][3126:3126] CHIP:DMG: [ - [1657913877.850771][3126:3126] CHIP:DMG: AttributePathIB = - [1657913877.850821][3126:3126] CHIP:DMG: { - [1657913877.850872][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913877.850932][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913877.850989][3126:3126] CHIP:DMG: Attribute = 0x0000_0011, - [1657913877.851048][3126:3126] CHIP:DMG: } - [1657913877.851103][3126:3126] CHIP:DMG: - [1657913877.851153][3126:3126] CHIP:DMG: ], - [1657913877.851203][3126:3126] CHIP:DMG: - [1657913877.851251][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913877.851297][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913877.851343][3126:3126] CHIP:DMG: }, - [1657913877.851471][3126:3126] CHIP:DMG: IM - - - ./chip-tool levelcontrol read options 1 1 - Verify DUT receives options attribute response on the TH(all-clusters-minimal-app) Log: - [1657913895.195563][3126:3126] CHIP:IM: Received Read request - [1657913895.195705][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913895.195732][3126:3126] CHIP:DMG: { - [1657913895.195754][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913895.195780][3126:3126] CHIP:DMG: [ - [1657913895.195803][3126:3126] CHIP:DMG: AttributePathIB = - [1657913895.195901][3126:3126] CHIP:DMG: { - [1657913895.195932][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913895.195963][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913895.195993][3126:3126] CHIP:DMG: Attribute = 0x0000_000F, - [1657913895.196022][3126:3126] CHIP:DMG: } - [1657913895.196073][3126:3126] CHIP:DMG: - [1657913895.196101][3126:3126] CHIP:DMG: ], - [1657913895.196161][3126:3126] CHIP:DMG: - [1657913895.196189][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913895.196214][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913895.196236][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read attribute-list 1 1 - Verify DUT receives attribute-list attribute response on the TH(all-clusters-minimal-app) Log: - [1657913906.648918][3126:3126] CHIP:IM: Received Read request - [1657913906.649061][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913906.649115][3126:3126] CHIP:DMG: { - [1657913906.649162][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913906.649225][3126:3126] CHIP:DMG: [ - [1657913906.649273][3126:3126] CHIP:DMG: AttributePathIB = - [1657913906.649330][3126:3126] CHIP:DMG: { - [1657913906.649389][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913906.649462][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913906.649529][3126:3126] CHIP:DMG: Attribute = 0x0000_FFFB, - [1657913906.649569][3126:3126] CHIP:DMG: } - [1657913906.649593][3126:3126] CHIP:DMG: - [1657913906.649618][3126:3126] CHIP:DMG: ], - [1657913906.649645][3126:3126] CHIP:DMG: - [1657913906.649731][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913906.649757][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913906.649781][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read feature-map 1 1 - Verify DUT receives feature-map attribute response on the TH(all-clusters-minimal-app) Log: - [1663070713.467153][4422:4422] CHIP:IM: Received Read request - [1663070713.467242][4422:4422] CHIP:DMG: ReadRequestMessage = - [1663070713.467275][4422:4422] CHIP:DMG: { - [1663070713.467300][4422:4422] CHIP:DMG: AttributePathIBs = - [1663070713.467329][4422:4422] CHIP:DMG: [ - [1663070713.467355][4422:4422] CHIP:DMG: AttributePathIB = - [1663070713.467390][4422:4422] CHIP:DMG: { - [1663070713.467422][4422:4422] CHIP:DMG: Endpoint = 0x1, - [1663070713.467455][4422:4422] CHIP:DMG: Cluster = 0x8, - [1663070713.467487][4422:4422] CHIP:DMG: Attribute = 0x0000_FFFC, - [1663070713.467517][4422:4422] CHIP:DMG: } - [1663070713.467548][4422:4422] CHIP:DMG: - [1663070713.467576][4422:4422] CHIP:DMG: ], - [1663070713.467606][4422:4422] CHIP:DMG: - [1663070713.467635][4422:4422] CHIP:DMG: isFabricFiltered = true, - [1663070713.467663][4422:4422] CHIP:DMG: InteractionModelRevision = 1 - [1663070713.467689][4422:4422] CHIP:DMG: }, - [1663070713.467767][4422:4422] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: LVL.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - TH all-clusters-minimal-app does not support optional attributes - - ./chip-tool levelcontrol read remaining-time 1 1 - Verify DUT(chip-tool) receives remaining-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147148.155292][37702:37702] CHIP:IM: Received Read request - [1663147148.155312][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147148.155315][37702:37702] CHIP:DMG: { - [1663147148.155317][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147148.155320][37702:37702] CHIP:DMG: [ - [1663147148.155323][37702:37702] CHIP:DMG: AttributePathIB = - [1663147148.155326][37702:37702] CHIP:DMG: { - [1663147148.155328][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147148.155331][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147148.155334][37702:37702] CHIP:DMG: Attribute = 0x0000_0001, - [1663147148.155338][37702:37702] CHIP:DMG: } - [1663147148.155341][37702:37702] CHIP:DMG: - [1663147148.155343][37702:37702] CHIP:DMG: ], - [1663147148.155346][37702:37702] CHIP:DMG: - [1663147148.155349][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147148.155351][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147148.155353][37702:37702] CHIP:DMG: }, - [1663147148.155366][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663147148.155376][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - - - ./chip-tool levelcontrol read min-level 1 1 - Verify DUT(chip-tool) receives min-level attribute response on the TH(all-clusters-minimal-app) Log: - [1663147176.255360][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147176.255364][37702:37702] CHIP:DMG: { - [1663147176.255368][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147176.255373][37702:37702] CHIP:DMG: [ - [1663147176.255376][37702:37702] CHIP:DMG: AttributePathIB = - [1663147176.255381][37702:37702] CHIP:DMG: { - [1663147176.255385][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147176.255389][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147176.255393][37702:37702] CHIP:DMG: Attribute = 0x0000_0002, - [1663147176.255396][37702:37702] CHIP:DMG: } - [1663147176.255401][37702:37702] CHIP:DMG: - [1663147176.255404][37702:37702] CHIP:DMG: ], - [1663147176.255409][37702:37702] CHIP:DMG: - [1663147176.255413][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147176.255416][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147176.255419][37702:37702] CHIP:DMG: }, - [1663147176.255436][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663147176.255451][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - - ./chip-tool levelcontrol read max-level 1 1 - Verify DUT(chip-tool) receives max-level attribute response on the TH(all-clusters-minimal-app) Log: - [1663147204.133512][37702:37702] CHIP:IM: Received Read request - [1663147204.133528][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147204.133531][37702:37702] CHIP:DMG: { - [1663147204.133533][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147204.133536][37702:37702] CHIP:DMG: [ - [1663147204.133538][37702:37702] CHIP:DMG: AttributePathIB = - [1663147204.133541][37702:37702] CHIP:DMG: { - [1663147204.133543][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147204.133546][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147204.133549][37702:37702] CHIP:DMG: Attribute = 0x0000_0003, - [1663147204.133551][37702:37702] CHIP:DMG: } - [1663147204.133553][37702:37702] CHIP:DMG: - [1663147204.133555][37702:37702] CHIP:DMG: ], - [1663147204.133558][37702:37702] CHIP:DMG: - [1663147204.133561][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147204.133563][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147204.133565][37702:37702] CHIP:DMG: }, - [1663147204.133577][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663147204.133587][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool levelcontrol read current-frequency 1 1 - Verify DUT(chip-tool) receives current-frequency attribute response on the TH(all-clusters-minimal-app) Log: - [1663147223.228680][37702:37702] CHIP:IM: Received Read request - [1663147223.228702][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147223.228706][37702:37702] CHIP:DMG: { - [1663147223.228710][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147223.228714][37702:37702] CHIP:DMG: [ - [1663147223.228717][37702:37702] CHIP:DMG: AttributePathIB = - [1663147223.228722][37702:37702] CHIP:DMG: { - [1663147223.228726][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147223.228730][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147223.228734][37702:37702] CHIP:DMG: Attribute = 0x0000_0004, - [1663147223.228738][37702:37702] CHIP:DMG: } - [1663147223.228742][37702:37702] CHIP:DMG: - [1663147223.228746][37702:37702] CHIP:DMG: ], - [1663147223.228751][37702:37702] CHIP:DMG: - [1663147223.228754][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147223.228758][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147223.228761][37702:37702] CHIP:DMG: }, - [1663147223.228780][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool levelcontrol read min-frequency 1 1 - Verify DUT(chip-tool) receives min-frequency attribute response on the TH(all-clusters-minimal-app) Log: - [1663147242.442251][37702:37702] CHIP:IM: Received Read request - [1663147242.442277][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147242.442282][37702:37702] CHIP:DMG: { - [1663147242.442287][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147242.442293][37702:37702] CHIP:DMG: [ - [1663147242.442298][37702:37702] CHIP:DMG: AttributePathIB = - [1663147242.442304][37702:37702] CHIP:DMG: { - [1663147242.442309][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147242.442315][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147242.442320][37702:37702] CHIP:DMG: Attribute = 0x0000_0005, - [1663147242.442324][37702:37702] CHIP:DMG: } - [1663147242.442331][37702:37702] CHIP:DMG: - [1663147242.442336][37702:37702] CHIP:DMG: ], - [1663147242.442342][37702:37702] CHIP:DMG: - [1663147242.442347][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147242.442352][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147242.442355][37702:37702] CHIP:DMG: }, - [1663147242.442378][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool levelcontrol read max-frequency 1 1 - Verify DUT(chip-tool) receives max-frequency attribute response on the TH(all-clusters-minimal-app) Log: - [1663147259.687422][37702:37702] CHIP:IM: Received Read request - [1663147259.687445][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147259.687450][37702:37702] CHIP:DMG: { - [1663147259.687454][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147259.687458][37702:37702] CHIP:DMG: [ - [1663147259.687463][37702:37702] CHIP:DMG: AttributePathIB = - [1663147259.687469][37702:37702] CHIP:DMG: { - [1663147259.687474][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147259.687478][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147259.687481][37702:37702] CHIP:DMG: Attribute = 0x0000_0006, - [1663147259.687485][37702:37702] CHIP:DMG: } - [1663147259.687490][37702:37702] CHIP:DMG: - [1663147259.687494][37702:37702] CHIP:DMG: ], - [1663147259.687500][37702:37702] CHIP:DMG: - [1663147259.687504][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147259.687509][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147259.687513][37702:37702] CHIP:DMG: }, - [1663147259.687532][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool levelcontrol read on-off-transition-time 1 1 - Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147276.525081][37702:37702] CHIP:IM: Received Read request - [1663147276.525105][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147276.525110][37702:37702] CHIP:DMG: { - [1663147276.525115][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147276.525120][37702:37702] CHIP:DMG: [ - [1663147276.525124][37702:37702] CHIP:DMG: AttributePathIB = - [1663147276.525129][37702:37702] CHIP:DMG: { - [1663147276.525133][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147276.525138][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147276.525143][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, - [1663147276.525148][37702:37702] CHIP:DMG: } - [1663147276.525155][37702:37702] CHIP:DMG: - [1663147276.525159][37702:37702] CHIP:DMG: ], - [1663147276.525166][37702:37702] CHIP:DMG: - [1663147276.525171][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147276.525177][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147276.525181][37702:37702] CHIP:DMG: }, - [1663147276.525202][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: LVL.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - TH all-clusters-minimal-app does not support optional attributes - - ./chip-tool levelcontrol write on-off-transition-time 5 1 1 - Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147558.231731][37702:37702] CHIP:IM: Received Write request - [1663147558.231735][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147558.231746][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147558.231749][37702:37702] CHIP:DMG: { - [1663147558.231753][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147558.231757][37702:37702] CHIP:DMG: timedRequest = false, - [1663147558.231760][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147558.231765][37702:37702] CHIP:DMG: [ - [1663147558.231767][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147558.231771][37702:37702] CHIP:DMG: { - [1663147558.231773][37702:37702] CHIP:DMG: AttributePathIB = - [1663147558.231777][37702:37702] CHIP:DMG: { - [1663147558.231781][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147558.231784][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147558.231789][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, - [1663147558.231792][37702:37702] CHIP:DMG: } - [1663147558.231795][37702:37702] CHIP:DMG: - [1663147558.231798][37702:37702] CHIP:DMG: Data = 5, - [1663147558.231801][37702:37702] CHIP:DMG: }, - [1663147558.231805][37702:37702] CHIP:DMG: - [1663147558.231809][37702:37702] CHIP:DMG: ], - [1663147558.231813][37702:37702] CHIP:DMG: - [1663147558.231816][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147558.231820][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147558.231822][37702:37702] CHIP:DMG: }, - [1663147558.231844][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write on-transition-time 5 1 1 - Verify DUT(chip-tool) receives on-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147582.702165][37702:37702] CHIP:IM: Received Write request - [1663147582.702168][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147582.702179][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147582.702182][37702:37702] CHIP:DMG: { - [1663147582.702185][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147582.702188][37702:37702] CHIP:DMG: timedRequest = false, - [1663147582.702191][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147582.702196][37702:37702] CHIP:DMG: [ - [1663147582.702199][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147582.702202][37702:37702] CHIP:DMG: { - [1663147582.702205][37702:37702] CHIP:DMG: AttributePathIB = - [1663147582.702209][37702:37702] CHIP:DMG: { - [1663147582.702212][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147582.702216][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147582.702219][37702:37702] CHIP:DMG: Attribute = 0x0000_0012, - [1663147582.702222][37702:37702] CHIP:DMG: } - [1663147582.702226][37702:37702] CHIP:DMG: - [1663147582.702230][37702:37702] CHIP:DMG: Data = 5, - [1663147582.702233][37702:37702] CHIP:DMG: }, - [1663147582.702236][37702:37702] CHIP:DMG: - [1663147582.702239][37702:37702] CHIP:DMG: ], - [1663147582.702243][37702:37702] CHIP:DMG: - [1663147582.702246][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147582.702248][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147582.702252][37702:37702] CHIP:DMG: }, - [1663147582.702271][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write off-transition-time 5 1 1 - Verify DUT(chip-tool) receives off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147605.317885][37702:37702] CHIP:IM: Received Write request - [1663147605.317891][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147605.317910][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147605.317915][37702:37702] CHIP:DMG: { - [1663147605.317920][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147605.317925][37702:37702] CHIP:DMG: timedRequest = false, - [1663147605.317930][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147605.317936][37702:37702] CHIP:DMG: [ - [1663147605.317941][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147605.317945][37702:37702] CHIP:DMG: { - [1663147605.317950][37702:37702] CHIP:DMG: AttributePathIB = - [1663147605.317956][37702:37702] CHIP:DMG: { - [1663147605.317962][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147605.317968][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147605.317973][37702:37702] CHIP:DMG: Attribute = 0x0000_0013, - [1663147605.317978][37702:37702] CHIP:DMG: } - [1663147605.317985][37702:37702] CHIP:DMG: - [1663147605.317990][37702:37702] CHIP:DMG: Data = 5, - [1663147605.317996][37702:37702] CHIP:DMG: }, - [1663147605.318002][37702:37702] CHIP:DMG: - [1663147605.318007][37702:37702] CHIP:DMG: ], - [1663147605.318014][37702:37702] CHIP:DMG: - [1663147605.318018][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147605.318024][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147605.318028][37702:37702] CHIP:DMG: }, - [1663147605.318058][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write default-move-rate 5 1 1 - Verify DUT(chip-tool) receives default-move-rate attribute response on the TH(all-clusters-minimal-app) Log: - [1663147644.857538][37702:37702] CHIP:IM: Received Write request - [1663147644.857541][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147644.857552][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147644.857555][37702:37702] CHIP:DMG: { - [1663147644.857557][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147644.857560][37702:37702] CHIP:DMG: timedRequest = false, - [1663147644.857562][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147644.857566][37702:37702] CHIP:DMG: [ - [1663147644.857568][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147644.857571][37702:37702] CHIP:DMG: { - [1663147644.857574][37702:37702] CHIP:DMG: AttributePathIB = - [1663147644.857577][37702:37702] CHIP:DMG: { - [1663147644.857580][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147644.857582][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147644.857585][37702:37702] CHIP:DMG: Attribute = 0x0000_0014, - [1663147644.857587][37702:37702] CHIP:DMG: } - [1663147644.857591][37702:37702] CHIP:DMG: - [1663147644.857594][37702:37702] CHIP:DMG: Data = 5, - [1663147644.857596][37702:37702] CHIP:DMG: }, - [1663147644.857601][37702:37702] CHIP:DMG: - [1663147644.857603][37702:37702] CHIP:DMG: ], - [1663147644.857606][37702:37702] CHIP:DMG: - [1663147644.857609][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147644.857611][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147644.857613][37702:37702] CHIP:DMG: }, - [1663147644.857629][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write start-up-current-level 5 1 1 - Verify DUT(chip-tool) receives start-up-current-level attribute response on the TH(all-clusters-minimal-app) Log: - [1663147665.149448][37702:37702] CHIP:IM: Received Write request - [1663147665.149453][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147665.149474][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147665.149480][37702:37702] CHIP:DMG: { - [1663147665.149486][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147665.149492][37702:37702] CHIP:DMG: timedRequest = false, - [1663147665.149497][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147665.149506][37702:37702] CHIP:DMG: [ - [1663147665.149511][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147665.149520][37702:37702] CHIP:DMG: { - [1663147665.149525][37702:37702] CHIP:DMG: AttributePathIB = - [1663147665.149532][37702:37702] CHIP:DMG: { - [1663147665.149539][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147665.149545][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147665.149552][37702:37702] CHIP:DMG: Attribute = 0x0000_4000, - [1663147665.149558][37702:37702] CHIP:DMG: } - [1663147665.149565][37702:37702] CHIP:DMG: - [1663147665.149572][37702:37702] CHIP:DMG: Data = 5, - [1663147665.149578][37702:37702] CHIP:DMG: }, - [1663147665.149586][37702:37702] CHIP:DMG: - [1663147665.149590][37702:37702] CHIP:DMG: ], - [1663147665.149598][37702:37702] CHIP:DMG: - [1663147665.149604][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147665.149609][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147665.149614][37702:37702] CHIP:DMG: }, - [1663147665.149652][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_3_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_3_Simulated.yaml new file mode 100644 index 00000000000000..dfb6ad9787fcf5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_LVL_2_3_Simulated.yaml @@ -0,0 +1,584 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 21.2.3. [TC-LVL-2.3] Attributes with client as DUT + +PICS: + - LVL.C + - LVL.C.AM-READ + - LVL.C.AO-READ + - LVL.C.AM-WRITE + - LVL.C.AO-WRITE + +config: + nodeId: 0x12344321 + cluster: "Level Control" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "Read mandatory attribute CurrentLevel" + wait: "readAttribute" + attribute: "CurrentLevel" + + - label: "Read mandatory attribute OnLevel" + wait: "readAttribute" + attribute: "OnLevel" + + - label: "Read mandatory attribute Options" + wait: "readAttribute" + attribute: "Options" + + - label: "Read optional attribute RemainingTime" + wait: "readAttribute" + attribute: "RemainingTime" + + - label: "Read optional attribute StartUpCurrentLevel" + wait: "readAttribute" + attribute: "StartUpCurrentLevel" + + - label: "Read optional attribute CurrentFrequency" + wait: "readAttribute" + attribute: "CurrentFrequency" + + - label: "Read optional attribute MinFrequency" + wait: "readAttribute" + attribute: "MinFrequency" + + - label: "Read optional attribute MaxFrequency" + wait: "readAttribute" + attribute: "MaxFrequency" + + - label: "Read optional attribute MinLevel" + wait: "readAttribute" + attribute: "MinLevel" + + - label: "Read optional attribute MaxLevel" + wait: "readAttribute" + attribute: "MaxLevel" + + - label: "Read optional attribute OnOffTransitionTime" + wait: "readAttribute" + attribute: "OnOffTransitionTime" + + - label: "Read optional attribute OnTransitionTime" + wait: "readAttribute" + attribute: "OnTransitionTime" + + - label: "Read optional attribute OffTransitionTime" + wait: "readAttribute" + attribute: "OffTransitionTime" + + - label: "Read optional attribute DefaultMoveRate" + wait: "readAttribute" + attribute: "DefaultMoveRate" + + - label: "Write mandatory attribute OnLevel" + wait: "writeAttribute" + attribute: "OnLevel" + arguments: + value: + + - label: "Write mandatory attribute Options" + wait: "writeAttribute" + attribute: "Options" + arguments: + value: + + - label: "Write optional attribute OnOffTransitionTime" + wait: "writeAttribute" + attribute: "OnOffTransitionTime" + arguments: + value: + + - label: "Write optional attribute OnTransitionTime" + wait: "writeAttribute" + attribute: "OnTransitionTime" + arguments: + value: + + - label: "Write optional attribute OffTransitionTime" + wait: "writeAttribute" + attribute: "OffTransitionTime" + arguments: + value: + + - label: "Write optional attribute DefaultMoveRate" + wait: "writeAttribute" + attribute: "DefaultMoveRate" + arguments: + value: + + - label: "Write optional attribute StartUpCurrentLevel" + wait: "writeAttribute" + attribute: "StartUpCurrentLevel" + arguments: + value: + + - label: + "Configure TH such that it implements mandatory and none of the + optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList.Commission DUT to TH again" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + ./chip-tool levelcontrol read current-level 1 1 + Verify DUT receives current-level attribute response on the TH(all-clusters-minimal-app) Log: + [1657913862.815749][3126:3126] CHIP:IM: Received Read request + [1657913862.815884][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913862.815935][3126:3126] CHIP:DMG: { + [1657913862.815975][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913862.816023][3126:3126] CHIP:DMG: [ + [1657913862.816107][3126:3126] CHIP:DMG: AttributePathIB = + [1657913862.816161][3126:3126] CHIP:DMG: { + [1657913862.816212][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913862.816268][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913862.816325][3126:3126] CHIP:DMG: Attribute = 0x0000_0000, + [1657913862.816377][3126:3126] CHIP:DMG: } + [1657913862.816431][3126:3126] CHIP:DMG: + [1657913862.816477][3126:3126] CHIP:DMG: ], + [1657913862.816527][3126:3126] CHIP:DMG: + [1657913862.816573][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913862.816619][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913862.816662][3126:3126] CHIP:DMG: }, + + + ./chip-tool levelcontrol read on-level 1 1 + Verify DUT receives on-level attribute response on the TH(all-clusters-minimal-app) Log: + [1657913877.850398][3126:3126] CHIP:IM: Received Read request + [1657913877.850525][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913877.850574][3126:3126] CHIP:DMG: { + [1657913877.850614][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913877.850725][3126:3126] CHIP:DMG: [ + [1657913877.850771][3126:3126] CHIP:DMG: AttributePathIB = + [1657913877.850821][3126:3126] CHIP:DMG: { + [1657913877.850872][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913877.850932][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913877.850989][3126:3126] CHIP:DMG: Attribute = 0x0000_0011, + [1657913877.851048][3126:3126] CHIP:DMG: } + [1657913877.851103][3126:3126] CHIP:DMG: + [1657913877.851153][3126:3126] CHIP:DMG: ], + [1657913877.851203][3126:3126] CHIP:DMG: + [1657913877.851251][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913877.851297][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913877.851343][3126:3126] CHIP:DMG: }, + [1657913877.851471][3126:3126] CHIP:DMG: IM + + + ./chip-tool levelcontrol read options 1 1 + Verify DUT receives options attribute response on the TH(all-clusters-minimal-app) Log: + [1657913895.195563][3126:3126] CHIP:IM: Received Read request + [1657913895.195705][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913895.195732][3126:3126] CHIP:DMG: { + [1657913895.195754][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913895.195780][3126:3126] CHIP:DMG: [ + [1657913895.195803][3126:3126] CHIP:DMG: AttributePathIB = + [1657913895.195901][3126:3126] CHIP:DMG: { + [1657913895.195932][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913895.195963][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913895.195993][3126:3126] CHIP:DMG: Attribute = 0x0000_000F, + [1657913895.196022][3126:3126] CHIP:DMG: } + [1657913895.196073][3126:3126] CHIP:DMG: + [1657913895.196101][3126:3126] CHIP:DMG: ], + [1657913895.196161][3126:3126] CHIP:DMG: + [1657913895.196189][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913895.196214][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913895.196236][3126:3126] CHIP:DMG: }, + + + ./chip-tool levelcontrol read attribute-list 1 1 + Verify DUT receives attribute-list attribute response on the TH(all-clusters-minimal-app) Log: + [1657913906.648918][3126:3126] CHIP:IM: Received Read request + [1657913906.649061][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913906.649115][3126:3126] CHIP:DMG: { + [1657913906.649162][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913906.649225][3126:3126] CHIP:DMG: [ + [1657913906.649273][3126:3126] CHIP:DMG: AttributePathIB = + [1657913906.649330][3126:3126] CHIP:DMG: { + [1657913906.649389][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913906.649462][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913906.649529][3126:3126] CHIP:DMG: Attribute = 0x0000_FFFB, + [1657913906.649569][3126:3126] CHIP:DMG: } + [1657913906.649593][3126:3126] CHIP:DMG: + [1657913906.649618][3126:3126] CHIP:DMG: ], + [1657913906.649645][3126:3126] CHIP:DMG: + [1657913906.649731][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913906.649757][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913906.649781][3126:3126] CHIP:DMG: }, + + + ./chip-tool levelcontrol read feature-map 1 1 + Verify DUT receives feature-map attribute response on the TH(all-clusters-minimal-app) Log: + [1663070713.467153][4422:4422] CHIP:IM: Received Read request + [1663070713.467242][4422:4422] CHIP:DMG: ReadRequestMessage = + [1663070713.467275][4422:4422] CHIP:DMG: { + [1663070713.467300][4422:4422] CHIP:DMG: AttributePathIBs = + [1663070713.467329][4422:4422] CHIP:DMG: [ + [1663070713.467355][4422:4422] CHIP:DMG: AttributePathIB = + [1663070713.467390][4422:4422] CHIP:DMG: { + [1663070713.467422][4422:4422] CHIP:DMG: Endpoint = 0x1, + [1663070713.467455][4422:4422] CHIP:DMG: Cluster = 0x8, + [1663070713.467487][4422:4422] CHIP:DMG: Attribute = 0x0000_FFFC, + [1663070713.467517][4422:4422] CHIP:DMG: } + [1663070713.467548][4422:4422] CHIP:DMG: + [1663070713.467576][4422:4422] CHIP:DMG: ], + [1663070713.467606][4422:4422] CHIP:DMG: + [1663070713.467635][4422:4422] CHIP:DMG: isFabricFiltered = true, + [1663070713.467663][4422:4422] CHIP:DMG: InteractionModelRevision = 1 + [1663070713.467689][4422:4422] CHIP:DMG: }, + [1663070713.467767][4422:4422] CHIP:DMG: IM RH moving to [GeneratingReports] + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT reads all supported optional attributes from TH one at a time in + a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + TH all-clusters-minimal-app does not support optional attributes + + ./chip-tool levelcontrol read remaining-time 1 1 + Verify DUT(chip-tool) receives remaining-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147148.155292][37702:37702] CHIP:IM: Received Read request + [1663147148.155312][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147148.155315][37702:37702] CHIP:DMG: { + [1663147148.155317][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147148.155320][37702:37702] CHIP:DMG: [ + [1663147148.155323][37702:37702] CHIP:DMG: AttributePathIB = + [1663147148.155326][37702:37702] CHIP:DMG: { + [1663147148.155328][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147148.155331][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147148.155334][37702:37702] CHIP:DMG: Attribute = 0x0000_0001, + [1663147148.155338][37702:37702] CHIP:DMG: } + [1663147148.155341][37702:37702] CHIP:DMG: + [1663147148.155343][37702:37702] CHIP:DMG: ], + [1663147148.155346][37702:37702] CHIP:DMG: + [1663147148.155349][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147148.155351][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147148.155353][37702:37702] CHIP:DMG: }, + [1663147148.155366][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + [1663147148.155376][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + + + ./chip-tool levelcontrol read min-level 1 1 + Verify DUT(chip-tool) receives min-level attribute response on the TH(all-clusters-minimal-app) Log: + [1663147176.255360][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147176.255364][37702:37702] CHIP:DMG: { + [1663147176.255368][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147176.255373][37702:37702] CHIP:DMG: [ + [1663147176.255376][37702:37702] CHIP:DMG: AttributePathIB = + [1663147176.255381][37702:37702] CHIP:DMG: { + [1663147176.255385][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147176.255389][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147176.255393][37702:37702] CHIP:DMG: Attribute = 0x0000_0002, + [1663147176.255396][37702:37702] CHIP:DMG: } + [1663147176.255401][37702:37702] CHIP:DMG: + [1663147176.255404][37702:37702] CHIP:DMG: ], + [1663147176.255409][37702:37702] CHIP:DMG: + [1663147176.255413][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147176.255416][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147176.255419][37702:37702] CHIP:DMG: }, + [1663147176.255436][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + [1663147176.255451][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + + ./chip-tool levelcontrol read max-level 1 1 + Verify DUT(chip-tool) receives max-level attribute response on the TH(all-clusters-minimal-app) Log: + [1663147204.133512][37702:37702] CHIP:IM: Received Read request + [1663147204.133528][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147204.133531][37702:37702] CHIP:DMG: { + [1663147204.133533][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147204.133536][37702:37702] CHIP:DMG: [ + [1663147204.133538][37702:37702] CHIP:DMG: AttributePathIB = + [1663147204.133541][37702:37702] CHIP:DMG: { + [1663147204.133543][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147204.133546][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147204.133549][37702:37702] CHIP:DMG: Attribute = 0x0000_0003, + [1663147204.133551][37702:37702] CHIP:DMG: } + [1663147204.133553][37702:37702] CHIP:DMG: + [1663147204.133555][37702:37702] CHIP:DMG: ], + [1663147204.133558][37702:37702] CHIP:DMG: + [1663147204.133561][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147204.133563][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147204.133565][37702:37702] CHIP:DMG: }, + [1663147204.133577][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + [1663147204.133587][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + ./chip-tool levelcontrol read current-frequency 1 1 + Verify DUT(chip-tool) receives current-frequency attribute response on the TH(all-clusters-minimal-app) Log: + [1663147223.228680][37702:37702] CHIP:IM: Received Read request + [1663147223.228702][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147223.228706][37702:37702] CHIP:DMG: { + [1663147223.228710][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147223.228714][37702:37702] CHIP:DMG: [ + [1663147223.228717][37702:37702] CHIP:DMG: AttributePathIB = + [1663147223.228722][37702:37702] CHIP:DMG: { + [1663147223.228726][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147223.228730][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147223.228734][37702:37702] CHIP:DMG: Attribute = 0x0000_0004, + [1663147223.228738][37702:37702] CHIP:DMG: } + [1663147223.228742][37702:37702] CHIP:DMG: + [1663147223.228746][37702:37702] CHIP:DMG: ], + [1663147223.228751][37702:37702] CHIP:DMG: + [1663147223.228754][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147223.228758][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147223.228761][37702:37702] CHIP:DMG: }, + [1663147223.228780][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool levelcontrol read min-frequency 1 1 + Verify DUT(chip-tool) receives min-frequency attribute response on the TH(all-clusters-minimal-app) Log: + [1663147242.442251][37702:37702] CHIP:IM: Received Read request + [1663147242.442277][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147242.442282][37702:37702] CHIP:DMG: { + [1663147242.442287][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147242.442293][37702:37702] CHIP:DMG: [ + [1663147242.442298][37702:37702] CHIP:DMG: AttributePathIB = + [1663147242.442304][37702:37702] CHIP:DMG: { + [1663147242.442309][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147242.442315][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147242.442320][37702:37702] CHIP:DMG: Attribute = 0x0000_0005, + [1663147242.442324][37702:37702] CHIP:DMG: } + [1663147242.442331][37702:37702] CHIP:DMG: + [1663147242.442336][37702:37702] CHIP:DMG: ], + [1663147242.442342][37702:37702] CHIP:DMG: + [1663147242.442347][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147242.442352][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147242.442355][37702:37702] CHIP:DMG: }, + [1663147242.442378][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool levelcontrol read max-frequency 1 1 + Verify DUT(chip-tool) receives max-frequency attribute response on the TH(all-clusters-minimal-app) Log: + [1663147259.687422][37702:37702] CHIP:IM: Received Read request + [1663147259.687445][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147259.687450][37702:37702] CHIP:DMG: { + [1663147259.687454][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147259.687458][37702:37702] CHIP:DMG: [ + [1663147259.687463][37702:37702] CHIP:DMG: AttributePathIB = + [1663147259.687469][37702:37702] CHIP:DMG: { + [1663147259.687474][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147259.687478][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147259.687481][37702:37702] CHIP:DMG: Attribute = 0x0000_0006, + [1663147259.687485][37702:37702] CHIP:DMG: } + [1663147259.687490][37702:37702] CHIP:DMG: + [1663147259.687494][37702:37702] CHIP:DMG: ], + [1663147259.687500][37702:37702] CHIP:DMG: + [1663147259.687504][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147259.687509][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147259.687513][37702:37702] CHIP:DMG: }, + [1663147259.687532][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool levelcontrol read on-off-transition-time 1 1 + Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147276.525081][37702:37702] CHIP:IM: Received Read request + [1663147276.525105][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147276.525110][37702:37702] CHIP:DMG: { + [1663147276.525115][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147276.525120][37702:37702] CHIP:DMG: [ + [1663147276.525124][37702:37702] CHIP:DMG: AttributePathIB = + [1663147276.525129][37702:37702] CHIP:DMG: { + [1663147276.525133][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147276.525138][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147276.525143][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, + [1663147276.525148][37702:37702] CHIP:DMG: } + [1663147276.525155][37702:37702] CHIP:DMG: + [1663147276.525159][37702:37702] CHIP:DMG: ], + [1663147276.525166][37702:37702] CHIP:DMG: + [1663147276.525171][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147276.525177][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147276.525181][37702:37702] CHIP:DMG: }, + [1663147276.525202][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT writes a suitable value to all supported optional attributes on + the TH one at a time in a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + TH all-clusters-minimal-app does not support optional attributes + + ./chip-tool levelcontrol write on-off-transition-time 5 1 1 + Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147558.231731][37702:37702] CHIP:IM: Received Write request + [1663147558.231735][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147558.231746][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147558.231749][37702:37702] CHIP:DMG: { + [1663147558.231753][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147558.231757][37702:37702] CHIP:DMG: timedRequest = false, + [1663147558.231760][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147558.231765][37702:37702] CHIP:DMG: [ + [1663147558.231767][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147558.231771][37702:37702] CHIP:DMG: { + [1663147558.231773][37702:37702] CHIP:DMG: AttributePathIB = + [1663147558.231777][37702:37702] CHIP:DMG: { + [1663147558.231781][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147558.231784][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147558.231789][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, + [1663147558.231792][37702:37702] CHIP:DMG: } + [1663147558.231795][37702:37702] CHIP:DMG: + [1663147558.231798][37702:37702] CHIP:DMG: Data = 5, + [1663147558.231801][37702:37702] CHIP:DMG: }, + [1663147558.231805][37702:37702] CHIP:DMG: + [1663147558.231809][37702:37702] CHIP:DMG: ], + [1663147558.231813][37702:37702] CHIP:DMG: + [1663147558.231816][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147558.231820][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147558.231822][37702:37702] CHIP:DMG: }, + [1663147558.231844][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write on-transition-time 5 1 1 + Verify DUT(chip-tool) receives on-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147582.702165][37702:37702] CHIP:IM: Received Write request + [1663147582.702168][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147582.702179][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147582.702182][37702:37702] CHIP:DMG: { + [1663147582.702185][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147582.702188][37702:37702] CHIP:DMG: timedRequest = false, + [1663147582.702191][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147582.702196][37702:37702] CHIP:DMG: [ + [1663147582.702199][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147582.702202][37702:37702] CHIP:DMG: { + [1663147582.702205][37702:37702] CHIP:DMG: AttributePathIB = + [1663147582.702209][37702:37702] CHIP:DMG: { + [1663147582.702212][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147582.702216][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147582.702219][37702:37702] CHIP:DMG: Attribute = 0x0000_0012, + [1663147582.702222][37702:37702] CHIP:DMG: } + [1663147582.702226][37702:37702] CHIP:DMG: + [1663147582.702230][37702:37702] CHIP:DMG: Data = 5, + [1663147582.702233][37702:37702] CHIP:DMG: }, + [1663147582.702236][37702:37702] CHIP:DMG: + [1663147582.702239][37702:37702] CHIP:DMG: ], + [1663147582.702243][37702:37702] CHIP:DMG: + [1663147582.702246][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147582.702248][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147582.702252][37702:37702] CHIP:DMG: }, + [1663147582.702271][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write off-transition-time 5 1 1 + Verify DUT(chip-tool) receives off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147605.317885][37702:37702] CHIP:IM: Received Write request + [1663147605.317891][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147605.317910][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147605.317915][37702:37702] CHIP:DMG: { + [1663147605.317920][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147605.317925][37702:37702] CHIP:DMG: timedRequest = false, + [1663147605.317930][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147605.317936][37702:37702] CHIP:DMG: [ + [1663147605.317941][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147605.317945][37702:37702] CHIP:DMG: { + [1663147605.317950][37702:37702] CHIP:DMG: AttributePathIB = + [1663147605.317956][37702:37702] CHIP:DMG: { + [1663147605.317962][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147605.317968][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147605.317973][37702:37702] CHIP:DMG: Attribute = 0x0000_0013, + [1663147605.317978][37702:37702] CHIP:DMG: } + [1663147605.317985][37702:37702] CHIP:DMG: + [1663147605.317990][37702:37702] CHIP:DMG: Data = 5, + [1663147605.317996][37702:37702] CHIP:DMG: }, + [1663147605.318002][37702:37702] CHIP:DMG: + [1663147605.318007][37702:37702] CHIP:DMG: ], + [1663147605.318014][37702:37702] CHIP:DMG: + [1663147605.318018][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147605.318024][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147605.318028][37702:37702] CHIP:DMG: }, + [1663147605.318058][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write default-move-rate 5 1 1 + Verify DUT(chip-tool) receives default-move-rate attribute response on the TH(all-clusters-minimal-app) Log: + [1663147644.857538][37702:37702] CHIP:IM: Received Write request + [1663147644.857541][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147644.857552][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147644.857555][37702:37702] CHIP:DMG: { + [1663147644.857557][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147644.857560][37702:37702] CHIP:DMG: timedRequest = false, + [1663147644.857562][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147644.857566][37702:37702] CHIP:DMG: [ + [1663147644.857568][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147644.857571][37702:37702] CHIP:DMG: { + [1663147644.857574][37702:37702] CHIP:DMG: AttributePathIB = + [1663147644.857577][37702:37702] CHIP:DMG: { + [1663147644.857580][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147644.857582][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147644.857585][37702:37702] CHIP:DMG: Attribute = 0x0000_0014, + [1663147644.857587][37702:37702] CHIP:DMG: } + [1663147644.857591][37702:37702] CHIP:DMG: + [1663147644.857594][37702:37702] CHIP:DMG: Data = 5, + [1663147644.857596][37702:37702] CHIP:DMG: }, + [1663147644.857601][37702:37702] CHIP:DMG: + [1663147644.857603][37702:37702] CHIP:DMG: ], + [1663147644.857606][37702:37702] CHIP:DMG: + [1663147644.857609][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147644.857611][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147644.857613][37702:37702] CHIP:DMG: }, + [1663147644.857629][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write start-up-current-level 5 1 1 + Verify DUT(chip-tool) receives start-up-current-level attribute response on the TH(all-clusters-minimal-app) Log: + [1663147665.149448][37702:37702] CHIP:IM: Received Write request + [1663147665.149453][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147665.149474][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147665.149480][37702:37702] CHIP:DMG: { + [1663147665.149486][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147665.149492][37702:37702] CHIP:DMG: timedRequest = false, + [1663147665.149497][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147665.149506][37702:37702] CHIP:DMG: [ + [1663147665.149511][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147665.149520][37702:37702] CHIP:DMG: { + [1663147665.149525][37702:37702] CHIP:DMG: AttributePathIB = + [1663147665.149532][37702:37702] CHIP:DMG: { + [1663147665.149539][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147665.149545][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147665.149552][37702:37702] CHIP:DMG: Attribute = 0x0000_4000, + [1663147665.149558][37702:37702] CHIP:DMG: } + [1663147665.149565][37702:37702] CHIP:DMG: + [1663147665.149572][37702:37702] CHIP:DMG: Data = 5, + [1663147665.149578][37702:37702] CHIP:DMG: }, + [1663147665.149586][37702:37702] CHIP:DMG: + [1663147665.149590][37702:37702] CHIP:DMG: ], + [1663147665.149598][37702:37702] CHIP:DMG: + [1663147665.149604][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147665.149609][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147665.149614][37702:37702] CHIP:DMG: }, + [1663147665.149652][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml b/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml index b43b6b73853aad..f2739a908c5c9a 100644 --- a/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml @@ -18,7 +18,7 @@ name: Verification (DUT as Server) PICS: - - MC.S.UDCLOGIN + - MC.S.M.UDCLOGIN config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml b/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml index 5f1add558f194e..923f37b0bd6a7b 100644 --- a/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml @@ -18,7 +18,7 @@ name: Verification (DUT as Server) PICS: - - MC.S.UDC + - MC.S.M.UDC config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml index 9e7125eaae654b..4ab9ae77a4b3cd 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: " !MEDIAINPUT.S.NU " + PICS: " !MEDIAINPUT.S.F00 " command: "readAttribute" attribute: "FeatureMap" response: @@ -50,8 +50,9 @@ tests: constraints: type: bitmap32 - - label: "Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set" - PICS: MEDIAINPUT.S.NU + - label: + "Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set" + PICS: MEDIAINPUT.S.F00 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml index e1fd3d5cd89267..792ed1e19f82b6 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: " !MEDIAPLAYBACK.S.AS && !MEDIAPLAYBACK.S.VS " + PICS: " !MEDIAPLAYBACK.S.F00 && !MEDIAPLAYBACK.S.F01 " command: "readAttribute" attribute: "FeatureMap" response: @@ -51,8 +51,9 @@ tests: type: bitmap32 - label: - "Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set" - PICS: MEDIAPLAYBACK.S.AS + "Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit + set" + PICS: MEDIAPLAYBACK.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -61,8 +62,9 @@ tests: hasMasksSet: [0x1] - label: - "Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set" - PICS: MEDIAPLAYBACK.S.VS + "Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit + set" + PICS: MEDIAPLAYBACK.S.F01 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml index 8c21f73141ac9f..c1dbe77b37e105 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml @@ -86,6 +86,14 @@ tests: type: list contains: [5] + - label: "Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + - label: "Read the global attribute: AcceptedCommandList" command: "readAttribute" attribute: "AcceptedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml b/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml index 0b7caf3b680d21..ae6e379eca3c30 100644 --- a/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 3.2.4. [TC-OO-2.4] Startup functionality with server as DUT +name: 4.2.4. [TC-OO-2.4] Startup functionality with server as DUT PICS: - OO.S diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml deleted file mode 100644 index 644d818e5da6ee..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml +++ /dev/null @@ -1,578 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 4.3.1. [TC-OO-3.1] Attributes with client as DUT - -PICS: - - OO.C - - OO.C.AM-READ - - OO.C.AO-READ - - OO.C.AM-WRITE - - OO.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: OO.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff read on-off 1 1 - - - Verify TH receives OnOff attribute response on the TH(all-clusters-app) Log: - - ReportDataMessage = - [1667452721.059769][2466:2466] CHIP:DMG: { - [1667452721.059794][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452721.059829][2466:2466] CHIP:DMG: [ - [1667452721.059861][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452721.059902][2466:2466] CHIP:DMG: { - [1667452721.059936][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452721.059978][2466:2466] CHIP:DMG: { - [1667452721.060012][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452721.060055][2466:2466] CHIP:DMG: AttributePathIB = - [1667452721.060090][2466:2466] CHIP:DMG: { - [1667452721.060137][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452721.060185][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452721.060223][2466:2466] CHIP:DMG: Attribute = 0x0000_0000, - [1667452721.060262][2466:2466] CHIP:DMG: } - [1667452721.060308][2466:2466] CHIP:DMG: - [1667452721.060354][2466:2466] CHIP:DMG: Data = false, - [1667452721.060386][2466:2466] CHIP:DMG: }, - [1667452721.060425][2466:2466] CHIP:DMG: - [1667452721.060458][2466:2466] CHIP:DMG: }, - [1667452721.060495][2466:2466] CHIP:DMG: - [1667452721.060523][2466:2466] CHIP:DMG: ], - [1667452721.060558][2466:2466] CHIP:DMG: - [1667452721.060584][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452721.060615][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452721.060645][2466:2466] CHIP:DMG: } - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: OO.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff read global-scene-control 1 1 - - Verify TH receives global-scene-control attribute response on the TH(all-clusters-app) Log: - - [...] - ReportDataMessage = - [1667452789.247159][2466:2466] CHIP:DMG: { - [1667452789.247187][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452789.247225][2466:2466] CHIP:DMG: [ - [1667452789.247256][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452789.247334][2466:2466] CHIP:DMG: { - [1667452789.247370][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452789.247416][2466:2466] CHIP:DMG: { - [1667452789.247452][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452789.247489][2466:2466] CHIP:DMG: AttributePathIB = - [1667452789.247524][2466:2466] CHIP:DMG: { - [1667452789.247572][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452789.247614][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452789.247664][2466:2466] CHIP:DMG: Attribute = 0x0000_4000, - [1667452789.247711][2466:2466] CHIP:DMG: } - [1667452789.247760][2466:2466] CHIP:DMG: - [1667452789.247809][2466:2466] CHIP:DMG: Data = true, - [1667452789.247855][2466:2466] CHIP:DMG: }, - [1667452789.247893][2466:2466] CHIP:DMG: - [1667452789.247926][2466:2466] CHIP:DMG: }, - [1667452789.247968][2466:2466] CHIP:DMG: - [1667452789.247998][2466:2466] CHIP:DMG: ], - [1667452789.248034][2466:2466] CHIP:DMG: - [1667452789.248065][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452789.248105][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452789.248134][2466:2466] CHIP:DMG: } - - ./chip-tool onoff read on-time 1 1 - - Verify TH receives on-time attribute response on the TH(all-clusters-app) Log: - - [...] - [ReportDataMessage = - [1667452828.777938][2466:2466] CHIP:DMG: { - [1667452828.777956][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452828.777982][2466:2466] CHIP:DMG: [ - [1667452828.778004][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452828.778034][2466:2466] CHIP:DMG: { - [1667452828.778059][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452828.778086][2466:2466] CHIP:DMG: { - [1667452828.778111][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452828.778138][2466:2466] CHIP:DMG: AttributePathIB = - [1667452828.778170][2466:2466] CHIP:DMG: { - [1667452828.778204][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452828.778238][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452828.778263][2466:2466] CHIP:DMG: Attribute = 0x0000_4001, - [1667452828.778292][2466:2466] CHIP:DMG: } - [1667452828.778325][2466:2466] CHIP:DMG: - [1667452828.778358][2466:2466] CHIP:DMG: Data = 0, - [1667452828.778388][2466:2466] CHIP:DMG: }, - [1667452828.778413][2466:2466] CHIP:DMG: - [1667452828.778434][2466:2466] CHIP:DMG: }, - [1667452828.778462][2466:2466] CHIP:DMG: - [1667452828.778481][2466:2466] CHIP:DMG: ], - [1667452828.778506][2466:2466] CHIP:DMG: - [1667452828.778532][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452828.778554][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452828.778574][2466:2466] CHIP:DMG: } - - - ./chip-tool onoff read off-wait-time 1 1 - - Verify TH receives off-wait-time attribute response on the TH(all-clusters-app) Log: - - [...] - ReportDataMessage = - [1667452886.239711][2466:2466] CHIP:DMG: { - [1667452886.239729][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452886.239755][2466:2466] CHIP:DMG: [ - [1667452886.239778][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452886.239817][2466:2466] CHIP:DMG: { - [1667452886.239846][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452886.239878][2466:2466] CHIP:DMG: { - [1667452886.239913][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452886.239961][2466:2466] CHIP:DMG: AttributePathIB = - [1667452886.240007][2466:2466] CHIP:DMG: { - [1667452886.240056][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452886.240111][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452886.240158][2466:2466] CHIP:DMG: Attribute = 0x0000_4002, - [1667452886.240201][2466:2466] CHIP:DMG: } - [1667452886.240252][2466:2466] CHIP:DMG: - [1667452886.240302][2466:2466] CHIP:DMG: Data = 0, - [1667452886.240342][2466:2466] CHIP:DMG: }, - [1667452886.240379][2466:2466] CHIP:DMG: - [1667452886.240414][2466:2466] CHIP:DMG: }, - [1667452886.240456][2466:2466] CHIP:DMG: - [1667452886.240484][2466:2466] CHIP:DMG: ], - [1667452886.240521][2466:2466] CHIP:DMG: - [1667452886.240552][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452886.240585][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452886.240693][2466:2466] CHIP:DMG: } - - - ./chip-tool onoff read start-up-on-off 1 1 - - Verify TH recieves " start-up-on-off response" on the TH (all-cluster-app) log: - - [...] - ReportDataMessage = - [1667452925.822024][2466:2466] CHIP:DMG: { - [1667452925.822045][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452925.822072][2466:2466] CHIP:DMG: [ - [1667452925.822094][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452925.822125][2466:2466] CHIP:DMG: { - [1667452925.822149][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452925.822177][2466:2466] CHIP:DMG: { - [1667452925.822211][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452925.822243][2466:2466] CHIP:DMG: AttributePathIB = - [1667452925.822276][2466:2466] CHIP:DMG: { - [1667452925.822310][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452925.822340][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452925.822367][2466:2466] CHIP:DMG: Attribute = 0x0000_4003, - [1667452925.822401][2466:2466] CHIP:DMG: } - [1667452925.822436][2466:2466] CHIP:DMG: - [1667452925.822470][2466:2466] CHIP:DMG: Data = NULL - [1667452925.822501][2466:2466] CHIP:DMG: }, - [1667452925.822531][2466:2466] CHIP:DMG: - [1667452925.822556][2466:2466] CHIP:DMG: }, - [1667452925.822585][2466:2466] CHIP:DMG: - [1667452925.822606][2466:2466] CHIP:DMG: ], - [1667452925.822633][2466:2466] CHIP:DMG: - [1667452925.822656][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452925.822681][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452925.822702][2466:2466] CHIP:DMG: } - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - verification: | - This cluster doesn"t have any mandatory attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: OO.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - On TestHarnes (all-cluster-app) a received write request looks like this - - ./chip-tool onoff write on-time 1 1 1 - - Verify the WriteResponseMessage of " on-time" on the TH (all-cluster-app) log: - - [1666941297.380594][9718:9718] CHIP:DMG: WriteResponseMessage = - [1666941297.380596][9718:9718] CHIP:DMG: { - [1666941297.380598][9718:9718] CHIP:DMG: AttributeStatusIBs = - [1666941297.380603][9718:9718] CHIP:DMG: [ - [1666941297.380605][9718:9718] CHIP:DMG: AttributeStatusIB = - [1666941297.380608][9718:9718] CHIP:DMG: { - [1666941297.380610][9718:9718] CHIP:DMG: AttributePathIB = - [1666941297.380613][9718:9718] CHIP:DMG: { - [1666941297.380616][9718:9718] CHIP:DMG: Endpoint = 0x1, - [1666941297.380619][9718:9718] CHIP:DMG: Cluster = 0x6, - [1666941297.380622][9718:9718] CHIP:DMG: Attribute = 0x0000_4001, - [1666941297.380624][9718:9718] CHIP:DMG: } - [1666941297.380628][9718:9718] CHIP:DMG: - [1666941297.380630][9718:9718] CHIP:DMG: StatusIB = - [1666941297.380634][9718:9718] CHIP:DMG: { - [1666941297.380636][9718:9718] CHIP:DMG: status = 0x00 (SUCCESS), - [1666941297.380639][9718:9718] CHIP:DMG: }, - [1666941297.380641][9718:9718] CHIP:DMG: - [1666941297.380643][9718:9718] CHIP:DMG: }, - [1666941297.380647][9718:9718] CHIP:DMG: - [1666941297.380649][9718:9718] CHIP:DMG: ], - [1666941297.380652][9718:9718] CHIP:DMG: - [1666941297.380655][9718:9718] CHIP:DMG: InteractionModelRevision = 1 - - - ./chip-tool onoff write off-wait-time 22 1 1 - - Verify the WriteResponseMessage of " off-wait-time" on the TH (all-cluster-app) log: - [1666941329.582813][9718:9718] CHIP:DMG: WriteResponseMessage = - [1666941329.582820][9718:9718] CHIP:DMG: { - [1666941329.582828][9718:9718] CHIP:DMG: AttributeStatusIBs = - [1666941329.582844][9718:9718] CHIP:DMG: [ - [1666941329.582852][9718:9718] CHIP:DMG: AttributeStatusIB = - [1666941329.582863][9718:9718] CHIP:DMG: { - [1666941329.582871][9718:9718] CHIP:DMG: AttributePathIB = - [1666941329.582879][9718:9718] CHIP:DMG: { - [1666941329.582890][9718:9718] CHIP:DMG: Endpoint = 0x1, - [1666941329.582899][9718:9718] CHIP:DMG: Cluster = 0x6, - [1666941329.582910][9718:9718] CHIP:DMG: Attribute = 0x0000_4002, - [1666941329.582919][9718:9718] CHIP:DMG: } - [1666941329.582933][9718:9718] CHIP:DMG: - [1666941329.582940][9718:9718] CHIP:DMG: StatusIB = - [1666941329.582949][9718:9718] CHIP:DMG: { - [1666941329.582957][9718:9718] CHIP:DMG: status = 0x00 (SUCCESS), - [1666941329.582967][9718:9718] CHIP:DMG: }, - [1666941329.582978][9718:9718] CHIP:DMG: - [1666941329.582988][9718:9718] CHIP:DMG: }, - [1666941329.583001][9718:9718] CHIP:DMG: - [1666941329.583009][9718:9718] CHIP:DMG: ], - [1666941329.583024][9718:9718] CHIP:DMG: - [1666941329.583033][9718:9718] CHIP:DMG: InteractionModelRevision = 1 - [1666941329.583042][9718:9718] CHIP:DMG: } - - - - ./chip-tool onoff write start-up-on-off 2 1 1 - - Verify the WriteResponseMessage of " start-up-on-off " on the TH (all-cluster-app) log: - - [1666941347.639597][9718:9718] CHIP:DMG: WriteResponseMessage = - [1666941347.639609][9718:9718] CHIP:DMG: { - [1666941347.639615][9718:9718] CHIP:DMG: AttributeStatusIBs = - [1666941347.639627][9718:9718] CHIP:DMG: [ - [1666941347.639634][9718:9718] CHIP:DMG: AttributeStatusIB = - [1666941347.639643][9718:9718] CHIP:DMG: { - [1666941347.639648][9718:9718] CHIP:DMG: AttributePathIB = - [1666941347.639652][9718:9718] CHIP:DMG: { - [1666941347.639657][9718:9718] CHIP:DMG: Endpoint = 0x1, - [1666941347.639661][9718:9718] CHIP:DMG: Cluster = 0x6, - [1666941347.639665][9718:9718] CHIP:DMG: Attribute = 0x0000_4003, - [1666941347.639669][9718:9718] CHIP:DMG: } - [1666941347.639674][9718:9718] CHIP:DMG: - [1666941347.639678][9718:9718] CHIP:DMG: StatusIB = - [1666941347.639684][9718:9718] CHIP:DMG: { - [1666941347.639688][9718:9718] CHIP:DMG: status = 0x00 (SUCCESS), - [1666941347.639694][9718:9718] CHIP:DMG: }, - [1666941347.639701][9718:9718] CHIP:DMG: - [1666941347.639704][9718:9718] CHIP:DMG: }, - [1666941347.639709][9718:9718] CHIP:DMG: - [1666941347.639712][9718:9718] CHIP:DMG: ], - [1666941347.639717][9718:9718] CHIP:DMG: - [1666941347.639722][9718:9718] CHIP:DMG: InteractionModelRevision = 1 - disabled: true - - - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it - also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff read attribute-list 1 1 - - Verify the " attribute-list response" on the TH (all-cluster-minimal-app) log: - - [1666943616.274425][12769:12769] CHIP:DMG: - [1666943616.274453][12769:12769] CHIP:DMG: ReportDataMessage = - [1666943616.274456][12769:12769] CHIP:DMG: { - [1666943616.274458][12769:12769] CHIP:DMG: AttributeReportIBs = - [1666943616.274463][12769:12769] CHIP:DMG: [ - [1666943616.274466][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274471][12769:12769] CHIP:DMG: { - [1666943616.274474][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274477][12769:12769] CHIP:DMG: { - [1666943616.274481][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274484][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274487][12769:12769] CHIP:DMG: { - [1666943616.274490][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274494][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274498][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274501][12769:12769] CHIP:DMG: } - [1666943616.274505][12769:12769] CHIP:DMG: - [1666943616.274508][12769:12769] CHIP:DMG: Data = [ - [1666943616.274511][12769:12769] CHIP:DMG: - [1666943616.274515][12769:12769] CHIP:DMG: ], - [1666943616.274518][12769:12769] CHIP:DMG: }, - [1666943616.274522][12769:12769] CHIP:DMG: - [1666943616.274525][12769:12769] CHIP:DMG: }, - [1666943616.274531][12769:12769] CHIP:DMG: - [1666943616.274533][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274538][12769:12769] CHIP:DMG: { - [1666943616.274541][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274544][12769:12769] CHIP:DMG: { - [1666943616.274547][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274550][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274553][12769:12769] CHIP:DMG: { - [1666943616.274557][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274560][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274564][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274567][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274570][12769:12769] CHIP:DMG: } - [1666943616.274574][12769:12769] CHIP:DMG: - [1666943616.274577][12769:12769] CHIP:DMG: Data = 0, - [1666943616.274580][12769:12769] CHIP:DMG: }, - [1666943616.274584][12769:12769] CHIP:DMG: - [1666943616.274587][12769:12769] CHIP:DMG: }, - [1666943616.274593][12769:12769] CHIP:DMG: - [1666943616.274595][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274599][12769:12769] CHIP:DMG: { - [1666943616.274602][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274605][12769:12769] CHIP:DMG: { - [1666943616.274608][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274611][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274614][12769:12769] CHIP:DMG: { - [1666943616.274617][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274620][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274624][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274627][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274630][12769:12769] CHIP:DMG: } - [1666943616.274634][12769:12769] CHIP:DMG: - [1666943616.274637][12769:12769] CHIP:DMG: Data = 65528, - [1666943616.274640][12769:12769] CHIP:DMG: }, - [1666943616.274644][12769:12769] CHIP:DMG: - [1666943616.274647][12769:12769] CHIP:DMG: }, - [1666943616.274653][12769:12769] CHIP:DMG: - [1666943616.274655][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274660][12769:12769] CHIP:DMG: { - [1666943616.274663][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274666][12769:12769] CHIP:DMG: { - [1666943616.274669][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274672][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274675][12769:12769] CHIP:DMG: { - [1666943616.274678][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274682][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274685][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274689][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274693][12769:12769] CHIP:DMG: } - [1666943616.274696][12769:12769] CHIP:DMG: - [1666943616.274700][12769:12769] CHIP:DMG: Data = 65529, - [1666943616.274702][12769:12769] CHIP:DMG: }, - [1666943616.274707][12769:12769] CHIP:DMG: - [1666943616.274709][12769:12769] CHIP:DMG: }, - [1666943616.274715][12769:12769] CHIP:DMG: - [1666943616.274718][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274722][12769:12769] CHIP:DMG: { - [1666943616.274725][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274728][12769:12769] CHIP:DMG: { - [1666943616.274731][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274734][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274737][12769:12769] CHIP:DMG: { - [1666943616.274740][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274744][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274747][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274750][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274753][12769:12769] CHIP:DMG: } - [1666943616.274757][12769:12769] CHIP:DMG: - [1666943616.274760][12769:12769] CHIP:DMG: Data = 65531, - [1666943616.274763][12769:12769] CHIP:DMG: }, - [1666943616.274768][12769:12769] CHIP:DMG: - [1666943616.274770][12769:12769] CHIP:DMG: }, - [1666943616.274776][12769:12769] CHIP:DMG: - [1666943616.274779][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274783][12769:12769] CHIP:DMG: { - [1666943616.274786][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274789][12769:12769] CHIP:DMG: { - [1666943616.274792][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274795][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274798][12769:12769] CHIP:DMG: { - [1666943616.274802][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274805][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274808][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274813][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274817][12769:12769] CHIP:DMG: } - [1666943616.274821][12769:12769] CHIP:DMG: - [1666943616.274824][12769:12769] CHIP:DMG: Data = 65532, - [1666943616.274827][12769:12769] CHIP:DMG: }, - [1666943616.274831][12769:12769] CHIP:DMG: - [1666943616.274834][12769:12769] CHIP:DMG: }, - [1666943616.274840][12769:12769] CHIP:DMG: - [1666943616.274842][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274847][12769:12769] CHIP:DMG: { - [1666943616.274849][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274852][12769:12769] CHIP:DMG: { - [1666943616.274856][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274858][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274861][12769:12769] CHIP:DMG: { - [1666943616.274865][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274868][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274871][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274874][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274878][12769:12769] CHIP:DMG: } - [1666943616.274881][12769:12769] CHIP:DMG: - [1666943616.274885][12769:12769] CHIP:DMG: Data = 65533, - [1666943616.274888][12769:12769] CHIP:DMG: }, - [1666943616.274892][12769:12769] CHIP:DMG: - [1666943616.274894][12769:12769] CHIP:DMG: }, - [1666943616.274898][12769:12769] CHIP:DMG: - [1666943616.274901][12769:12769] CHIP:DMG: ], - [1666943616.274913][12769:12769] CHIP:DMG: - [1666943616.274916][12769:12769] CHIP:DMG: SuppressResponse = true, - [1666943616.274919][12769:12769] CHIP:DMG: InteractionModelRevision = 1 - [1666943616.274921][12769:12769] CHIP:DMG: } - - - ./chip-tool onoff read feature-map 1 1 - - Verify the " feature-map response" on the TH (all-cluster-minimal-app) log: - - [1666943673.928358][12769:12769] CHIP:DMG: ReportDataMessage = - [1666943673.928360][12769:12769] CHIP:DMG: { - [1666943673.928362][12769:12769] CHIP:DMG: AttributeReportIBs = - [1666943673.928367][12769:12769] CHIP:DMG: [ - [1666943673.928369][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943673.928374][12769:12769] CHIP:DMG: { - [1666943673.928376][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943673.928379][12769:12769] CHIP:DMG: { - [1666943673.928382][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943673.928385][12769:12769] CHIP:DMG: AttributePathIB = - [1666943673.928388][12769:12769] CHIP:DMG: { - [1666943673.928392][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943673.928395][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943673.928398][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFC, - [1666943673.928401][12769:12769] CHIP:DMG: } - [1666943673.928404][12769:12769] CHIP:DMG: - [1666943673.928407][12769:12769] CHIP:DMG: Data = 0, - [1666943673.928410][12769:12769] CHIP:DMG: }, - [1666943673.928413][12769:12769] CHIP:DMG: - [1666943673.928416][12769:12769] CHIP:DMG: }, - [1666943673.928419][12769:12769] CHIP:DMG: - [1666943673.928422][12769:12769] CHIP:DMG: ], - [1666943673.928425][12769:12769] CHIP:DMG: - [1666943673.928428][12769:12769] CHIP:DMG: SuppressResponse = true, - [1666943673.928430][12769:12769] CHIP:DMG: InteractionModelRevision = 1 - [1666943673.928432][12769:12769] CHIP:DMG: } - - - ./chip-tool onoff read on-off 1 1 - - Verify the " on-off response" on the TH (all-cluster-minimal-app) log: - - [1666943688.655282][12769:12769] CHIP:DMG: ReportDataMessage = - [1666943688.655285][12769:12769] CHIP:DMG: { - [1666943688.655286][12769:12769] CHIP:DMG: AttributeReportIBs = - [1666943688.655290][12769:12769] CHIP:DMG: [ - [1666943688.655291][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943688.655294][12769:12769] CHIP:DMG: { - [1666943688.655296][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943688.655299][12769:12769] CHIP:DMG: { - [1666943688.655301][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943688.655303][12769:12769] CHIP:DMG: AttributePathIB = - [1666943688.655305][12769:12769] CHIP:DMG: { - [1666943688.655307][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943688.655309][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943688.655312][12769:12769] CHIP:DMG: Attribute = 0x0000_0000, - [1666943688.655314][12769:12769] CHIP:DMG: } - [1666943688.655316][12769:12769] CHIP:DMG: - [1666943688.655319][12769:12769] CHIP:DMG: Data = false, - [1666943688.655321][12769:12769] CHIP:DMG: }, - [1666943688.655323][12769:12769] CHIP:DMG: - [1666943688.655325][12769:12769] CHIP:DMG: }, - [1666943688.655328][12769:12769] CHIP:DMG: - [1666943688.655330][12769:12769] CHIP:DMG: ], - [1666943688.655333][12769:12769] CHIP:DMG: - [1666943688.655335][12769:12769] CHIP:DMG: SuppressResponse = true, - [1666943688.655336][12769:12769] CHIP:DMG: InteractionModelRevision = 1 - [1666943688.655338][12769:12769] CHIP:DMG: } - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: OO.C.AO-READ - verification: | - ./chip-tool onoff read global-scene-control 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff read on-time 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff read off-wait-time 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff read start-up-on-off 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: OO.C.AO-WRITE - verification: | - ./chip-tool onoff write on-time 1 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff write off-wait-time 22 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff write start-up-on-off 2 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_1_Simulated.yaml new file mode 100644 index 00000000000000..e57e5b424496a8 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OO_3_1_Simulated.yaml @@ -0,0 +1,374 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.1. [TC-OO-3.1] Attributes with client as DUT + +PICS: + - OO.C + - OO.C.AM-READ + - OO.C.AO-READ + - OO.C.AM-WRITE + - OO.C.AO-WRITE + +config: + nodeId: 0x12344321 + cluster: "On/Off" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "Read attribute OnOff" + wait: "readAttribute" + attribute: "OnOff" + + - label: "Read attribute GlobalSceneControl" + wait: "readAttribute" + attribute: "GlobalSceneControl" + + - label: "Read attribute OnTime" + wait: "readAttribute" + attribute: "OnTime" + + - label: "Read attribute OffWaitTime" + wait: "readAttribute" + attribute: "OffWaitTime" + + - label: "Read attribute StartUpOnOff" + wait: "readAttribute" + attribute: "StartUpOnOff" + + - label: "Write attribute OnTime" + wait: "writeAttribute" + attribute: "OnTime" + arguments: + value: + + - label: "Write attribute OffWaitTime" + wait: "writeAttribute" + attribute: "OffWaitTime" + arguments: + value: + + - label: "Write attribute StartUpOnOff" + wait: "writeAttribute" + attribute: "StartUpOnOff" + arguments: + value: + + - label: + "Configure TH such that it implements mandatory and none of the + optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList.Commission DUT to TH again" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + ./chip-tool onoff read attribute-list 1 1 + + Verify the " attribute-list response" on the TH (all-cluster-minimal-app) log: + + [1676891564.236044][13681:13681] CHIP:DMG: } + [1676891564.236047][13681:13681] CHIP:DMG: + [1676891564.236099][13681:13681] CHIP:DMG: ReportDataMessage = + [1676891564.236103][13681:13681] CHIP:DMG: { + [1676891564.236105][13681:13681] CHIP:DMG: AttributeReportIBs = + [1676891564.236111][13681:13681] CHIP:DMG: [ + [1676891564.236114][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236120][13681:13681] CHIP:DMG: { + [1676891564.236123][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236127][13681:13681] CHIP:DMG: { + [1676891564.236131][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236135][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236139][13681:13681] CHIP:DMG: { + [1676891564.236144][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236148][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236153][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236157][13681:13681] CHIP:DMG: } + [1676891564.236162][13681:13681] CHIP:DMG: + [1676891564.236166][13681:13681] CHIP:DMG: Data = [ + [1676891564.236170][13681:13681] CHIP:DMG: + [1676891564.236175][13681:13681] CHIP:DMG: ], + [1676891564.236179][13681:13681] CHIP:DMG: }, + [1676891564.236184][13681:13681] CHIP:DMG: + [1676891564.236188][13681:13681] CHIP:DMG: }, + [1676891564.236195][13681:13681] CHIP:DMG: + [1676891564.236199][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236205][13681:13681] CHIP:DMG: { + [1676891564.236208][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236212][13681:13681] CHIP:DMG: { + [1676891564.236216][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236220][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236225][13681:13681] CHIP:DMG: { + [1676891564.236229][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236233][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236238][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236243][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236247][13681:13681] CHIP:DMG: } + [1676891564.236252][13681:13681] CHIP:DMG: + [1676891564.236257][13681:13681] CHIP:DMG: Data = 0, + [1676891564.236260][13681:13681] CHIP:DMG: }, + [1676891564.236266][13681:13681] CHIP:DMG: + [1676891564.236269][13681:13681] CHIP:DMG: }, + [1676891564.236277][13681:13681] CHIP:DMG: + [1676891564.236280][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236286][13681:13681] CHIP:DMG: { + [1676891564.236290][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236294][13681:13681] CHIP:DMG: { + [1676891564.236299][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236306][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236314][13681:13681] CHIP:DMG: { + [1676891564.236321][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236330][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236337][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236344][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236348][13681:13681] CHIP:DMG: } + [1676891564.236354][13681:13681] CHIP:DMG: + [1676891564.236358][13681:13681] CHIP:DMG: Data = 65528, + [1676891564.236362][13681:13681] CHIP:DMG: }, + [1676891564.236367][13681:13681] CHIP:DMG: + [1676891564.236372][13681:13681] CHIP:DMG: }, + [1676891564.236380][13681:13681] CHIP:DMG: + [1676891564.236384][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236389][13681:13681] CHIP:DMG: { + [1676891564.236393][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236400][13681:13681] CHIP:DMG: { + [1676891564.236407][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236414][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236421][13681:13681] CHIP:DMG: { + [1676891564.236427][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236433][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236439][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236445][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236450][13681:13681] CHIP:DMG: } + [1676891564.236457][13681:13681] CHIP:DMG: + [1676891564.236463][13681:13681] CHIP:DMG: Data = 65529, + [1676891564.236468][13681:13681] CHIP:DMG: }, + [1676891564.236475][13681:13681] CHIP:DMG: + [1676891564.236480][13681:13681] CHIP:DMG: }, + [1676891564.236491][13681:13681] CHIP:DMG: + [1676891564.236495][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236503][13681:13681] CHIP:DMG: { + [1676891564.236507][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236513][13681:13681] CHIP:DMG: { + [1676891564.236518][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236523][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236529][13681:13681] CHIP:DMG: { + [1676891564.236534][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236540][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236546][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236551][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236557][13681:13681] CHIP:DMG: } + [1676891564.236563][13681:13681] CHIP:DMG: + [1676891564.236569][13681:13681] CHIP:DMG: Data = 65530, + [1676891564.236574][13681:13681] CHIP:DMG: }, + [1676891564.236581][13681:13681] CHIP:DMG: + [1676891564.236586][13681:13681] CHIP:DMG: }, + [1676891564.236596][13681:13681] CHIP:DMG: + [1676891564.236601][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236609][13681:13681] CHIP:DMG: { + [1676891564.236614][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236619][13681:13681] CHIP:DMG: { + [1676891564.236624][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236629][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236635][13681:13681] CHIP:DMG: { + [1676891564.236640][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236646][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236652][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236658][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236663][13681:13681] CHIP:DMG: } + [1676891564.236670][13681:13681] CHIP:DMG: + [1676891564.236675][13681:13681] CHIP:DMG: Data = 65531, + [1676891564.236681][13681:13681] CHIP:DMG: }, + [1676891564.236688][13681:13681] CHIP:DMG: + [1676891564.236693][13681:13681] CHIP:DMG: }, + [1676891564.236706][13681:13681] CHIP:DMG: + [1676891564.236711][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236720][13681:13681] CHIP:DMG: { + [1676891564.236728][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236736][13681:13681] CHIP:DMG: { + [1676891564.236743][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236749][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236757][13681:13681] CHIP:DMG: { + [1676891564.236765][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236772][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236780][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236787][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236793][13681:13681] CHIP:DMG: } + [1676891564.236802][13681:13681] CHIP:DMG: + [1676891564.236810][13681:13681] CHIP:DMG: Data = 65532, + [1676891564.236816][13681:13681] CHIP:DMG: }, + [1676891564.236825][13681:13681] CHIP:DMG: + [1676891564.236832][13681:13681] CHIP:DMG: }, + [1676891564.236846][13681:13681] CHIP:DMG: + [1676891564.236851][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236858][13681:13681] CHIP:DMG: { + [1676891564.236863][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236868][13681:13681] CHIP:DMG: { + [1676891564.236875][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236883][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236890][13681:13681] CHIP:DMG: { + [1676891564.236897][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236903][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236911][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236918][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236926][13681:13681] CHIP:DMG: } + [1676891564.236936][13681:13681] CHIP:DMG: + [1676891564.236942][13681:13681] CHIP:DMG: Data = 65533, + [1676891564.236947][13681:13681] CHIP:DMG: }, + [1676891564.236955][13681:13681] CHIP:DMG: + [1676891564.236959][13681:13681] CHIP:DMG: }, + [1676891564.236967][13681:13681] CHIP:DMG: + [1676891564.236971][13681:13681] CHIP:DMG: ], + [1676891564.236999][13681:13681] CHIP:DMG: + [1676891564.237003][13681:13681] CHIP:DMG: SuppressResponse = true, + [1676891564.237008][13681:13681] CHIP:DMG: InteractionModelRevision = 1 + [1676891564.237012][13681:13681] CHIP:DMG: } + + + + ./chip-tool onoff read feature-map 1 1 + + Verify the " feature-map response" on the TH (all-cluster-minimal-app) log: + + [1666943673.928358][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943673.928360][12769:12769] CHIP:DMG: { + [1666943673.928362][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943673.928367][12769:12769] CHIP:DMG: [ + [1666943673.928369][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943673.928374][12769:12769] CHIP:DMG: { + [1666943673.928376][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943673.928379][12769:12769] CHIP:DMG: { + [1666943673.928382][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, + [1666943673.928385][12769:12769] CHIP:DMG: AttributePathIB = + [1666943673.928388][12769:12769] CHIP:DMG: { + [1666943673.928392][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943673.928395][12769:12769] CHIP:DMG: Cluster = 0x6, + [1666943673.928398][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFC, + [1666943673.928401][12769:12769] CHIP:DMG: } + [1666943673.928404][12769:12769] CHIP:DMG: + [1666943673.928407][12769:12769] CHIP:DMG: Data = 0, + [1666943673.928410][12769:12769] CHIP:DMG: }, + [1666943673.928413][12769:12769] CHIP:DMG: + [1666943673.928416][12769:12769] CHIP:DMG: }, + [1666943673.928419][12769:12769] CHIP:DMG: + [1666943673.928422][12769:12769] CHIP:DMG: ], + [1666943673.928425][12769:12769] CHIP:DMG: + [1666943673.928428][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943673.928430][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + [1666943673.928432][12769:12769] CHIP:DMG: } + + + ./chip-tool onoff read on-off 1 1 + + Verify the " on-off response" on the TH (all-cluster-minimal-app) log: + + [1666943688.655282][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943688.655285][12769:12769] CHIP:DMG: { + [1666943688.655286][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943688.655290][12769:12769] CHIP:DMG: [ + [1666943688.655291][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943688.655294][12769:12769] CHIP:DMG: { + [1666943688.655296][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943688.655299][12769:12769] CHIP:DMG: { + [1666943688.655301][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, + [1666943688.655303][12769:12769] CHIP:DMG: AttributePathIB = + [1666943688.655305][12769:12769] CHIP:DMG: { + [1666943688.655307][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943688.655309][12769:12769] CHIP:DMG: Cluster = 0x6, + [1666943688.655312][12769:12769] CHIP:DMG: Attribute = 0x0000_0000, + [1666943688.655314][12769:12769] CHIP:DMG: } + [1666943688.655316][12769:12769] CHIP:DMG: + [1666943688.655319][12769:12769] CHIP:DMG: Data = false, + [1666943688.655321][12769:12769] CHIP:DMG: }, + [1666943688.655323][12769:12769] CHIP:DMG: + [1666943688.655325][12769:12769] CHIP:DMG: }, + [1666943688.655328][12769:12769] CHIP:DMG: + [1666943688.655330][12769:12769] CHIP:DMG: ], + [1666943688.655333][12769:12769] CHIP:DMG: + [1666943688.655335][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943688.655336][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + [1666943688.655338][12769:12769] CHIP:DMG: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT reads all supported optional attributes from TH one at a time in + a manufacturer specific order" + verification: | + ./chip-tool onoff read global-scene-control 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff read on-time 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff read off-wait-time 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff read start-up-on-off 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT writes a suitable value to all supported optional attributes on + the TH one at a time in a manufacturer specific order" + verification: | + ./chip-tool onoff write on-time 1 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff write off-wait-time 22 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff write start-up-on-off 2 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml deleted file mode 100644 index 4f85846df55f14..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml +++ /dev/null @@ -1,295 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 4.3.2. [TC-OO-3.2] Functionality with client as DUT - -PICS: - - OO.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "DUT issues an Off command to the Test Harness." - PICS: OO.C.C00.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff off 1 1 - - - Verify TH recieves " Off command" on the TH (all-cluster-app) log: - - [1650537121.464763][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537121.464818][3678:3678] CHIP:DMG: { - [1650537121.464866][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537121.464922][3678:3678] CHIP:DMG: timedRequest = false, - [1650537121.464974][3678:3678] CHIP:DMG: InvokeRequests = - [1650537121.465078][3678:3678] CHIP:DMG: [ - [1650537121.465132][3678:3678] CHIP:DMG: CommandDataIB = - [1650537121.465195][3678:3678] CHIP:DMG: { - [1650537121.465250][3678:3678] CHIP:DMG: CommandPathIB = - [1650537121.465309][3678:3678] CHIP:DMG: { - [1650537121.465370][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537121.465440][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537121.465501][3678:3678] CHIP:DMG: CommandId = 0x0, - [1650537121.465569][3678:3678] CHIP:DMG: }, - [1650537121.465633][3678:3678] CHIP:DMG: - [1650537121.465687][3678:3678] CHIP:DMG: CommandData = - [1650537121.465744][3678:3678] CHIP:DMG: { - [1650537121.465807][3678:3678] CHIP:DMG: }, - [1650537121.465868][3678:3678] CHIP:DMG: }, - [1650537121.465932][3678:3678] CHIP:DMG: - [1650537121.465982][3678:3678] CHIP:DMG: ], - [1650537121.466043][3678:3678] CHIP:DMG: - [1650537121.466092][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537121.466141][3678:3678] CHIP:DMG: }, - [1650537121.466254][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537121.466322][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537121.466377][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0000 - [1650537121.466434][3678:3678] CHIP:ZCL: On/Off set value: 1 0 - [1650537121.466486][3678:3678] CHIP:ZCL: On/off already set to new value - disabled: true - - - label: "DUT issues an On command to the Test Harness." - PICS: OO.C.C01.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff on 1 1 - - - Verify TH recieves " On command " on the TH (all-cluster-app) log: - - [1650537309.217556][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537309.217647][3678:3678] CHIP:DMG: { - [1650537309.217706][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537309.217773][3678:3678] CHIP:DMG: timedRequest = false, - [1650537309.217834][3678:3678] CHIP:DMG: InvokeRequests = - [1650537309.217931][3678:3678] CHIP:DMG: [ - [1650537309.217993][3678:3678] CHIP:DMG: CommandDataIB = - [1650537309.218088][3678:3678] CHIP:DMG: { - [1650537309.218168][3678:3678] CHIP:DMG: CommandPathIB = - [1650537309.218267][3678:3678] CHIP:DMG: { - [1650537309.218374][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537309.218458][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537309.218566][3678:3678] CHIP:DMG: CommandId = 0x1, - [1650537309.218666][3678:3678] CHIP:DMG: }, - [1650537309.218747][3678:3678] CHIP:DMG: - [1650537309.218839][3678:3678] CHIP:DMG: CommandData = - [1650537309.218928][3678:3678] CHIP:DMG: { - [1650537309.219001][3678:3678] CHIP:DMG: }, - [1650537309.219080][3678:3678] CHIP:DMG: }, - [1650537309.219180][3678:3678] CHIP:DMG: - [1650537309.219240][3678:3678] CHIP:DMG: ], - [1650537309.219334][3678:3678] CHIP:DMG: - [1650537309.219394][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537309.219474][3678:3678] CHIP:DMG: }, - [1650537309.219624][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537309.219724][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537309.219791][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 - [1650537309.219887][3678:3678] CHIP:ZCL: On/Off set value: 1 1 - [1650537309.219951][3678:3678] CHIP:ZCL: Toggle on/off from 0 to 1 - disabled: true - - - label: "DUT issues an Toggle command to the Test Harness." - PICS: OO.C.C02.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff toggle 1 1 - - - Verify TH recieves" Toggle command response" on the TH (all-cluster-app) log: - - [1650537502.260837][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537502.260877][3678:3678] CHIP:DMG: { - [1650537502.260911][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537502.260952][3678:3678] CHIP:DMG: timedRequest = false, - [1650537502.260988][3678:3678] CHIP:DMG: InvokeRequests = - [1650537502.261053][3678:3678] CHIP:DMG: [ - [1650537502.261092][3678:3678] CHIP:DMG: CommandDataIB = - [1650537502.261145][3678:3678] CHIP:DMG: { - [1650537502.261184][3678:3678] CHIP:DMG: CommandPathIB = - [1650537502.261235][3678:3678] CHIP:DMG: { - [1650537502.261287][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537502.261341][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537502.261390][3678:3678] CHIP:DMG: CommandId = 0x2, - [1650537502.261440][3678:3678] CHIP:DMG: }, - [1650537502.261493][3678:3678] CHIP:DMG: - [1650537502.261535][3678:3678] CHIP:DMG: CommandData = - [1650537502.261585][3678:3678] CHIP:DMG: { - [1650537502.261632][3678:3678] CHIP:DMG: }, - [1650537502.261674][3678:3678] CHIP:DMG: }, - [1650537502.261721][3678:3678] CHIP:DMG: - [1650537502.261756][3678:3678] CHIP:DMG: ], - [1650537502.261800][3678:3678] CHIP:DMG: - [1650537502.261835][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537502.261870][3678:3678] CHIP:DMG: }, - [1650537502.261955][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537502.262005][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537502.262044][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0002 - [1650537502.262086][3678:3678] CHIP:ZCL: On/Off set value: 1 2 - [1650537502.262124][3678:3678] CHIP:ZCL: Toggle on/off from 1 to 0 - [1650537502.262157][3678:3678] CHIP:ZCL: Off Command - OnTime : 0 - disabled: true - - - label: "DUT issues an OffWithEffect command to the Test Harness." - PICS: OO.C.C40.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff off-with-effect 1 0 1 1 - - - Verify TH recieves " OffWithEffect command response" on the TH (all-cluster-app) log: - - [1650538107.639049][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650538107.639115][3678:3678] CHIP:DMG: { - [1650538107.639154][3678:3678] CHIP:DMG: suppressResponse = false, - [1650538107.639198][3678:3678] CHIP:DMG: timedRequest = false, - [1650538107.639257][3678:3678] CHIP:DMG: InvokeRequests = - [1650538107.639310][3678:3678] CHIP:DMG: [ - [1650538107.639364][3678:3678] CHIP:DMG: CommandDataIB = - [1650538107.639415][3678:3678] CHIP:DMG: { - [1650538107.639471][3678:3678] CHIP:DMG: CommandPathIB = - [1650538107.639529][3678:3678] CHIP:DMG: { - [1650538107.639602][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650538107.639675][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650538107.639734][3678:3678] CHIP:DMG: CommandId = 0x40, - [1650538107.639799][3678:3678] CHIP:DMG: }, - [1650538107.639867][3678:3678] CHIP:DMG: - [1650538107.639914][3678:3678] CHIP:DMG: CommandData = - [1650538107.639984][3678:3678] CHIP:DMG: { - [1650538107.640054][3678:3678] CHIP:DMG: 0x0 = 1, - [1650538107.640113][3678:3678] CHIP:DMG: 0x1 = 0, - [1650538107.640186][3678:3678] CHIP:DMG: }, - [1650538107.640247][3678:3678] CHIP:DMG: }, - [1650538107.640301][3678:3678] CHIP:DMG: - [1650538107.640355][3678:3678] CHIP:DMG: ], - [1650538107.640420][3678:3678] CHIP:DMG: - [1650538107.640461][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650538107.640513][3678:3678] CHIP:DMG: }, - [1650538107.640625][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650538107.640681][3678:3678] CHIP:DMG: AccessControl: allowed - [1650538107.640738][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0040 - [1650538107.640853][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0005 update version to ab19f0ce - [1650538107.640924][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0005 update version to ab19f0cf - [1650538107.640983][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0005 update version to ab19f0d0 - [1650538107.641025][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11994 - [1650538107.641087][3678:3678] CHIP:ZCL: On/Off set value: 1 0 - [1650538107.641128][3678:3678] CHIP:ZCL: Toggle on/off from 1 to 0 - [1650538107.641164][3678:3678] CHIP:ZCL: Off Command - OnTime : 0 - [1650538107.641215][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11995 - disabled: true - - - label: - "DUT issues an OnWithRecallGlobalScene command to the Test Harness." - PICS: OO.C.C41.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff on-with-recall-global-scene 1 1 - - - Verify TH recieves " OnWithRecallGlobalScene command response" on the TH (all-cluster-app) log: - - [1650537790.690122][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537790.690188][3678:3678] CHIP:DMG: { - [1650537790.690244][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537790.690311][3678:3678] CHIP:DMG: timedRequest = false, - [1650537790.690371][3678:3678] CHIP:DMG: InvokeRequests = - [1650537790.690446][3678:3678] CHIP:DMG: [ - [1650537790.690507][3678:3678] CHIP:DMG: CommandDataIB = - [1650537790.690582][3678:3678] CHIP:DMG: { - [1650537790.690645][3678:3678] CHIP:DMG: CommandPathIB = - [1650537790.690720][3678:3678] CHIP:DMG: { - [1650537790.690805][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537790.690889][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537790.690969][3678:3678] CHIP:DMG: CommandId = 0x41, - [1650537790.691047][3678:3678] CHIP:DMG: }, - [1650537790.691127][3678:3678] CHIP:DMG: - [1650537790.691196][3678:3678] CHIP:DMG: CommandData = - [1650537790.691272][3678:3678] CHIP:DMG: { - [1650537790.691347][3678:3678] CHIP:DMG: }, - [1650537790.691419][3678:3678] CHIP:DMG: }, - [1650537790.691492][3678:3678] CHIP:DMG: - [1650537790.691539][3678:3678] CHIP:DMG: ], - [1650537790.691583][3678:3678] CHIP:DMG: - [1650537790.691618][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537790.691654][3678:3678] CHIP:DMG: }, - [1650537790.691738][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537790.691789][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537790.701316][3678:3678] CHIP:ZCL: On/Off set value: 1 1 - [1650537790.701348][3678:3678] CHIP:ZCL: Toggle on/off from 0 to 1 - [1650537790.701382][3678:3678] CHIP:ZCL: On Command - OffWaitTime : 0 - [1650537790.701414][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11991 - [1650537790.701452][3678:3678] CHIP:ZCL: On/Toggle Command - Stop Timer - [1650537790.701485][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11992 - disabled: true - - - label: "DUT issues an OnWithTimedOff command to the Test Harness." - PICS: OO.C.C42.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff on-with-timed-off 0 120 5 1 1 - - - Verify TH recieves " OnWithTimedOff command response" on the TH (all-cluster-app) log: - - [1650538315.673606][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650538315.673697][3678:3678] CHIP:DMG: { - [1650538315.673755][3678:3678] CHIP:DMG: suppressResponse = false, - [1650538315.673821][3678:3678] CHIP:DMG: timedRequest = false, - [1650538315.673882][3678:3678] CHIP:DMG: InvokeRequests = - [1650538315.673983][3678:3678] CHIP:DMG: [ - [1650538315.674047][3678:3678] CHIP:DMG: CommandDataIB = - [1650538315.674143][3678:3678] CHIP:DMG: { - [1650538315.674210][3678:3678] CHIP:DMG: CommandPathIB = - [1650538315.674309][3678:3678] CHIP:DMG: { - [1650538315.674387][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650538315.674491][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650538315.674598][3678:3678] CHIP:DMG: CommandId = 0x42, - [1650538315.674678][3678:3678] CHIP:DMG: }, - [1650538315.674781][3678:3678] CHIP:DMG: - [1650538315.674851][3678:3678] CHIP:DMG: CommandData = - [1650538315.674941][3678:3678] CHIP:DMG: { - [1650538315.674991][3678:3678] CHIP:DMG: 0x0 = 0, - [1650538315.675034][3678:3678] CHIP:DMG: 0x1 = 120, - [1650538315.675099][3678:3678] CHIP:DMG: 0x2 = 5, - [1650538315.675159][3678:3678] CHIP:DMG: }, - [1650538315.675204][3678:3678] CHIP:DMG: }, - [1650538315.675246][3678:3678] CHIP:DMG: - [1650538315.675289][3678:3678] CHIP:DMG: ], - [1650538315.675327][3678:3678] CHIP:DMG: - [1650538315.675368][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650538315.675398][3678:3678] CHIP:DMG: }, - [1650538315.675497][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650538315.675541][3678:3678] CHIP:DMG: AccessControl: allowed - [1650538315.675584][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0042 - [1650538315.675646][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11998 - [1650538315.675701][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11999 - [1650538315.675732][3678:3678] CHIP:ZCL: On/Off set value: 1 1 - [1650538315.675759][3678:3678] CHIP:ZCL: Toggle on/off from 0 to 1 - [1650538315.675800][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d1199a - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_2_Simulated.yaml new file mode 100644 index 00000000000000..97632786b34855 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OO_3_2_Simulated.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-OO-3.2] Functionality with client as DUT + +PICS: + - OO.C + +config: + nodeId: 0x12344321 + cluster: "On/Off" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT issues an Off command to the TH" + PICS: OO.C.C00.Tx + wait: "Off" + + - label: "DUT issues an On command to the TH" + PICS: OO.C.C01.Tx + wait: "On" + + - label: "DUT issues an Toggle command to the TH" + PICS: OO.C.C02.Tx + wait: "Toggle" + + - label: "DUT issues an OffWithEffect command to the TH" + PICS: OO.C.C40.Tx + wait: "OffWithEffect" + + - label: "DUT issues an OnWithRecallGlobalScene command to the TH" + PICS: OO.C.C41.Tx + wait: "OnWithRecallGlobalScene" + + - label: "DUT issues an OnWithTimedOff command to the TH" + PICS: OO.C.C42.Tx + wait: "OnWithTimedOff" diff --git a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml deleted file mode 100644 index fd39663119c70f..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml +++ /dev/null @@ -1,1012 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.3.1. [TC-PCC-3.1] Attributes with client as DUT - -PICS: - - PCC.C - - PCC.C.AM-READ - - PCC.C.AO-READ - - PCC.C.AM-WRITE - - PCC.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order." - PICS: PCC.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool pumpconfigurationandcontrol read max-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - - [1651148412.273866][2336:2336] CHIP:IM: Received Read request - [1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148412.273950][2336:2336] CHIP:DMG: { - [1651148412.273972][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148412.273999][2336:2336] CHIP:DMG: [ - [1651148412.274024][2336:2336] CHIP:DMG: AttributePathIB = - [1651148412.274063][2336:2336] CHIP:DMG: { - [1651148412.274093][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148412.274126][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148412.274156][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, - [1651148412.274186][2336:2336] CHIP:DMG: } - [1651148412.274216][2336:2336] CHIP:DMG: - [1651148412.274242][2336:2336] CHIP:DMG: ], - [1651148412.274271][2336:2336] CHIP:DMG: - [1651148412.274298][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148412.274325][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148412.274349][2336:2336] CHIP:DMG: }, - [1651148412.274424][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool pumpconfigurationandcontrol read max-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148440.471321][2336:2336] CHIP:IM: Received Read request - [1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148440.471416][2336:2336] CHIP:DMG: { - [1651148440.471438][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148440.471481][2336:2336] CHIP:DMG: [ - [1651148440.471507][2336:2336] CHIP:DMG: AttributePathIB = - [1651148440.471546][2336:2336] CHIP:DMG: { - [1651148440.471571][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148440.471609][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148440.471642][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, - [1651148440.471681][2336:2336] CHIP:DMG: } - [1651148440.471719][2336:2336] CHIP:DMG: - [1651148440.471745][2336:2336] CHIP:DMG: ], - [1651148440.471770][2336:2336] CHIP:DMG: - [1651148440.471806][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148440.471831][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148440.471867][2336:2336] CHIP:DMG: }, - [1651148440.471947][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148440.472042][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read max-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148472.518933][2336:2336] CHIP:IM: Received Read request - [1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148472.519023][2336:2336] CHIP:DMG: { - [1651148472.519071][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148472.519104][2336:2336] CHIP:DMG: [ - [1651148472.519163][2336:2336] CHIP:DMG: AttributePathIB = - [1651148472.519218][2336:2336] CHIP:DMG: { - [1651148472.519286][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148472.519328][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148472.519364][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, - [1651148472.519400][2336:2336] CHIP:DMG: } - [1651148472.519459][2336:2336] CHIP:DMG: - [1651148472.519521][2336:2336] CHIP:DMG: ], - [1651148472.519555][2336:2336] CHIP:DMG: - [1651148472.519584][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148472.519666][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148472.519695][2336:2336] CHIP:DMG: }, - [1651148472.519802][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148472.519971][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651570515.206834][9246:9246] CHIP:IM: Received Read request - [1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570515.206966][9246:9246] CHIP:DMG: { - [1651570515.207006][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570515.207053][9246:9246] CHIP:DMG: [ - [1651570515.207098][9246:9246] CHIP:DMG: AttributePathIB = - [1651570515.207154][9246:9246] CHIP:DMG: { - [1651570515.207210][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570515.207265][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570515.207322][9246:9246] CHIP:DMG: Attribute = 0x0000_0011, - [1651570515.207381][9246:9246] CHIP:DMG: } - [1651570515.207436][9246:9246] CHIP:DMG: - [1651570515.207483][9246:9246] CHIP:DMG: ], - [1651570515.207535][9246:9246] CHIP:DMG: - [1651570515.207587][9246:9246] CHIP:DMG: isFabricFiltered = true, - [1651570515.207634][9246:9246] CHIP:DMG: InteractionModelRevision = 1 - [1651570515.207677][9246:9246] CHIP:DMG: } - - ./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651570975.559213][9246:9246] CHIP:IM: Received Read request - [1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570975.559295][9246:9246] CHIP:DMG: { - [1651570975.559317][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570975.559343][9246:9246] CHIP:DMG: [ - [1651570975.559367][9246:9246] CHIP:DMG: AttributePathIB = - [1651570975.559400][9246:9246] CHIP:DMG: { - [1651570975.559428][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570975.559465][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570975.559602][9246:9246] CHIP:DMG: Attribute = 0x0000_0012, - [1651570975.559626][9246:9246] CHIP:DMG: } - [1651570975.559655][9246:9246] CHIP:DMG: - [1651570975.559681][9246:9246] CHIP:DMG: ], - [1651570975.559710][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read capacity 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571009.295069][9246:9246] CHIP:IM: Received Read request - [1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651571009.295203][9246:9246] CHIP:DMG: { - [1651571009.295244][9246:9246] CHIP:DMG: AttributePathIBs = - [1651571009.295293][9246:9246] CHIP:DMG: [ - [1651571009.295339][9246:9246] CHIP:DMG: AttributePathIB = - [1651571009.295387][9246:9246] CHIP:DMG: { - [1651571009.295438][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651571009.295493][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651571009.295548][9246:9246] CHIP:DMG: Attribute = 0x0000_0013, - [1651571009.295597][9246:9246] CHIP:DMG: } - [1651571009.295649][9246:9246] CHIP:DMG: - [1651571009.295696][9246:9246] CHIP:DMG: ], - [1651571009.295747][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571334.617100][9337:9337] CHIP:IM: Received Read request - [1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571334.617181][9337:9337] CHIP:DMG: { - [1651571334.617213][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571334.617250][9337:9337] CHIP:DMG: [ - [1651571334.617291][9337:9337] CHIP:DMG: AttributePathIB = - [1651571334.617338][9337:9337] CHIP:DMG: { - [1651571334.617368][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571334.617404][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571334.617433][9337:9337] CHIP:DMG: Attribute = 0x0000_0020, - [1651571334.617467][9337:9337] CHIP:DMG: } - [1651571334.617499][9337:9337] CHIP:DMG: - [1651571334.617537][9337:9337] CHIP:DMG: ], - [1651571334.617567][9337:9337] CHIP:DMG: - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: PCC.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148507.711384][2336:2336] CHIP:IM: Received Read request - [1651148507.711452][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148507.711478][2336:2336] CHIP:DMG: { - [1651148507.711500][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148507.711526][2336:2336] CHIP:DMG: [ - [1651148507.711560][2336:2336] CHIP:DMG: AttributePathIB = - [1651148507.711606][2336:2336] CHIP:DMG: { - [1651148507.711637][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148507.711677][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148507.711709][2336:2336] CHIP:DMG: Attribute = 0x0000_0003, - [1651148507.711747][2336:2336] CHIP:DMG: } - [1651148507.711778][2336:2336] CHIP:DMG: - [1651148507.711813][2336:2336] CHIP:DMG: ], - [1651148507.711841][2336:2336] CHIP:DMG: - [1651148507.711876][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148507.711902][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148507.711934][2336:2336] CHIP:DMG: }, - [1651148507.712016][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148507.712119][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0" - - ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148537.336390][2336:2336] CHIP:IM: Received Read request - [1651148537.336445][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148537.336471][2336:2336] CHIP:DMG: { - [1651148537.336503][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148537.336530][2336:2336] CHIP:DMG: [ - [1651148537.336554][2336:2336] CHIP:DMG: AttributePathIB = - [1651148537.336593][2336:2336] CHIP:DMG: { - [1651148537.336621][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148537.336666][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148537.336701][2336:2336] CHIP:DMG: Attribute = 0x0000_0004, - [1651148537.336741][2336:2336] CHIP:DMG: } - [1651148537.336770][2336:2336] CHIP:DMG: - [1651148537.336796][2336:2336] CHIP:DMG: ], - [1651148537.336836][2336:2336] CHIP:DMG: - [1651148537.336863][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148537.336888][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148537.336921][2336:2336] CHIP:DMG: }, - [1651148537.337002][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148537.337095][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0" - - ./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148566.361843][2336:2336] CHIP:IM: Received Read request - [1651148566.361897][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148566.361923][2336:2336] CHIP:DMG: { - [1651148566.361944][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148566.361967][2336:2336] CHIP:DMG: [ - [1651148566.361988][2336:2336] CHIP:DMG: AttributePathIB = - [1651148566.362012][2336:2336] CHIP:DMG: { - [1651148566.362038][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148566.362068][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148566.362093][2336:2336] CHIP:DMG: Attribute = 0x0000_0005, - [1651148566.362119][2336:2336] CHIP:DMG: } - [1651148566.362147][2336:2336] CHIP:DMG: - [1651148566.362173][2336:2336] CHIP:DMG: ], - [1651148566.362201][2336:2336] CHIP:DMG: - [1651148566.362226][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148566.362251][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148566.362274][2336:2336] CHIP:DMG: } - - ./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148595.417817][2336:2336] CHIP:IM: Received Read request - [1651148595.417901][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148595.417932][2336:2336] CHIP:DMG: { - [1651148595.417956][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148595.417987][2336:2336] CHIP:DMG: [ - [1651148595.418014][2336:2336] CHIP:DMG: AttributePathIB = - [1651148595.418049][2336:2336] CHIP:DMG: { - [1651148595.418119][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148595.418179][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148595.418221][2336:2336] CHIP:DMG: Attribute = 0x0000_0006, - [1651148595.418259][2336:2336] CHIP:DMG: } - [1651148595.418341][2336:2336] CHIP:DMG: - [1651148595.418374][2336:2336] CHIP:DMG: ], - [1651148595.418408][2336:2336] CHIP:DMG: - [1651148595.418438][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148595.418467][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148595.418528][2336:2336] CHIP:DMG: }, - [1651148595.418660][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148595.418781][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0" - - ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148626.823098][2336:2336] CHIP:IM: Received Read request - [1651148626.823201][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148626.823232][2336:2336] CHIP:DMG: { - [1651148626.823257][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148626.823291][2336:2336] CHIP:DMG: [ - [1651148626.823319][2336:2336] CHIP:DMG: AttributePathIB = - [1651148626.823353][2336:2336] CHIP:DMG: { - [1651148626.823388][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148626.823427][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148626.823462][2336:2336] CHIP:DMG: Attribute = 0x0000_0007, - [1651148626.823495][2336:2336] CHIP:DMG: } - [1651148626.823534][2336:2336] CHIP:DMG: - [1651148626.823561][2336:2336] CHIP:DMG: ], - [1651148626.823593][2336:2336] CHIP:DMG: - [1651148626.823623][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148626.823652][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148626.823678][2336:2336] CHIP:DMG: }," - - ./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564124.345958][8748:8748] CHIP:IM: Received Read request - [1651564124.346033][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564124.346109][8748:8748] CHIP:DMG: { - [1651564124.346147][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564124.346189][8748:8748] CHIP:DMG: [ - [1651564124.346228][8748:8748] CHIP:DMG: AttributePathIB = - [1651564124.346273][8748:8748] CHIP:DMG: { - [1651564124.346416][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564124.346467][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564124.346517][8748:8748] CHIP:DMG: Attribute = 0x0000_0008, - [1651564124.346566][8748:8748] CHIP:DMG: } - [1651564124.346612][8748:8748] CHIP:DMG: - [1651564124.346657][8748:8748] CHIP:DMG: ], - [1651564124.346703][8748:8748] CHIP:DMG: - [1651564124.346746][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564124.346787][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564124.346826][8748:8748] CHIP:DMG: }, - [1651564124.346941][8748:8748] CHIP:DMG: IM RH moving to [GeneratingReports]" - - - - ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564163.319315][8748:8748] CHIP:IM: Received Read request - [1651564163.319399][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564163.319447][8748:8748] CHIP:DMG: { - [1651564163.319488][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564163.319539][8748:8748] CHIP:DMG: [ - [1651564163.319584][8748:8748] CHIP:DMG: AttributePathIB = - [1651564163.319639][8748:8748] CHIP:DMG: { - [1651564163.319694][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564163.319758][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564163.319822][8748:8748] CHIP:DMG: Attribute = 0x0000_0009, - [1651564163.319875][8748:8748] CHIP:DMG: } - [1651564163.319925][8748:8748] CHIP:DMG: - [1651564163.319975][8748:8748] CHIP:DMG: ], - [1651564163.320027][8748:8748] CHIP:DMG: - [1651564163.320075][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564163.320122][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564163.320165][8748:8748] CHIP:DMG: }, - [1651564163.320291][8748:8748] CHIP:DMG: IM RH moving to [GeneratingReports]" - - ./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564281.857728][8748:8748] CHIP:IM: Received Read request - [1651564281.857784][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564281.857806][8748:8748] CHIP:DMG: { - [1651564281.857824][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564281.857846][8748:8748] CHIP:DMG: [ - [1651564281.857867][8748:8748] CHIP:DMG: AttributePathIB = - [1651564281.857902][8748:8748] CHIP:DMG: { - [1651564281.857931][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564281.857961][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564281.857990][8748:8748] CHIP:DMG: Attribute = 0x0000_000A, - [1651564281.858018][8748:8748] CHIP:DMG: } - [1651564281.858047][8748:8748] CHIP:DMG: - [1651564281.858099][8748:8748] CHIP:DMG: ], - [1651564281.858131][8748:8748] CHIP:DMG: - [1651564281.858157][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564281.858183][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564281.858206][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564317.488333][8748:8748] CHIP:IM: Received Read request - [1651564317.488417][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564317.488465][8748:8748] CHIP:DMG: { - [1651564317.488505][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564317.488551][8748:8748] CHIP:DMG: [ - [1651564317.488602][8748:8748] CHIP:DMG: AttributePathIB = - [1651564317.488656][8748:8748] CHIP:DMG: { - [1651564317.488707][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564317.488772][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564317.488823][8748:8748] CHIP:DMG: Attribute = 0x0000_000B, - [1651564317.488877][8748:8748] CHIP:DMG: } - [1651564317.488920][8748:8748] CHIP:DMG: - [1651564317.488952][8748:8748] CHIP:DMG: ], - [1651564317.488983][8748:8748] CHIP:DMG: - [1651564317.489011][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564317.489038][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564317.489063][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564350.267434][8748:8748] CHIP:IM: Received Read request - [1651564350.267489][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564350.267516][8748:8748] CHIP:DMG: { - [1651564350.267609][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564350.267642][8748:8748] CHIP:DMG: [ - [1651564350.267671][8748:8748] CHIP:DMG: AttributePathIB = - [1651564350.267704][8748:8748] CHIP:DMG: { - [1651564350.267733][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564350.267767][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564350.267800][8748:8748] CHIP:DMG: Attribute = 0x0000_000C, - [1651564350.267830][8748:8748] CHIP:DMG: } - [1651564350.267862][8748:8748] CHIP:DMG: - [1651564350.267890][8748:8748] CHIP:DMG: ], - [1651564350.267918][8748:8748] CHIP:DMG: - [1651564350.267945][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564350.267970][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564350.268092][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564415.272861][8748:8748] CHIP:IM: Received Read request - [1651564415.272946][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564415.272990][8748:8748] CHIP:DMG: { - [1651564415.273025][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564415.273067][8748:8748] CHIP:DMG: [ - [1651564415.273108][8748:8748] CHIP:DMG: AttributePathIB = - [1651564415.273155][8748:8748] CHIP:DMG: { - [1651564415.273200][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564415.273253][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564415.273305][8748:8748] CHIP:DMG: Attribute = 0x0000_0010, - [1651564415.273349][8748:8748] CHIP:DMG: } - [1651564415.273395][8748:8748] CHIP:DMG: - [1651564415.273437][8748:8748] CHIP:DMG: ], - [1651564415.273477][8748:8748] CHIP:DMG: - [1651564415.273520][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564415.273562][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564415.273600][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571041.252491][9246:9246] CHIP:IM: Received Read request - [1651571041.252548][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651571041.252574][9246:9246] CHIP:DMG: { - [1651571041.252608][9246:9246] CHIP:DMG: AttributePathIBs = - [1651571041.252642][9246:9246] CHIP:DMG: [ - [1651571041.252679][9246:9246] CHIP:DMG: AttributePathIB = - [1651571041.252710][9246:9246] CHIP:DMG: { - [1651571041.252751][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651571041.252793][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651571041.252826][9246:9246] CHIP:DMG: Attribute = 0x0000_0014, - [1651571041.252863][9246:9246] CHIP:DMG: } - [1651571041.252890][9246:9246] CHIP:DMG: - [1651571041.252926][9246:9246] CHIP:DMG: ], - [1651571041.252955][9246:9246] CHIP:DMG: - [1651571041.252990][9246:9246] CHIP:DMG: isFabricFiltered = true, - [1651571041.253016][9246:9246] CHIP:DMG: InteractionModelRevision = 1 - [1651571041.253049][9246:9246] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571194.810592][9337:9337] CHIP:IM: Received Read request - [1651571194.810647][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571194.810673][9337:9337] CHIP:DMG: { - [1651571194.810694][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571194.810717][9337:9337] CHIP:DMG: [ - [1651571194.810741][9337:9337] CHIP:DMG: AttributePathIB = - [1651571194.810771][9337:9337] CHIP:DMG: { - [1651571194.810800][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571194.810832][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571194.810863][9337:9337] CHIP:DMG: Attribute = 0x0000_0015, - [1651571194.810892][9337:9337] CHIP:DMG: } - [1651571194.810922][9337:9337] CHIP:DMG: - [1651571194.810947][9337:9337] CHIP:DMG: ], - [1651571194.810979][9337:9337] CHIP:DMG: - [1651571194.811005][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571194.811030][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571194.811053][9337:9337] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read power 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571264.121840][9337:9337] CHIP:IM: Received Read request - [1651571264.121896][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571264.121924][9337:9337] CHIP:DMG: { - [1651571264.121945][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571264.121971][9337:9337] CHIP:DMG: [ - [1651571264.122002][9337:9337] CHIP:DMG: AttributePathIB = - [1651571264.122034][9337:9337] CHIP:DMG: { - [1651571264.122063][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571264.122239][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571264.122271][9337:9337] CHIP:DMG: Attribute = 0x0000_0016, - [1651571264.122300][9337:9337] CHIP:DMG: } - [1651571264.122331][9337:9337] CHIP:DMG: - [1651571264.122361][9337:9337] CHIP:DMG: ], - [1651571264.122391][9337:9337] CHIP:DMG: - [1651571264.122418][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571264.122444][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571264.122468][9337:9337] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571293.017448][9337:9337] CHIP:IM: Received Read request - [1651571293.017534][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571293.017581][9337:9337] CHIP:DMG: { - [1651571293.017621][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571293.017669][9337:9337] CHIP:DMG: [ - [1651571293.017715][9337:9337] CHIP:DMG: AttributePathIB = - [1651571293.017769][9337:9337] CHIP:DMG: { - [1651571293.017825][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571293.017884][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571293.017942][9337:9337] CHIP:DMG: Attribute = 0x0000_0017, - [1651571293.017997][9337:9337] CHIP:DMG: } - [1651571293.018052][9337:9337] CHIP:DMG: - [1651571293.018148][9337:9337] CHIP:DMG: ], - [1651571293.018204][9337:9337] CHIP:DMG: - [1651571293.018256][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571293.018304][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571293.018348][9337:9337] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571369.365807][9337:9337] CHIP:IM: Received Read request - [1651571369.365907][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571369.365956][9337:9337] CHIP:DMG: { - [1651571369.365990][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571369.366053][9337:9337] CHIP:DMG: [ - [1651571369.366136][9337:9337] CHIP:DMG: AttributePathIB = - [1651571369.366198][9337:9337] CHIP:DMG: { - [1651571369.366256][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571369.366317][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571369.366395][9337:9337] CHIP:DMG: Attribute = 0x0000_0021, - [1651571369.366448][9337:9337] CHIP:DMG: } - [1651571369.366518][9337:9337] CHIP:DMG: - [1651571369.366592][9337:9337] CHIP:DMG: ], - [1651571369.366646][9337:9337] CHIP:DMG: - [1651571369.366713][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571369.366770][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571369.366827][9337:9337] CHIP:DMG: }, - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order." - PICS: PCC.C.AM-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol write operation-mode 0 1 1 - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858465.008652][2107:2107] CHIP:IM: Received Write request - [1652858465.008695][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858465.008858][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858465.008908][2107:2107] CHIP:DMG: { - [1652858465.008950][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858465.008999][2107:2107] CHIP:DMG: timedRequest = false, - [1652858465.009045][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858465.009088][2107:2107] CHIP:DMG: [ - [1652858465.009115][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858465.009150][2107:2107] CHIP:DMG: { - [1652858465.009235][2107:2107] CHIP:DMG: AttributePathIB = - [1652858465.009279][2107:2107] CHIP:DMG: { - [1652858465.009316][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858465.009359][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858465.009399][2107:2107] CHIP:DMG: Attribute = 0x0000_0020, - [1652858465.009434][2107:2107] CHIP:DMG: } - [1652858465.009475][2107:2107] CHIP:DMG: - [1652858465.009514][2107:2107] CHIP:DMG: Data = 0, - [1652858465.009552][2107:2107] CHIP:DMG: }, - [1652858465.009588][2107:2107] CHIP:DMG: - [1652858465.009615][2107:2107] CHIP:DMG: ], - [1652858465.009648][2107:2107] CHIP:DMG: - [1652858465.009677][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858465.009706][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858465.009732][2107:2107] CHIP:DMG: }, - [1652858465.009826][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858465.009867][2107:2107] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PCC.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - - ./chip-tool pumpconfigurationandcontrol write control-mode 0 1 1 - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858653.083434][2107:2107] CHIP:IM: Received Write request - [1652858653.083469][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858653.083544][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858653.083588][2107:2107] CHIP:DMG: { - [1652858653.083623][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858653.083687][2107:2107] CHIP:DMG: timedRequest = false, - [1652858653.083726][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858653.083771][2107:2107] CHIP:DMG: [ - [1652858653.083807][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858653.083848][2107:2107] CHIP:DMG: { - [1652858653.083886][2107:2107] CHIP:DMG: AttributePathIB = - [1652858653.083933][2107:2107] CHIP:DMG: { - [1652858653.083981][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858653.084027][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858653.084079][2107:2107] CHIP:DMG: Attribute = 0x0000_0021, - [1652858653.084121][2107:2107] CHIP:DMG: } - [1652858653.084169][2107:2107] CHIP:DMG: - [1652858653.084222][2107:2107] CHIP:DMG: Data = 0, - [1652858653.084268][2107:2107] CHIP:DMG: }, - [1652858653.084312][2107:2107] CHIP:DMG: - [1652858653.084348][2107:2107] CHIP:DMG: ], - [1652858653.084391][2107:2107] CHIP:DMG: - [1652858653.084428][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858653.084465][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858653.084499][2107:2107] CHIP:DMG: }, - [1652858653.084617][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858653.084669][2107:2107] CHIP:DMG: AccessControl: allowed - [1652858653.084727][2107:2107] CHIP:DMG: Endpoint 1, Cluster 0x0000_0200 update version to b7ba155c - - ./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1 - - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858777.844427][2107:2107] CHIP:IM: Received Write request - [1652858777.844450][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858777.844508][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858777.844535][2107:2107] CHIP:DMG: { - [1652858777.844558][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858777.844585][2107:2107] CHIP:DMG: timedRequest = false, - [1652858777.844611][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858777.844640][2107:2107] CHIP:DMG: [ - [1652858777.844666][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858777.844691][2107:2107] CHIP:DMG: { - [1652858777.844713][2107:2107] CHIP:DMG: AttributePathIB = - [1652858777.844740][2107:2107] CHIP:DMG: { - [1652858777.844770][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858777.844804][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858777.844847][2107:2107] CHIP:DMG: Attribute = 0x0000_0015, - [1652858777.844877][2107:2107] CHIP:DMG: } - [1652858777.844909][2107:2107] CHIP:DMG: - [1652858777.844941][2107:2107] CHIP:DMG: Data = 1, - [1652858777.844970][2107:2107] CHIP:DMG: }, - [1652858777.845000][2107:2107] CHIP:DMG: - [1652858777.845023][2107:2107] CHIP:DMG: ], - [1652858777.845052][2107:2107] CHIP:DMG: - [1652858777.845076][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858777.845101][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858777.845125][2107:2107] CHIP:DMG: }, - [1652858777.845214][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858777.845258][2107:2107] CHIP:DMG: AccessControl: allowed - [1652858777.845300][2107:2107] CHIP:DMG: Endpoint 1, Cluster 0x0000_0200 update version to b7ba155e - - ./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed 1 1 1 - - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858844.149759][2107:2107] CHIP:IM: Received Write request - [1652858844.149801][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858844.149889][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858844.149935][2107:2107] CHIP:DMG: { - [1652858844.149978][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858844.150027][2107:2107] CHIP:DMG: timedRequest = false, - [1652858844.150073][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858844.150165][2107:2107] CHIP:DMG: [ - [1652858844.150211][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858844.150264][2107:2107] CHIP:DMG: { - [1652858844.150315][2107:2107] CHIP:DMG: AttributePathIB = - [1652858844.150378][2107:2107] CHIP:DMG: { - [1652858844.150435][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858844.150503][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858844.150568][2107:2107] CHIP:DMG: Attribute = 0x0000_0017, - [1652858844.150726][2107:2107] CHIP:DMG: } - [1652858844.150798][2107:2107] CHIP:DMG: - [1652858844.150860][2107:2107] CHIP:DMG: Data = 1, - [1652858844.150922][2107:2107] CHIP:DMG: }, - [1652858844.150980][2107:2107] CHIP:DMG: - [1652858844.151028][2107:2107] CHIP:DMG: ], - [1652858844.151081][2107:2107] CHIP:DMG: - [1652858844.151127][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858844.151173][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858844.151216][2107:2107] CHIP:DMG: }, - [1652858844.151359][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858844.151421][2107:2107] CHIP:DMG: AccessControl: allowed - [1652858844.151488][2107:2107] CHIP:DMG: Endpoint 1, Cluster 0x0000_0200 update version to b7ba155f - disabled: true - - - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it - also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again." - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - - ./chip-tool pumpconfigurationandcontrol read attribute-list 1 1 - - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1660745892.540246][3657:3657] CHIP:IM: Received Read request - [1660745892.540323][3657:3657] CHIP:DMG: ReadRequestMessage = - [1660745892.540346][3657:3657] CHIP:DMG: { - [1660745892.540364][3657:3657] CHIP:DMG: AttributePathIBs = - [1660745892.540401][3657:3657] CHIP:DMG: [ - [1660745892.540422][3657:3657] CHIP:DMG: AttributePathIB = - [1660745892.540452][3657:3657] CHIP:DMG: { - [1660745892.540487][3657:3657] CHIP:DMG: Endpoint = 0x1, - [1660745892.540517][3657:3657] CHIP:DMG: Cluster = 0x200, - [1660745892.540556][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFB, - [1660745892.540582][3657:3657] CHIP:DMG: } - [1660745892.540616][3657:3657] CHIP:DMG: - [1660745892.540638][3657:3657] CHIP:DMG: ], - [1660745892.540673][3657:3657] CHIP:DMG: - [1660745892.540696][3657:3657] CHIP:DMG: isFabricFiltered = true, - [1660745892.540726][3657:3657] CHIP:DMG: InteractionModelRevision = 1 - [1660745892.540747][3657:3657] CHIP:DMG: }, - [1660745892.540821][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] - [1660745892.540929][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1660745892.540954][3657:3657] CHIP:DMG: Cluster 200, Attribute fffb is dirty - [1660745892.540982][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0) - - ./chip-tool pumpconfigurationandcontrol read feature-map 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1660745929.334567][3657:3657] CHIP:IM: Received Read request - [1660745929.334641][3657:3657] CHIP:DMG: ReadRequestMessage = - [1660745929.334677][3657:3657] CHIP:DMG: { - [1660745929.334696][3657:3657] CHIP:DMG: AttributePathIBs = - [1660745929.334728][3657:3657] CHIP:DMG: [ - [1660745929.334750][3657:3657] CHIP:DMG: AttributePathIB = - [1660745929.334778][3657:3657] CHIP:DMG: { - [1660745929.334814][3657:3657] CHIP:DMG: Endpoint = 0x1, - [1660745929.334853][3657:3657] CHIP:DMG: Cluster = 0x200, - [1660745929.334884][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFC, - [1660745929.334920][3657:3657] CHIP:DMG: } - [1660745929.334947][3657:3657] CHIP:DMG: - [1660745929.334978][3657:3657] CHIP:DMG: ], - [1660745929.335006][3657:3657] CHIP:DMG: - [1660745929.335037][3657:3657] CHIP:DMG: isFabricFiltered = true, - [1660745929.335059][3657:3657] CHIP:DMG: InteractionModelRevision = 1 - [1660745929.335079][3657:3657] CHIP:DMG: }, - [1660745929.335155][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] - [1660745929.335256][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1660745929.335291][3657:3657] CHIP:DMG: Cluster 200, Attribute fffc is dirty - [1660745929.335311][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0) - - - - ./chip-tool pumpconfigurationandcontrol read max-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148412.273866][2336:2336] CHIP:IM: Received Read request - [1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148412.273950][2336:2336] CHIP:DMG: { - [1651148412.273972][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148412.273999][2336:2336] CHIP:DMG: [ - [1651148412.274024][2336:2336] CHIP:DMG: AttributePathIB = - [1651148412.274063][2336:2336] CHIP:DMG: { - [1651148412.274093][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148412.274126][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148412.274156][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, - [1651148412.274186][2336:2336] CHIP:DMG: } - [1651148412.274216][2336:2336] CHIP:DMG: - [1651148412.274242][2336:2336] CHIP:DMG: ], - [1651148412.274271][2336:2336] CHIP:DMG: - [1651148412.274298][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148412.274325][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148412.274349][2336:2336] CHIP:DMG: }, - [1651148412.274424][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool pumpconfigurationandcontrol read max-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148440.471321][2336:2336] CHIP:IM: Received Read request - [1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148440.471416][2336:2336] CHIP:DMG: { - [1651148440.471438][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148440.471481][2336:2336] CHIP:DMG: [ - [1651148440.471507][2336:2336] CHIP:DMG: AttributePathIB = - [1651148440.471546][2336:2336] CHIP:DMG: { - [1651148440.471571][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148440.471609][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148440.471642][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, - [1651148440.471681][2336:2336] CHIP:DMG: } - [1651148440.471719][2336:2336] CHIP:DMG: - [1651148440.471745][2336:2336] CHIP:DMG: ], - [1651148440.471770][2336:2336] CHIP:DMG: - [1651148440.471806][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148440.471831][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148440.471867][2336:2336] CHIP:DMG: }, - [1651148440.471947][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148440.472042][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read max-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148472.518933][2336:2336] CHIP:IM: Received Read request - [1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148472.519023][2336:2336] CHIP:DMG: { - [1651148472.519071][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148472.519104][2336:2336] CHIP:DMG: [ - [1651148472.519163][2336:2336] CHIP:DMG: AttributePathIB = - [1651148472.519218][2336:2336] CHIP:DMG: { - [1651148472.519286][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148472.519328][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148472.519364][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, - [1651148472.519400][2336:2336] CHIP:DMG: } - [1651148472.519459][2336:2336] CHIP:DMG: - [1651148472.519521][2336:2336] CHIP:DMG: ], - [1651148472.519555][2336:2336] CHIP:DMG: - [1651148472.519584][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148472.519666][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148472.519695][2336:2336] CHIP:DMG: }, - [1651148472.519802][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148472.519971][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - - [1651570515.206834][9246:9246] CHIP:IM: Received Read request - [1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570515.206966][9246:9246] CHIP:DMG: { - [1651570515.207006][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570515.207053][9246:9246] CHIP:DMG: [ - [1651570515.207098][9246:9246] CHIP:DMG: AttributePathIB = - [1651570515.207154][9246:9246] CHIP:DMG: { - [1651570515.207210][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570515.207265][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570515.207322][9246:9246] CHIP:DMG: Attribute = 0x0000_0011, - [1651570515.207381][9246:9246] CHIP:DMG: } - [1651570515.207436][9246:9246] CHIP:DMG: - [1651570515.207483][9246:9246] CHIP:DMG: ], - [1651570515.207535][9246:9246] CHIP:DMG: - [1651570515.207587][9246:9246] CHIP:DMG: isFabricFiltered = true, - [1651570515.207634][9246:9246] CHIP:DMG: InteractionModelRevision = 1 - [1651570515.207677][9246:9246] CHIP:DMG: } - - ./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651570975.559213][9246:9246] CHIP:IM: Received Read request - [1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570975.559295][9246:9246] CHIP:DMG: { - [1651570975.559317][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570975.559343][9246:9246] CHIP:DMG: [ - [1651570975.559367][9246:9246] CHIP:DMG: AttributePathIB = - [1651570975.559400][9246:9246] CHIP:DMG: { - [1651570975.559428][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570975.559465][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570975.559602][9246:9246] CHIP:DMG: Attribute = 0x0000_0012, - [1651570975.559626][9246:9246] CHIP:DMG: } - [1651570975.559655][9246:9246] CHIP:DMG: - [1651570975.559681][9246:9246] CHIP:DMG: ], - [1651570975.559710][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read capacity 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571009.295069][9246:9246] CHIP:IM: Received Read request - [1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651571009.295203][9246:9246] CHIP:DMG: { - [1651571009.295244][9246:9246] CHIP:DMG: AttributePathIBs = - [1651571009.295293][9246:9246] CHIP:DMG: [ - [1651571009.295339][9246:9246] CHIP:DMG: AttributePathIB = - [1651571009.295387][9246:9246] CHIP:DMG: { - [1651571009.295438][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651571009.295493][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651571009.295548][9246:9246] CHIP:DMG: Attribute = 0x0000_0013, - [1651571009.295597][9246:9246] CHIP:DMG: } - [1651571009.295649][9246:9246] CHIP:DMG: - [1651571009.295696][9246:9246] CHIP:DMG: ], - [1651571009.295747][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571334.617100][9337:9337] CHIP:IM: Received Read request - [1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571334.617181][9337:9337] CHIP:DMG: { - [1651571334.617213][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571334.617250][9337:9337] CHIP:DMG: [ - [1651571334.617291][9337:9337] CHIP:DMG: AttributePathIB = - [1651571334.617338][9337:9337] CHIP:DMG: { - [1651571334.617368][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571334.617404][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571334.617433][9337:9337] CHIP:DMG: Attribute = 0x0000_0020, - [1651571334.617467][9337:9337] CHIP:DMG: } - [1651571334.617499][9337:9337] CHIP:DMG: - [1651571334.617537][9337:9337] CHIP:DMG: ], - [1651571334.617567][9337:9337] CHIP:DMG: " - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: PCC.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - - ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read speed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read power 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PCC.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol write control-mode 0 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed 1 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PCC_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_PCC_3_1_Simulated.yaml new file mode 100644 index 00000000000000..3eb8f82c0146ff --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_PCC_3_1_Simulated.yaml @@ -0,0 +1,494 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 15.1.1. [TC-PCC-3.1] Global attributes with server as DUT + +PICS: + - PCC.C + - PCC.C.AM-READ + - PCC.C.AO-READ + - PCC.C.AM-WRITE + - PCC.C.AO-WRITE + +config: + nodeId: 0x12344321 + cluster: "Pump Configuration and Control" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + #Read Mandatory attributes + - label: "Read attribute MaxPressure" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "MaxPressure" + + - label: "Read attribute MaxSpeed" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "MaxSpeed" + + - label: "Read attribute MaxFlow" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "MaxFlow" + + - label: "Read attribute EffectiveOperationMode" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "EffectiveOperationMode" + + - label: "Read attribute EffectiveControlMode" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "EffectiveControlMode" + + - label: "Read attribute Capacity" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "Capacity" + + - label: "Read attribute OperationMode" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "OperationMode" + + #Read Optional attributes + - label: "Read attribute MinConstPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstPressure" + + - label: "Read attribute MaxConstPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstPressure" + + - label: "Read attribute MinCompPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinCompPressure" + + - label: "Read attribute MaxCompPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxCompPressure" + + - label: "Read attribute MinConstSpeed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstSpeed" + + - label: "Read attribute MaxConstSpeed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstSpeed" + + - label: "Read attribute MinConstFlow" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstFlow" + + - label: "Read attribute MaxConstFlow" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstFlow" + + - label: "Read attribute MinConstTemp" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstTemp" + + - label: "Read attribute MaxConstTemp" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstTemp" + + - label: "Read attribute PumpStatus" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "PumpStatus" + + - label: "Read attribute Speed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "Speed" + + - label: "Read attribute LifetimeRunningHours" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "LifetimeRunningHours" + + - label: "Read attribute Power" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "Power" + + - label: "Read attribute LifetimeEnergyConsumed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "LifetimeEnergyConsumed" + + - label: "Read attribute ControlMode" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "ControlMode" + + #Write attributes + - label: "Write attribute LifetimeRunningHours" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "LifetimeRunningHours" + arguments: + value: + + - label: "Write attribute LifetimeEnergyConsumed" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "LifetimeEnergyConsumed" + arguments: + value: + + - label: "Write attribute OperationMode" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "OperationMode" + arguments: + value: + + - label: "Write attribute ControlMode" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "ControlMode" + arguments: + value: + + - label: + "Configure TH such that it implements mandatory and none of the + optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList.Commission DUT to TH again" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + ./chip-tool pumpconfigurationandcontrol read attribute-list 1 1 + + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1660745892.540246][3657:3657] CHIP:IM: Received Read request + [1660745892.540323][3657:3657] CHIP:DMG: ReadRequestMessage = + [1660745892.540346][3657:3657] CHIP:DMG: { + [1660745892.540364][3657:3657] CHIP:DMG: AttributePathIBs = + [1660745892.540401][3657:3657] CHIP:DMG: [ + [1660745892.540422][3657:3657] CHIP:DMG: AttributePathIB = + [1660745892.540452][3657:3657] CHIP:DMG: { + [1660745892.540487][3657:3657] CHIP:DMG: Endpoint = 0x1, + [1660745892.540517][3657:3657] CHIP:DMG: Cluster = 0x200, + [1660745892.540556][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFB, + [1660745892.540582][3657:3657] CHIP:DMG: } + [1660745892.540616][3657:3657] CHIP:DMG: + [1660745892.540638][3657:3657] CHIP:DMG: ], + [1660745892.540673][3657:3657] CHIP:DMG: + [1660745892.540696][3657:3657] CHIP:DMG: isFabricFiltered = true, + [1660745892.540726][3657:3657] CHIP:DMG: InteractionModelRevision = 1 + [1660745892.540747][3657:3657] CHIP:DMG: }, + [1660745892.540821][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] + [1660745892.540929][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1660745892.540954][3657:3657] CHIP:DMG: Cluster 200, Attribute fffb is dirty + [1660745892.540982][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0) + + ./chip-tool pumpconfigurationandcontrol read feature-map 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1660745929.334567][3657:3657] CHIP:IM: Received Read request + [1660745929.334641][3657:3657] CHIP:DMG: ReadRequestMessage = + [1660745929.334677][3657:3657] CHIP:DMG: { + [1660745929.334696][3657:3657] CHIP:DMG: AttributePathIBs = + [1660745929.334728][3657:3657] CHIP:DMG: [ + [1660745929.334750][3657:3657] CHIP:DMG: AttributePathIB = + [1660745929.334778][3657:3657] CHIP:DMG: { + [1660745929.334814][3657:3657] CHIP:DMG: Endpoint = 0x1, + [1660745929.334853][3657:3657] CHIP:DMG: Cluster = 0x200, + [1660745929.334884][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFC, + [1660745929.334920][3657:3657] CHIP:DMG: } + [1660745929.334947][3657:3657] CHIP:DMG: + [1660745929.334978][3657:3657] CHIP:DMG: ], + [1660745929.335006][3657:3657] CHIP:DMG: + [1660745929.335037][3657:3657] CHIP:DMG: isFabricFiltered = true, + [1660745929.335059][3657:3657] CHIP:DMG: InteractionModelRevision = 1 + [1660745929.335079][3657:3657] CHIP:DMG: }, + [1660745929.335155][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] + [1660745929.335256][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1660745929.335291][3657:3657] CHIP:DMG: Cluster 200, Attribute fffc is dirty + [1660745929.335311][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0) + + + + ./chip-tool pumpconfigurationandcontrol read max-pressure 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651148412.273866][2336:2336] CHIP:IM: Received Read request + [1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage = + [1651148412.273950][2336:2336] CHIP:DMG: { + [1651148412.273972][2336:2336] CHIP:DMG: AttributePathIBs = + [1651148412.273999][2336:2336] CHIP:DMG: [ + [1651148412.274024][2336:2336] CHIP:DMG: AttributePathIB = + [1651148412.274063][2336:2336] CHIP:DMG: { + [1651148412.274093][2336:2336] CHIP:DMG: Endpoint = 0x1, + [1651148412.274126][2336:2336] CHIP:DMG: Cluster = 0x200, + [1651148412.274156][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, + [1651148412.274186][2336:2336] CHIP:DMG: } + [1651148412.274216][2336:2336] CHIP:DMG: + [1651148412.274242][2336:2336] CHIP:DMG: ], + [1651148412.274271][2336:2336] CHIP:DMG: + [1651148412.274298][2336:2336] CHIP:DMG: isFabricFiltered = true, + [1651148412.274325][2336:2336] CHIP:DMG: InteractionModelRevision = 1 + [1651148412.274349][2336:2336] CHIP:DMG: }, + [1651148412.274424][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool pumpconfigurationandcontrol read max-speed 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651148440.471321][2336:2336] CHIP:IM: Received Read request + [1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage = + [1651148440.471416][2336:2336] CHIP:DMG: { + [1651148440.471438][2336:2336] CHIP:DMG: AttributePathIBs = + [1651148440.471481][2336:2336] CHIP:DMG: [ + [1651148440.471507][2336:2336] CHIP:DMG: AttributePathIB = + [1651148440.471546][2336:2336] CHIP:DMG: { + [1651148440.471571][2336:2336] CHIP:DMG: Endpoint = 0x1, + [1651148440.471609][2336:2336] CHIP:DMG: Cluster = 0x200, + [1651148440.471642][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, + [1651148440.471681][2336:2336] CHIP:DMG: } + [1651148440.471719][2336:2336] CHIP:DMG: + [1651148440.471745][2336:2336] CHIP:DMG: ], + [1651148440.471770][2336:2336] CHIP:DMG: + [1651148440.471806][2336:2336] CHIP:DMG: isFabricFiltered = true, + [1651148440.471831][2336:2336] CHIP:DMG: InteractionModelRevision = 1 + [1651148440.471867][2336:2336] CHIP:DMG: }, + [1651148440.471947][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] + [1651148440.472042][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + ./chip-tool pumpconfigurationandcontrol read max-flow 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651148472.518933][2336:2336] CHIP:IM: Received Read request + [1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage = + [1651148472.519023][2336:2336] CHIP:DMG: { + [1651148472.519071][2336:2336] CHIP:DMG: AttributePathIBs = + [1651148472.519104][2336:2336] CHIP:DMG: [ + [1651148472.519163][2336:2336] CHIP:DMG: AttributePathIB = + [1651148472.519218][2336:2336] CHIP:DMG: { + [1651148472.519286][2336:2336] CHIP:DMG: Endpoint = 0x1, + [1651148472.519328][2336:2336] CHIP:DMG: Cluster = 0x200, + [1651148472.519364][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, + [1651148472.519400][2336:2336] CHIP:DMG: } + [1651148472.519459][2336:2336] CHIP:DMG: + [1651148472.519521][2336:2336] CHIP:DMG: ], + [1651148472.519555][2336:2336] CHIP:DMG: + [1651148472.519584][2336:2336] CHIP:DMG: isFabricFiltered = true, + [1651148472.519666][2336:2336] CHIP:DMG: InteractionModelRevision = 1 + [1651148472.519695][2336:2336] CHIP:DMG: }, + [1651148472.519802][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] + [1651148472.519971][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + ./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + + [1651570515.206834][9246:9246] CHIP:IM: Received Read request + [1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage = + [1651570515.206966][9246:9246] CHIP:DMG: { + [1651570515.207006][9246:9246] CHIP:DMG: AttributePathIBs = + [1651570515.207053][9246:9246] CHIP:DMG: [ + [1651570515.207098][9246:9246] CHIP:DMG: AttributePathIB = + [1651570515.207154][9246:9246] CHIP:DMG: { + [1651570515.207210][9246:9246] CHIP:DMG: Endpoint = 0x1, + [1651570515.207265][9246:9246] CHIP:DMG: Cluster = 0x200, + [1651570515.207322][9246:9246] CHIP:DMG: Attribute = 0x0000_0011, + [1651570515.207381][9246:9246] CHIP:DMG: } + [1651570515.207436][9246:9246] CHIP:DMG: + [1651570515.207483][9246:9246] CHIP:DMG: ], + [1651570515.207535][9246:9246] CHIP:DMG: + [1651570515.207587][9246:9246] CHIP:DMG: isFabricFiltered = true, + [1651570515.207634][9246:9246] CHIP:DMG: InteractionModelRevision = 1 + [1651570515.207677][9246:9246] CHIP:DMG: } + + ./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651570975.559213][9246:9246] CHIP:IM: Received Read request + [1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage = + [1651570975.559295][9246:9246] CHIP:DMG: { + [1651570975.559317][9246:9246] CHIP:DMG: AttributePathIBs = + [1651570975.559343][9246:9246] CHIP:DMG: [ + [1651570975.559367][9246:9246] CHIP:DMG: AttributePathIB = + [1651570975.559400][9246:9246] CHIP:DMG: { + [1651570975.559428][9246:9246] CHIP:DMG: Endpoint = 0x1, + [1651570975.559465][9246:9246] CHIP:DMG: Cluster = 0x200, + [1651570975.559602][9246:9246] CHIP:DMG: Attribute = 0x0000_0012, + [1651570975.559626][9246:9246] CHIP:DMG: } + [1651570975.559655][9246:9246] CHIP:DMG: + [1651570975.559681][9246:9246] CHIP:DMG: ], + [1651570975.559710][9246:9246] CHIP:DMG: + + ./chip-tool pumpconfigurationandcontrol read capacity 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651571009.295069][9246:9246] CHIP:IM: Received Read request + [1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage = + [1651571009.295203][9246:9246] CHIP:DMG: { + [1651571009.295244][9246:9246] CHIP:DMG: AttributePathIBs = + [1651571009.295293][9246:9246] CHIP:DMG: [ + [1651571009.295339][9246:9246] CHIP:DMG: AttributePathIB = + [1651571009.295387][9246:9246] CHIP:DMG: { + [1651571009.295438][9246:9246] CHIP:DMG: Endpoint = 0x1, + [1651571009.295493][9246:9246] CHIP:DMG: Cluster = 0x200, + [1651571009.295548][9246:9246] CHIP:DMG: Attribute = 0x0000_0013, + [1651571009.295597][9246:9246] CHIP:DMG: } + [1651571009.295649][9246:9246] CHIP:DMG: + [1651571009.295696][9246:9246] CHIP:DMG: ], + [1651571009.295747][9246:9246] CHIP:DMG: + + ./chip-tool pumpconfigurationandcontrol read operation-mode 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651571334.617100][9337:9337] CHIP:IM: Received Read request + [1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage = + [1651571334.617181][9337:9337] CHIP:DMG: { + [1651571334.617213][9337:9337] CHIP:DMG: AttributePathIBs = + [1651571334.617250][9337:9337] CHIP:DMG: [ + [1651571334.617291][9337:9337] CHIP:DMG: AttributePathIB = + [1651571334.617338][9337:9337] CHIP:DMG: { + [1651571334.617368][9337:9337] CHIP:DMG: Endpoint = 0x1, + [1651571334.617404][9337:9337] CHIP:DMG: Cluster = 0x200, + [1651571334.617433][9337:9337] CHIP:DMG: Attribute = 0x0000_0020, + [1651571334.617467][9337:9337] CHIP:DMG: } + [1651571334.617499][9337:9337] CHIP:DMG: + [1651571334.617537][9337:9337] CHIP:DMG: ], + [1651571334.617567][9337:9337] CHIP:DMG: " + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT reads all supported optional attributes from TH one at a time in + a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + + ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + + ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read speed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read power 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT writes a suitable value to all supported optional attributes on + the TH one at a time in a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + + ./chip-tool pumpconfigurationandcontrol write control-mode 0 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed 1 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml index b075887c8329ff..d127bd3fbb3322 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml @@ -30,7 +30,41 @@ tests: initiatorSessionId destinationId resumptionID initiatorResumeMIC initiatorEphPubKey initiatorSEDParams" verification: | - Verify that the Responder receives the Sigma1 message from Initiator + On Initiator(chip-tool) verify that, Initiator(chip-tool) constructs and sends a TLV-encoded Sigma1 message to Responder with resumption containing + initiatorRandom + initiatorSessionId + destinationId + resumptionID + initiatorResumeMIC + initiatorEphPubKey + initiatorSEDParams + here is the log to verify on chip-tool + + 1683884120.041635][5134:5136] CHIP:DMG: Decrypted Payload (182 bytes) = + [1683884120.041641][5134:5136] CHIP:DMG: { + [1683884120.041647][5134:5136] CHIP:DMG: data = 153001202445b334fd30bc8c53955932724b371c085cbe9322cc9cd5a1f2e1094034a1462502faae300320adde97e1cb85749bebb3ed17b9ff3132eca00f7b374e482575322683ab460adc300441046c30cdef1fcbf383e11df64a3d6820ade9a6850b4eb401a99c4be5242ae5a0a0f5473b2ff098976de6bb2ae4e126138ebcc97cf44d8651ae0048ceed2681c8b9300610164874f435aa47c7505ca5ad59ba8974300710df3d4e94f1014d0e037c74eabce4accc18 + [1683884120.041655][5134:5136] CHIP:DMG: } + [1683884120.041660][5134:5136] CHIP:DMG: + [1683884120.041689][5134:5136] CHIP:DMG: Parameters = + [1683884120.041695][5134:5136] CHIP:DMG: { + [1683884120.041704][5134:5136] CHIP:DMG: InitiatorRandom (32) = 2445B334FD30BC8C53955932724B371C085CBE9322CC9CD5A1F2E1094034A146 + [1683884120.041711][5134:5136] CHIP:DMG: InitiatorSessionId = 44794 + [1683884120.041720][5134:5136] CHIP:DMG: DestinationId (32) = ADDE97E1CB85749BEBB3ED17B9FF3132ECA00F7B374E482575322683AB460ADC + [1683884120.041730][5134:5136] CHIP:DMG: InitiatorEphPubKey (65) = 046C30CDEF1FCBF383E11DF64A3D6820ADE9A6850B4EB401A99C4BE5242AE5A0A0F5473B2FF098976DE6BB2AE4E126138EBCC97CF44D8651AE0048CEED2681C8B9 + [1683884120.041766][5134:5136] CHIP:DMG: ResumptionID (16) = 164874F435AA47C7505CA5AD59BA8974 + [1683884120.041775][5134:5136] CHIP:DMG: InitiatorResumeMIC (16) = DF3D4E94F1014D0E037C74EABCE4ACCC + [1683884120.041782][5134:5136] CHIP:DMG: } + [1683884120.041787][5134:5136] CHIP:DMG: + [1683884120.041794][5134:5136] CHIP:DMG: + [1683884120.041883][5134:5136] CHIP:SC: Sent Sigma1 msg + + + On Responder(all-clusters-app), Verify that responder received the Sigma1 message from Initiator(chip-tool) + + [1683884120.042774][5117:5117] CHIP:IN: CASE Server received Sigma1 message . Starting handshake. EC 0x558aa452e2e0 + [1683884120.042783][5117:5117] CHIP:IN: CASE Server disabling CASE session setups + [1683884120.042798][5117:5117] CHIP:SC: Received Sigma1 msg + [1683884120.042819][5117:5117] CHIP:SC: Peer assigned session key ID 44794 disabled: true - label: @@ -38,10 +72,88 @@ tests: following values resumptionID responderSessionID sigma2ResumeMIC responderMRPParams" verification: | - Verify that the message is properly formatted: I Flag is set to 0 S flag and DIZ fields of message flags are set to 0 Encryption Type of security flags is set to 0 The Session Key Type field is set to 0 The Protocol ID field is set to 0x0000 and The Protocol Opcode field is set to 0x33 Verify that the resumptionID is of Octet String maximum of length 16 bytes Verify that the responderSessionID is of uint16 Verify that the sigma2ResumeMIC is of Octet String maximum of length 16 bytes Verify that the responderSEDParams is from any one of the following: SLEEPY_IDLE_INTERVAL Verify that it is of uint32 SLEEPY_ACTIVE_INTERVAL Verify that it is of uint32 + On initiator(chip-tool) verify that the Sigma2_Resume message and extracts the following values + resumptionID + responderSessionID + sigma2ResumeMIC + And + Verify that the message is properly formatted: + + I Flag is set to 1 + S flag and DIZ fields of message flags are set to 0 + Encryption Type of security flags is set to 0 + The Session Key Type field is set to 0 + The Protocol ID field is set to 0x0000 and + The Protocol Opcode field is set to 0x33 + resumptionID is of Octet String maximum of length 16 bytes + responderSessionID is of uint16 + sigma2ResumeMIC is of Octet String maximum of length 16 bytes + responderSEDParams is from any one of the following: + SLEEPY_IDLE_INTERVAL - Verify that it is of uint32 + SLEEPY_ACTIVE_INTERVAL - Verify that it is of uint32 + + here is the log to verify on chip-tool + + [1683884120.044173][5134:5136] CHIP:DMG: << from UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 | 8440488 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '2' Resume (0x33) / Session = 0 / Exchange = 29430] + [1683884120.044205][5134:5136] CHIP:DMG: Header Flags = + [1683884120.044210][5134:5136] CHIP:DMG: { + [1683884120.044219][5134:5136] CHIP:DMG: Message (0x01) = + [1683884120.044224][5134:5136] CHIP:DMG: { + [1683884120.044229][5134:5136] CHIP:DMG: DestinationNodeId = A8F9BB8984959B9C + [1683884120.044234][5134:5136] CHIP:DMG: } + [1683884120.044244][5134:5136] CHIP:DMG: Exchange (0x06) = + [1683884120.044248][5134:5136] CHIP:DMG: { + [1683884120.044253][5134:5136] CHIP:DMG: AckMsg = 265414754 + [1683884120.044258][5134:5136] CHIP:DMG: NeedsAck = true + [1683884120.044262][5134:5136] CHIP:DMG: } + [1683884120.044271][5134:5136] CHIP:DMG: } + [1683884120.044276][5134:5136] CHIP:DMG: + [1683884120.044287][5134:5136] CHIP:DMG: Encrypted Payload (70 bytes) = + [1683884120.044292][5134:5136] CHIP:DMG: { + [1683884120.044300][5134:5136] CHIP:DMG: data = 01000000a8ca80009c9b958489bbf9a80633f672000062e8d10f1530011098f83a1529d6cfa34f386cdbbbd842613002106223c9bf3f0d1fa0e4122f921711543a2503e59318 + [1683884120.044308][5134:5136] CHIP:DMG: buffer_ptr = 139986540250736 + [1683884120.044313][5134:5136] CHIP:DMG: } + [1683884120.044318][5134:5136] CHIP:DMG: + [1683884120.044327][5134:5136] CHIP:DMG: Decrypted Payload (44 bytes) = + [1683884120.044333][5134:5136] CHIP:DMG: { + [1683884120.044337][5134:5136] CHIP:DMG: data = 1530011098f83a1529d6cfa34f386cdbbbd842613002106223c9bf3f0d1fa0e4122f921711543a2503e59318 + [1683884120.044345][5134:5136] CHIP:DMG: } + [1683884120.044351][5134:5136] CHIP:DMG: + [1683884120.044371][5134:5136] CHIP:DMG: Parameters = + [1683884120.044377][5134:5136] CHIP:DMG: { + [1683884120.044385][5134:5136] CHIP:DMG: ResumptionID (16) = 98F83A1529D6CFA34F386CDBBBD84261 + [1683884120.044392][5134:5136] CHIP:DMG: Sigma2ResumeMIC (16) = 6223C9BF3F0D1FA0E4122F921711543A + [1683884120.044399][5134:5136] CHIP:DMG: ResponderSessionId = 37861 + [1683884120.044406][5134:5136] CHIP:DMG: } + [1683884120.044411][5134:5136] CHIP:DMG: + [1683884120.044419][5134:5136] CHIP:DMG: + [1683884120.044432][5134:5136] CHIP:DMG: Additional Fields = + [1683884120.044441][5134:5136] CHIP:DMG: { + [1683884120.044449][5134:5136] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 + [1683884120.044455][5134:5136] CHIP:DMG: } + [1683884120.044461][5134:5136] CHIP:DMG: disabled: true - label: "Initiator sends SigmaFinished message to Responder" verification: | + On Responder(all-clusters-app), verify that responder(all-clusters-app) received the SigmaFinished(The status report should be GeneralCode:SUCCESS, + ProtocolId:SECURE_CHANNEL, and ProtocolCode:SESSION_ESTABLISHMENT_SUCCESS). message from Initiator + [1683884120.046690][5117:5117] CHIP:DMG: Parameters = + [1683884120.046692][5117:5117] CHIP:DMG: { + [1683884120.046694][5117:5117] CHIP:DMG: GeneralStatusCode = 0 + [1683884120.046696][5117:5117] CHIP:DMG: ProtocolId = 0 + [1683884120.046698][5117:5117] CHIP:DMG: ProtocolCode = 0 + [1683884120.046701][5117:5117] CHIP:DMG: } + [1683884120.046703][5117:5117] CHIP:DMG: + [1683884120.046706][5117:5117] CHIP:DMG: + [1683884120.046711][5117:5117] CHIP:DMG: Additional Fields = + [1683884120.046713][5117:5117] CHIP:DMG: { + [1683884120.046715][5117:5117] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:38377 + [1683884120.046718][5117:5117] CHIP:DMG: } + [1683884120.046720][5117:5117] CHIP:DMG: + [1683884120.046725][5117:5117] CHIP:EM: >>> [E:29430r S:0 M:265414755 (Ack:8440488)] (U) Msg RX from 0:A8F9BB8984959B9C [0000] --- Type 0000:40 (SecureChannel:StatusReport) + [1683884120.046729][5117:5117] CHIP:EM: Found matching exchange: 29430r, Delegate: 0x558aa3e3ef18 + [1683884120.046735][5117:5117] CHIP:EM: Rxd Ack; Removing MessageCounter:8440488 from Retrans Table on exchange 29430r + [1683884120.046743][5117:5117] CHIP:SC: Success status report received. Session was established disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml index 8b3e7a82c9ac4f..bd04f242522dc4 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml @@ -315,16 +315,10 @@ tests: avahi-browse -rt _matterc._udp - + eth0 IPv6 DD200C20D25AE5F7 _matterc._udp local - + eth0 IPv4 DD200C20D25AE5F7 _matterc._udp local - = eth0 IPv6 DD200C20D25AE5F7 _matterc._udp local - hostname = [matter-te-7.local] - address = [fd00::e7] - port = [11111] - txt = ["CM=0" "D=840"] - = eth0 IPv4 DD200C20D25AE5F7 _matterc._udp local - hostname = [matter-te-7.local] - address = [192.168.3.53] - port = [11111] - txt = ["CM=0" "D=840"] + + wlp0s20f3 IPv6 FD37FE5156C56632 _matterc._udp local + = wlp0s20f3 IPv6 FD37FE5156C56632 _matterc._udp local + hostname = [8C1D96786A130000.local] + address = [fe80::e9f6:2c08:2794:357d] + port = [5540] + txt = ["PI=" "PH=36" "CM=2" "D=3840" "T=1" "DT=65535" "VP=65521+32769"] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml index 650cf3e562717e..69b942fd24fd52 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml @@ -152,11 +152,11 @@ tests: { GroupKeySetID: 0x01a3, GroupKeySecurityPolicy: 0, - EpochKey0: "0x00000000000000000000000000000001", + EpochKey0: "hex:00000000000000000000000000000001", EpochStartTime0: 111, - EpochKey1: "0x00000000000000000000000000000002", + EpochKey1: "hex:00000000000000000000000000000002", EpochStartTime1: 222, - EpochKey2: "0x00000000000000000000000000000003", + EpochKey2: "hex:00000000000000000000000000000003", EpochStartTime2: 333, } @@ -217,11 +217,11 @@ tests: { GroupKeySetID: 0x01a3, GroupKeySecurityPolicy: 0, - EpochKey0: "0xd0d1d2d3d4d5d6d7d8d9dadbdcdddedf", + EpochKey0: "hex:d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", EpochStartTime0: 2220000, - EpochKey1: "0xd1d1d2d3d4d5d6d7d8d9dadbdcdddedf", + EpochKey1: "hex:d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", EpochStartTime1: 2220001, - EpochKey2: "0xd2d1d2d3d4d5d6d7d8d9dadbdcdddedf", + EpochKey2: "hex:d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", EpochStartTime2: 2220002, } diff --git a/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml index 3c369674678d3c..bd8ba4c7e72f92 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml @@ -34,55 +34,89 @@ tests: - label: "Precondition" verification: | - Group Member is commissioned with Admin TH supports Groups Cluster and Onoff Cluster - Execute this step before executing the test steps. - - ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 1 0 - - Verify success response on the TH Log: - - [1652330385.328196][3240:3245] CHIP:DMG: StatusIB = - [1652330385.328229][3240:3245] CHIP:DMG: { - [1652330385.328264][3240:3245] CHIP:DMG: status = 0x00 (SUCCESS), - [1652330385.328298][3240:3245] CHIP:DMG: }, + Group Member is commissioned with Admin + DUT supports Groups Cluster disabled: true - label: "TH should have the ACL entry with the AuthMode as Group by DUT" verification: | - ./chip-tool accesscontrol read acl 1 0 - - - Verify the Read Request Message for the data sent in the above command on TH(Reference app)log: + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 1 0 - [1653571830.010685][3949:3949] CHIP:IM: Received Read request - [1653571830.010772][3949:3949] CHIP:DMG: ReadRequestMessage = - [1653571830.010822][3949:3949] CHIP:DMG: { - [1653571830.010863][3949:3949] CHIP:DMG: AttributePathIBs = - [1653571830.010911][3949:3949] CHIP:DMG: [ - [1653571830.010957][3949:3949] CHIP:DMG: AttributePathIB = - [1653571830.011020][3949:3949] CHIP:DMG: { - [1653571830.011072][3949:3949] CHIP:DMG: Endpoint = 0x0, - [1653571830.011132][3949:3949] CHIP:DMG: Cluster = 0x1f, - [1653571830.011191][3949:3949] CHIP:DMG: Attribute = 0x0000_0000, - [1653571830.011246][3949:3949] CHIP:DMG: } - [1653571830.011299][3949:3949] CHIP:DMG: - [1653571830.011350][3949:3949] CHIP:DMG: ], - [1653571830.011401][3949:3949] CHIP:DMG: - [1653571830.011451][3949:3949] CHIP:DMG: isFabricFiltered = true, - [1653571830.011499][3949:3949] CHIP:DMG: InteractionModelRevision = 1 - [1653571830.011543][3949:3949] CHIP:DMG: }, - [1653571830.011711][3949:3949] CHIP:DMG: IM RH moving to [GeneratingReports] - [1653571830.011855][3949:3949] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1653571830.011907][3949:3949] CHIP:DMG: Cluster 1f, Attribute 0 is dirty - [1653571830.011947][3949:3949] CHIP:DMG: Reading attribute: Cluster=0x0000_001F Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - [1653571830.011995][3949:3949] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001F e=0 p=a - [1653571830.012053][3949:3949] CHIP:DMG: AccessControl: allowed + Verify the Write Request Message for the data sent in the above command on TH(Reference app)log: + + [1683887175.961550][8333:8333] CHIP:DMG: WriteRequestMessage = + [1683887175.961564][8333:8333] CHIP:DMG: { + [1683887175.961574][8333:8333] CHIP:DMG: suppressResponse = false, + [1683887175.961586][8333:8333] CHIP:DMG: timedRequest = false, + [1683887175.961593][8333:8333] CHIP:DMG: AttributeDataIBs = + [1683887175.961610][8333:8333] CHIP:DMG: [ + [1683887175.961619][8333:8333] CHIP:DMG: AttributeDataIB = + [1683887175.961631][8333:8333] CHIP:DMG: { + [1683887175.961641][8333:8333] CHIP:DMG: AttributePathIB = + [1683887175.961653][8333:8333] CHIP:DMG: { + [1683887175.961665][8333:8333] CHIP:DMG: Endpoint = 0x0, + [1683887175.961679][8333:8333] CHIP:DMG: Cluster = 0x1f, + [1683887175.961691][8333:8333] CHIP:DMG: Attribute = 0x0000_0000, + [1683887175.961702][8333:8333] CHIP:DMG: } + [1683887175.961716][8333:8333] CHIP:DMG: + [1683887175.961727][8333:8333] CHIP:DMG: Data = [ + [1683887175.961738][8333:8333] CHIP:DMG: + [1683887175.961750][8333:8333] CHIP:DMG: ], + [1683887175.961760][8333:8333] CHIP:DMG: }, + [1683887175.961786][8333:8333] CHIP:DMG: + [1683887175.961795][8333:8333] CHIP:DMG: AttributeDataIB = + [1683887175.961806][8333:8333] CHIP:DMG: { + [1683887175.961815][8333:8333] CHIP:DMG: AttributePathIB = + [1683887175.961826][8333:8333] CHIP:DMG: { + [1683887175.961837][8333:8333] CHIP:DMG: Endpoint = 0x0, + [1683887175.961849][8333:8333] CHIP:DMG: Cluster = 0x1f, + [1683887175.961860][8333:8333] CHIP:DMG: Attribute = 0x0000_0000, + [1683887175.961872][8333:8333] CHIP:DMG: ListIndex = Null, + [1683887175.961882][8333:8333] CHIP:DMG: } + [1683887175.961897][8333:8333] CHIP:DMG: + [1683887175.961906][8333:8333] CHIP:DMG: Data = + [1683887175.961917][8333:8333] CHIP:DMG: { + [1683887175.961931][8333:8333] CHIP:DMG: 0x1 = 5, + [1683887175.961943][8333:8333] CHIP:DMG: 0x2 = 2, + [1683887175.961954][8333:8333] CHIP:DMG: 0x3 = [ + [1683887175.961968][8333:8333] CHIP:DMG: 112233, + [1683887175.961981][8333:8333] CHIP:DMG: ], + [1683887175.961994][8333:8333] CHIP:DMG: 0x4 = NULL + [1683887175.962005][8333:8333] CHIP:DMG: }, + [1683887175.962014][8333:8333] CHIP:DMG: }, + [1683887175.962044][8333:8333] CHIP:DMG: + [1683887175.962053][8333:8333] CHIP:DMG: AttributeDataIB = + [1683887175.962063][8333:8333] CHIP:DMG: { + [1683887175.962072][8333:8333] CHIP:DMG: AttributePathIB = + [1683887175.962083][8333:8333] CHIP:DMG: { + [1683887175.962094][8333:8333] CHIP:DMG: Endpoint = 0x0, + [1683887175.962106][8333:8333] CHIP:DMG: Cluster = 0x1f, + [1683887175.962118][8333:8333] CHIP:DMG: Attribute = 0x0000_0000, + [1683887175.962129][8333:8333] CHIP:DMG: ListIndex = Null, + [1683887175.962139][8333:8333] CHIP:DMG: } + [1683887175.962152][8333:8333] CHIP:DMG: + [1683887175.962162][8333:8333] CHIP:DMG: Data = + [1683887175.962173][8333:8333] CHIP:DMG: { + [1683887175.962184][8333:8333] CHIP:DMG: 0x1 = 4, + [1683887175.962196][8333:8333] CHIP:DMG: 0x2 = 3, + [1683887175.962207][8333:8333] CHIP:DMG: 0x3 = [ + [1683887175.962220][8333:8333] CHIP:DMG: 1, + [1683887175.962232][8333:8333] CHIP:DMG: ], + [1683887175.962243][8333:8333] CHIP:DMG: 0x4 = NULL + [1683887175.962255][8333:8333] CHIP:DMG: }, + [1683887175.962264][8333:8333] CHIP:DMG: }, + [1683887175.962282][8333:8333] CHIP:DMG: + [1683887175.962291][8333:8333] CHIP:DMG: ], + [1683887175.962323][8333:8333] CHIP:DMG: + [1683887175.962333][8333:8333] CHIP:DMG: moreChunkedMessages = false, + [1683887175.962343][8333:8333] CHIP:DMG: InteractionModelRevision = 1 + [1683887175.962352][8333:8333] CHIP:DMG: }, disabled: true - label: "DUT generates fabric-unique GroupID, GroupName, random key, EpochKey0 - and GroupKeySetID. Admin sets GroupKeySecurityPolicy = TrustFirst (1) - GroupKeyMulticastPolicy = PerGroupID (0) EpochStartTime0 = 0" + and GroupKeySetID. Admin sets GroupKeySecurityPolicy = TrustFirst (0) + EpochStartTime0 = 0" verification: | ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": @@ -211,7 +245,6 @@ tests: Verify TH recieves AddGroup command on TH(Reference app)log: - [1651471107.658967][4012:4012] CHIP:EM: Received message of type 0x8 with protocolId (0, 1) and MessageCounter:1630629 on exchange 50068r [1651471107.659020][4012:4012] CHIP:EM: Handling via exchange: 50068r, Delegate: 0xaaaaca97a088 [1651471107.659108][4012:4012] CHIP:DMG: InvokeRequestMessage = @@ -251,7 +284,6 @@ tests: verification: | ./chip-tool groups view-group 0x0001 1 0 - Verify TH recieves ViewGroup command on TH(Reference app)log: [1651471144.500809][4012:4012] CHIP:EM: Received message of type 0x8 with protocolId (0, 1) and MessageCounter:14671135 on exchange 13105r @@ -290,10 +322,8 @@ tests: verification: | ./chip-tool groupkeymanagement key-set-read 42 1 0 - Verify TH recieves KeySetRead command on TH(Reference app)log: - [1651471175.521361][4012:4012] CHIP:EM: Received message of type 0x8 with protocolId (0, 1) and MessageCounter:1040181 on exchange 26813r [1651471175.521414][4012:4012] CHIP:EM: Handling via exchange: 26813r, Delegate: 0xaaaaca97a088 [1651471175.521500][4012:4012] CHIP:DMG: InvokeRequestMessage = @@ -332,7 +362,6 @@ tests: verification: | ./chip-tool groupkeymanagement read group-key-map 1 0 - Verify TH recieves GroupKeyMap command on TH(Reference app)log: [1651471203.692194][4012:4012] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:11804966 on exchange 25369r @@ -368,7 +397,6 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify TH recieves GroupTable command on TH(Reference app)log: [1651471240.121662][4012:4012] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:3204235 on exchange 21658r diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml index 5fdaab51527caa..5230980dfc9773 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml @@ -44,7 +44,7 @@ tests: [1645743053317] [97806:20280749] CHIP: [ZCL] OTA Provider received QueryImage [1645743053317] [97806:20280749] CHIP: [ZCL] VendorID: 0xfff1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProductID: 32769 - [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 0 + [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 2 [1645743053317] [97806:20280749] CHIP: [ZCL] ProtocolsSupported: [ [1645743053317] [97806:20280749] CHIP: [ZCL] 0 [1645743053317] [97806:20280749] CHIP: [ZCL] ] @@ -79,7 +79,7 @@ tests: [1645743053317] [97806:20280749] CHIP: [ZCL] OTA Provider received QueryImage [1645743053317] [97806:20280749] CHIP: [ZCL] VendorID: 0xfff1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProductID: 32769 - [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 0 + [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 2 [1645743053317] [97806:20280749] CHIP: [ZCL] ProtocolsSupported: [ [1645743053317] [97806:20280749] CHIP: [ZCL] 0 [1645743053317] [97806:20280749] CHIP: [ZCL] ] diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml index c3a09d26ccd417..a167392dc46690 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml @@ -153,11 +153,7 @@ tests: "Force an error during the download of the OTA image to the DUT. Wait for the Idle timeout which should be no less than 5 minutes." verification: | - ./chip-tool interactive start - - Subscribe to StateTransition and DownloadError events using command - - otasoftwareupdaterequestor subscribe-event-by-id 0,2 30 60 0x1234567890 0 + ../chip-tool interactive start Trigger OTA query using command @@ -165,8 +161,11 @@ tests: where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Force an error during the download of the OTA image to the DUT. Wait for the Idle timeout which should be no less than 5 minutes. + + otasoftwareupdaterequestor subscribe-event download-error 5 10 0x1234567890 0 --timeout 65535 + Verify that the chip-tool receives a DownloadError event notification on BDX Idle timeout which should be no less than 5 minutes. - Verify that the chip-tool receives a StateTransition event notification for the state change to Idle. [1651520178426] [98732:38086919] CHIP: [TOO] DownloadError: { [1651520178426] [98732:38086919] CHIP: [TOO] SoftwareVersion: 2 @@ -175,6 +174,10 @@ tests: [1651520178426] [98732:38086919] CHIP: [TOO] PlatformCode: null [1651520178426] [98732:38086919] CHIP: [TOO] } + otasoftwareupdaterequestor subscribe-event-by-id 0 30 60 0x1234567890 0 + + Verify that the chip-tool receives a StateTransition event notification for the state change to Idle. + [1654558704063] [57765:69159905] CHIP: [TOO] StateTransition: { [1654558704064] [57765:69159905] CHIP: [TOO] PreviousState: 4 [1654558704064] [57765:69159905] CHIP: [TOO] NewState: 1 diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml index 01347878eaf370..0d0f9abf4ad9f7 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml @@ -128,25 +128,12 @@ tests: switch to next position - Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - Raspi device doesn't support more than 2 position ,so this step is not verifiable by using raspi device - echo '{"Name":"SwitchLatched","NewPosition":2}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - - - - - Verify SwitchLatched event with NewPosition set to 2 on DUT(all-cluster-app) log: - - [1659600438.058928][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":2}" - [1659600438.059436][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409d - [1659600438.059519][7312:7312] CHIP:-: The latching switch is moved to a new position:2 - [1659600438.059644][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch - [1659600438.059857][7312:7312] CHIP:EVL: LogEvent event number: 0x0000000000020006 priority: 1, endpoint id: 0x1 cluster id: 0x0000_003B event id: 0x0 Sys timestamp: 0x0000000000F10746 - - In the current SDK development, Max number of positions are configured as 2, hence the current test step should fail as its reached more than the numberof position. If the DUT supports more number of positions, then for the above command, it should increase to the next level. Below is the sample command to execute , if the DUT supports more than 2 NumberOfPositions. + In the current SDK development, Max number of positions is configured as 2, hence the current test step should fail as NewPosition reached more than the Max NumberOfPositions. + If the DUT supports more number of positions, then for the command in previous step, position should increase to the next level. Below is the sample command to execute, if the DUT supports NumberOfPositions > 2 . ./chip-tool switch read current-position 1 1 - Verify current position value inTH(chip-tool) Log: + Verify CurrentPosition value in TH(chip-tool) Log: [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069 [1659600502.023631][4306:4311] CHIP:TOO: current position: 2 @@ -158,9 +145,6 @@ tests: Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - Raspi device doesn't support more than 2 position ,so this step is not verifiable by using raspi device - - In Raspi platform to change the switch to third position use the below sample command, its required to use equivalent command on the respective DUT. Open one more terminal on DUT side to execute the echo command . echo '{"Name":"SwitchLatched","NewPosition":3}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) diff --git a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TMP_3_1_Simulated.yaml similarity index 66% rename from src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_TMP_3_1_Simulated.yaml index 4b1016302f882e..fcef638b9e000a 100644 --- a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TMP_3_1_Simulated.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.3.1. [TC-TMP-3.1] Attributes with client as DUT +name: 6.3.1. [TC-TMP-3.1] Attributes with client as DUT PICS: - TMP.C @@ -24,336 +24,40 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Temperature Measurement" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: TMP.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool temperaturemeasurement read measured-value 1 1 - - Verify DUT receives measured-value attribute response on the TH(all-clusters-app) Log: - - [1666954221.588215][6038:6038] CHIP:EM: Handling via exchange: 61353r, Delegate: 0xaaaab1cb0288 - [1666954221.588336][6038:6038] CHIP:IM: Received Read request - [1666954221.588533][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954221.588600][6038:6038] CHIP:DMG: { - [1666954221.588676][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954221.588745][6038:6038] CHIP:DMG: [ - [1666954221.588807][6038:6038] CHIP:DMG: AttributePathIB = - [1666954221.588882][6038:6038] CHIP:DMG: { - [1666954221.588981][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954221.589072][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954221.589182][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666954221.589262][6038:6038] CHIP:DMG: } - [1666954221.589339][6038:6038] CHIP:DMG: - [1666954221.589435][6038:6038] CHIP:DMG: ], - [1666954221.589507][6038:6038] CHIP:DMG: - [1666954221.589601][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954221.589667][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954221.589740][6038:6038] CHIP:DMG: }, - [1666954221.589918][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954221.590155][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954221.590285][6038:6038] CHIP:DMG: Cluster 402, Attribute 0 is dirty - [1666954221.590353][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1666954221.590427][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954221.590505][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954221.590657][6038:6038] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666954221.591348][6038:6038] CHIP:EM: <<< [E:61353r M:156426147 (Ack:236640405)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954221.591460][6038:6038] CHIP:IN: (S) Sending msg 156426147 on secure session with LSID: 10249 - [1666954221.592165][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:51491 | 156426147 | [Interaction Model (1) / Report Data (0x05) / Session = 44743 / Exchange = 61353] - [1666954221.592264][6038:6038] CHIP:DMG: Header Flags = - [1666954221.592323][6038:6038] CHIP:DMG: { - [1666954221.592410][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954221.592468][6038:6038] CHIP:DMG: { - [1666954221.592527][6038:6038] CHIP:DMG: AckMsg = 236640405 - [1666954221.592608][6038:6038] CHIP:DMG: NeedsAck = true - [1666954221.592663][6038:6038] CHIP:DMG: } - [1666954221.592735][6038:6038] CHIP:DMG: } - [1666954221.592812][6038:6038] CHIP:DMG: - [1666954221.592882][6038:6038] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666954221.592939][6038:6038] CHIP:DMG: { - [1666954221.593017][6038:6038] CHIP:DMG: data = 00c7ae00a3df5209eb10c8543f9f63cc4380c9de03442267ea8a2ea787d7df96e9242ac9f9578869efafd4d96ac6ea9912c5840697d305cdae772279ac2986cff9d7ef6def54 - [1666954221.593074][6038:6038] CHIP:DMG: buffer_ptr = 187650273994768 - [1666954221.593149][6038:6038] CHIP:DMG: } - [1666954221.593203][6038:6038] CHIP:DMG: - [1666954221.593395][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954221.593463][6038:6038] CHIP:DMG: { - [1666954221.593559][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954221.593638][6038:6038] CHIP:DMG: [ - [1666954221.593701][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954221.593791][6038:6038] CHIP:DMG: { - [1666954221.593887][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954221.593969][6038:6038] CHIP:DMG: { - [1666954221.594077][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954221.594159][6038:6038] CHIP:DMG: AttributePathIB = - [1666954221.594267][6038:6038] CHIP:DMG: { - [1666954221.594364][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954221.594485][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954221.594605][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666954221.594700][6038:6038] CHIP:DMG: } - [1666954221.594936][6038:6038] CHIP:DMG: - [1666954221.595033][6038:6038] CHIP:DMG: Data = NULL - [1666954221.595141][6038:6038] CHIP:DMG: }, - [1666954221.595230][6038:6038] CHIP:DMG: - [1666954221.595330][6038:6038] CHIP:DMG: }, - [1666954221.595413][6038:6038] CHIP:DMG: - - - - ./chip-tool temperaturemeasurement read max-measured-value 1 1 - - Verify DUT receives max-measured-value attribute response on the TH(all-clusters-app) Log: - - [1666954278.448366][6038:6038] CHIP:EM: Handling via exchange: 21178r, Delegate: 0xaaaab1cb0288 - [1666954278.448461][6038:6038] CHIP:IM: Received Read request - [1666954278.448656][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954278.448748][6038:6038] CHIP:DMG: { - [1666954278.448805][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954278.448871][6038:6038] CHIP:DMG: [ - [1666954278.448954][6038:6038] CHIP:DMG: AttributePathIB = - [1666954278.449042][6038:6038] CHIP:DMG: { - [1666954278.449141][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954278.449231][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954278.449332][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666954278.449414][6038:6038] CHIP:DMG: } - [1666954278.449514][6038:6038] CHIP:DMG: - [1666954278.449585][6038:6038] CHIP:DMG: ], - [1666954278.449678][6038:6038] CHIP:DMG: - [1666954278.449748][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954278.449814][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954278.449896][6038:6038] CHIP:DMG: }, - [1666954278.450091][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954278.450331][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954278.450404][6038:6038] CHIP:DMG: Cluster 402, Attribute 2 is dirty - [1666954278.450484][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0002 (expanded=0) - [1666954278.450555][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954278.450632][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954278.450801][6038:6038] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666954278.451408][6038:6038] CHIP:EM: <<< [E:21178r M:267608691 (Ack:111962127)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954278.451507][6038:6038] CHIP:IN: (S) Sending msg 267608691 on secure session with LSID: 10250 - [1666954278.452188][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:35964 | 267608691 | [Interaction Model (1) / Report Data (0x05) / Session = 3253 / Exchange = 21178] - [1666954278.452283][6038:6038] CHIP:DMG: Header Flags = - [1666954278.452341][6038:6038] CHIP:DMG: { - [1666954278.452428][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954278.452484][6038:6038] CHIP:DMG: { - [1666954278.452544][6038:6038] CHIP:DMG: AckMsg = 111962127 - [1666954278.452599][6038:6038] CHIP:DMG: NeedsAck = true - [1666954278.452653][6038:6038] CHIP:DMG: } - [1666954278.452724][6038:6038] CHIP:DMG: } - [1666954278.452779][6038:6038] CHIP:DMG: - [1666954278.452875][6038:6038] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666954278.452933][6038:6038] CHIP:DMG: { - [1666954278.452989][6038:6038] CHIP:DMG: data = 00b50c007362f30f8c319b86108c203de6b15bb5aee7f4449c8da8249d202801c603da44efc405b836200d02e138ace4753dc10d023e14e2a7fbc935ea84271f8bd4e8355b9e - [1666954278.453069][6038:6038] CHIP:DMG: buffer_ptr = 187650273995120 - [1666954278.453123][6038:6038] CHIP:DMG: } - [1666954278.453176][6038:6038] CHIP:DMG: - [1666954278.453356][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954278.453446][6038:6038] CHIP:DMG: { - [1666954278.453502][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954278.453609][6038:6038] CHIP:DMG: [ - [1666954278.453674][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954278.453783][6038:6038] CHIP:DMG: { - [1666954278.453866][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954278.453977][6038:6038] CHIP:DMG: { - [1666954278.454069][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954278.454178][6038:6038] CHIP:DMG: AttributePathIB = - [1666954278.454270][6038:6038] CHIP:DMG: { - [1666954278.454389][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954278.454510][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954278.454602][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666954278.454748][6038:6038] CHIP:DMG: } - [1666954278.454850][6038:6038] CHIP:DMG: - [1666954278.454940][6038:6038] CHIP:DMG: Data = NULL - [1666954278.455046][6038:6038] CHIP:DMG: }, - [1666954278.455140][6038:6038] CHIP:DMG: - [1666954278.455243][6038:6038] CHIP:DMG: }, - [1666954278.455348][6038:6038] CHIP:DMG: - - - ./chip-tool temperaturemeasurement read min-measured-value 1 1 - - Verify DUT receives min-measured-value attribute response on the TH(all-clusters-app) Log: - - [1666954332.559234][6038:6038] CHIP:EM: Handling via exchange: 57613r, Delegate: 0xaaaab1cb0288 - [1666954332.559333][6038:6038] CHIP:IM: Received Read request - [1666954332.559503][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954332.559569][6038:6038] CHIP:DMG: { - [1666954332.559624][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954332.559690][6038:6038] CHIP:DMG: [ - [1666954332.559752][6038:6038] CHIP:DMG: AttributePathIB = - [1666954332.559826][6038:6038] CHIP:DMG: { - [1666954332.559905][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954332.559993][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954332.560075][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954332.560158][6038:6038] CHIP:DMG: } - [1666954332.560234][6038:6038] CHIP:DMG: - [1666954332.560304][6038:6038] CHIP:DMG: ], - [1666954332.560375][6038:6038] CHIP:DMG: - [1666954332.560442][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954332.560508][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954332.560567][6038:6038] CHIP:DMG: }, - [1666954332.560741][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954332.560958][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954332.561029][6038:6038] CHIP:DMG: Cluster 402, Attribute 1 is dirty - [1666954332.561085][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) - [1666954332.561152][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954332.561229][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954332.561346][6038:6038] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666954332.561877][6038:6038] CHIP:EM: <<< [E:57613r M:155267020 (Ack:205919022)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954332.561980][6038:6038] CHIP:IN: (S) Sending msg 155267020 on secure session with LSID: 10251 - [1666954332.562650][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:50559 | 155267020 | [Interaction Model (1) / Report Data (0x05) / Session = 12732 / Exchange = 57613] - [1666954332.562798][6038:6038] CHIP:DMG: Header Flags = - [1666954332.562860][6038:6038] CHIP:DMG: { - [1666954332.562948][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954332.563006][6038:6038] CHIP:DMG: { - [1666954332.563066][6038:6038] CHIP:DMG: AckMsg = 205919022 - [1666954332.563122][6038:6038] CHIP:DMG: NeedsAck = true - [1666954332.563176][6038:6038] CHIP:DMG: } - [1666954332.563247][6038:6038] CHIP:DMG: } - [1666954332.563302][6038:6038] CHIP:DMG: - [1666954332.563370][6038:6038] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666954332.563426][6038:6038] CHIP:DMG: { - [1666954332.563480][6038:6038] CHIP:DMG: data = 00bc3100cc2f41098721290d6330018166438d3eb9610a6439dca612e88539eda9070b897cdda515590dea7eb28d3bd17d1c432779a0839ee6ce2bfee2e9d56a3921cd1120d5 - [1666954332.563538][6038:6038] CHIP:DMG: buffer_ptr = 187650273996032 - [1666954332.563592][6038:6038] CHIP:DMG: } - [1666954332.563643][6038:6038] CHIP:DMG: - [1666954332.563805][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954332.563873][6038:6038] CHIP:DMG: { - [1666954332.563927][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954332.564012][6038:6038] CHIP:DMG: [ - [1666954332.564076][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954332.564164][6038:6038] CHIP:DMG: { - [1666954332.564236][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954332.564324][6038:6038] CHIP:DMG: { - [1666954332.564401][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954332.564482][6038:6038] CHIP:DMG: AttributePathIB = - [1666954332.564575][6038:6038] CHIP:DMG: { - [1666954332.564663][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954332.564754][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954332.564844][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954332.564928][6038:6038] CHIP:DMG: } - [1666954332.565025][6038:6038] CHIP:DMG: - [1666954332.565114][6038:6038] CHIP:DMG: Data = NULL - [1666954332.565202][6038:6038] CHIP:DMG: }, - [1666954332.565286][6038:6038] CHIP:DMG: - [1666954332.565365][6038:6038] CHIP:DMG: }, - [1666954332.565447][6038:6038] CHIP:DMG: - [1666954332.565509][6038:6038] CHIP:DMG: ], - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: TMP.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - ./chip-tool temperaturemeasurement read tolerance 1 1 + - label: "Read attribute: MeasuredValue" + wait: "readAttribute" + attribute: "MeasuredValue" - Verify DUT receives tolerance attribute response on the TH(all-clusters-app) Log: + - label: "Read attribute: MinMeasuredValue" + wait: "readAttribute" + attribute: "MinMeasuredValue" - [1666954393.403159][6038:6038] CHIP:EM: Handling via exchange: 106r, Delegate: 0xaaaab1cb0288 - [1666954393.403257][6038:6038] CHIP:IM: Received Read request - [1666954393.403429][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954393.403495][6038:6038] CHIP:DMG: { - [1666954393.403550][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954393.403615][6038:6038] CHIP:DMG: [ - [1666954393.403677][6038:6038] CHIP:DMG: AttributePathIB = - [1666954393.403755][6038:6038] CHIP:DMG: { - [1666954393.403827][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954393.403918][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954393.404006][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, - [1666954393.404088][6038:6038] CHIP:DMG: } - [1666954393.404161][6038:6038] CHIP:DMG: - [1666954393.404226][6038:6038] CHIP:DMG: ], - [1666954393.404297][6038:6038] CHIP:DMG: - [1666954393.404364][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954393.404429][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954393.404488][6038:6038] CHIP:DMG: }, - [1666954393.404662][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954393.404878][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954393.404950][6038:6038] CHIP:DMG: Cluster 402, Attribute 3 is dirty - [1666954393.405005][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0003 (expanded=0) - [1666954393.405074][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954393.405151][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954393.405271][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666954393.405794][6038:6038] CHIP:EM: <<< [E:106r M:174603774 (Ack:130242108)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954393.405896][6038:6038] CHIP:IN: (S) Sending msg 174603774 on secure session with LSID: 10252 - [1666954393.406557][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:54157 | 174603774 | [Interaction Model (1) / Report Data (0x05) / Session = 59256 / Exchange = 106] - [1666954393.406652][6038:6038] CHIP:DMG: Header Flags = - [1666954393.406709][6038:6038] CHIP:DMG: { - [1666954393.406827][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954393.406884][6038:6038] CHIP:DMG: { - [1666954393.406944][6038:6038] CHIP:DMG: AckMsg = 130242108 - [1666954393.406999][6038:6038] CHIP:DMG: NeedsAck = true - [1666954393.407053][6038:6038] CHIP:DMG: } - [1666954393.407124][6038:6038] CHIP:DMG: } - [1666954393.407179][6038:6038] CHIP:DMG: - [1666954393.407249][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666954393.407306][6038:6038] CHIP:DMG: { - [1666954393.407362][6038:6038] CHIP:DMG: data = 0078e700fe3d680a78c30adbb9dbcd27299e1d40bd1ec2b4c5c21fd5f5ab093ed1b0f014837492b99fedbee02d2b85b6af85f84d52bd90a1066c17454c09c635c52ca002fe8596 - [1666954393.407420][6038:6038] CHIP:DMG: buffer_ptr = 187650273997008 - [1666954393.407473][6038:6038] CHIP:DMG: } - [1666954393.407525][6038:6038] CHIP:DMG: - [1666954393.407689][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954393.407757][6038:6038] CHIP:DMG: { - [1666954393.407811][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954393.407896][6038:6038] CHIP:DMG: [ - [1666954393.407960][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954393.408047][6038:6038] CHIP:DMG: { - [1666954393.408120][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954393.408208][6038:6038] CHIP:DMG: { - [1666954393.408300][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954393.408381][6038:6038] CHIP:DMG: AttributePathIB = - [1666954393.408473][6038:6038] CHIP:DMG: { - [1666954393.408568][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954393.408666][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954393.408765][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, - [1666954393.408856][6038:6038] CHIP:DMG: } - [1666954393.408948][6038:6038] CHIP:DMG: - [1666954393.409045][6038:6038] CHIP:DMG: Data = 0, - [1666954393.409295][6038:6038] CHIP:DMG: }, - [1666954393.409395][6038:6038] CHIP:DMG: - [1666954393.409466][6038:6038] CHIP:DMG: - disabled: true + - label: "Read attribute: MaxMeasuredValue" + wait: "readAttribute" + attribute: "MaxMeasuredValue" - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: TMP.C.AM-WRITE - verification: | - There is no writable mandatory attibute for this cluster - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: TMP.C.AO-WRITE - verification: | - There is no writable Optional attibute for this cluster - disabled: true + - label: "Read attribute: Tolerance" + wait: "readAttribute" + attribute: "Tolerance" - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + AttributeList.Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) To verify all below steps use all-clusters-minimal-app - ./chip-tool temperaturemeasurement read measured-value 1 1 + ./chip-tool temperaturemeasurement read measured-value 1 1 Verify DUT receives measured-value attribute response on the TH(all-clusters-minimal-app) Log: [1666954493.877646][6087:6087] CHIP:EM: Handling via exchange: 25543r, Delegate: 0xaaaab0ad80e0 @@ -847,12 +551,19 @@ tests: [1666955301.651628][6087:6087] CHIP:DMG: }, [1666955301.651708][6087:6087] CHIP:DMG: [1666955301.651769][6087:6087] CHIP:DMG: ], - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: TMP.C.AO-READ verification: | .Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -922,12 +633,27 @@ tests: [1666955343.063081][6087:6087] CHIP:DMG: }, [1666955343.063167][6087:6087] CHIP:DMG: [1666955343.063236][6087:6087] CHIP:DMG: }, - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: TMP.C.AO-WRITE verification: | - There is no writable mandatory attibute for this cluster - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml index 3650f474548981..58da8b42f3f8af 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml @@ -76,6 +76,13 @@ tests: response: saveAs: MaxCoolSetpointLimit + - label: "Saving value for comparision in step 17 read MaxHeatSetpointLimit" + PICS: TSTAT.S.A0016 + command: "readAttribute" + attribute: "MaxHeatSetpointLimit" + response: + saveAs: MaxHeatSetpointLimit + - label: "Saving value for comparision in step 13 read attribute OccupiedCoolingSetpoint" @@ -326,7 +333,7 @@ tests: maxValue: 3000 - label: "Reads attribute from DUT: MinHeatSetpointLimit" - PICS: TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017 + PICS: TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017 && TSTAT.S.A0003 command: "readAttribute" attribute: "MinHeatSetpointLimit" response: @@ -335,10 +342,25 @@ tests: minValue: 700 maxValue: MinCoolSetpointLimit - MinSetpointDeadBand - - label: "Read attribute MinHeatSetpointLimit from the DUT" - PICS: TSTAT.S.A0015 && !TSTAT.S.F05 + - label: + "Reads MinHeatSetpointLimit attribute from Server DUT and verifies + that the value is within range" + command: "readAttribute" + attribute: "MinHeatSetpointLimit" + PICS: TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003 && !TSTAT.S.F05 + response: + constraints: + type: int16s + minValue: AbsMinHeat + maxValue: MaxHeatSetpointLimit + + #Using hard coded values when optional attributes are not available + - label: + "Reads MinHeatSetpointLimit attribute from Server DUT and verifies + that the value is within range" command: "readAttribute" attribute: "MinHeatSetpointLimit" + PICS: TSTAT.S.A0003 && !TSTAT.S.A0015 && !TSTAT.S.A0016 && !TSTAT.S.F05 response: constraints: type: int16s diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml index da09da42148124..c3df4a41e8221f 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml @@ -343,7 +343,7 @@ tests: attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 arguments: - value: 600 + value: 100 response: error: CONSTRAINT_ERROR @@ -527,7 +527,7 @@ tests: attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 arguments: - value: 1002 + value: 500 response: error: CONSTRAINT_ERROR @@ -704,7 +704,7 @@ tests: attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 arguments: - value: 500 + value: 100 response: error: CONSTRAINT_ERROR @@ -1087,7 +1087,7 @@ tests: attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 arguments: - value: 500 + value: 100 response: error: CONSTRAINT_ERROR @@ -1260,7 +1260,7 @@ tests: attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 arguments: - value: 1000 + value: 500 response: error: CONSTRAINT_ERROR @@ -1430,7 +1430,7 @@ tests: attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 arguments: - value: 1000 + value: 500 response: error: CONSTRAINT_ERROR @@ -1666,12 +1666,42 @@ tests: attribute: "ControlSequenceOfOperation" PICS: TSTAT.S.F00 || TSTAT.S.F01 response: - value: 4 constraints: type: enum8 minValue: 0 maxValue: 5 + #Uncomment once anyOf is supported + #- label: + # "Reads ControlSequenceOfOperation from Server DUT, if TSTAT.S.F01 is + # true" + # command: "readAttribute" + # attribute: "ControlSequenceOfOperation" + # PICS: TSTAT.S.F01 && !TSTAT.S.F00 + # response: + # constraints: + # anyOf: [0, 1] + + #- label: + # "Reads ControlSequenceOfOperation from Server DUT, if TSTAT.S.F00 is + # true" + # command: "readAttribute" + # attribute: "ControlSequenceOfOperation" + # PICS: TSTAT.S.F00 && !TSTAT.S.F01 + # response: + # constraints: + # anyOf: [2, 3] + + #- label: + # "Reads ControlSequenceOfOperation from Server DUT, if both TSTAT.S.F01 + # and TSTAT.S.F01 are true" + # command: "readAttribute" + # attribute: "ControlSequenceOfOperation" + # PICS: TSTAT.S.F00 && TSTAT.S.F01 + # response: + # constraints: + # anyOf: [4, 5] + - label: "Write Attribute command for ControlSequenceOfOperation with a new valid value" diff --git a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1_Simulated.yaml similarity index 57% rename from src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_TSUIC_3_1_Simulated.yaml index cbfe05303d8a7d..dd1aa9b26296bb 100644 --- a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1_Simulated.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 13.3.1. [TC-TSUIC-3.1] Attributes with client as DUT +name: 12.3.1. [TC-TSUIC-3.1] Attributes with client as DUT PICS: - TSUIC.C @@ -24,438 +24,52 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Thermostat User Interface Configuration" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: TSUIC.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration read temperature-display-mode 1 1 - Verify DUT receives temperature-display-mode attribute response on the TH(all-clusters-app) Log: - - [1666953485.298483][6038:6038] CHIP:EM: Handling via exchange: 23149r, Delegate: 0xaaaab1cb0288 - [1666953485.298577][6038:6038] CHIP:IM: Received Read request - [1666953485.298808][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666953485.298877][6038:6038] CHIP:DMG: { - [1666953485.298932][6038:6038] CHIP:DMG: AttributePathIBs = - [1666953485.298997][6038:6038] CHIP:DMG: [ - [1666953485.299059][6038:6038] CHIP:DMG: AttributePathIB = - [1666953485.299136][6038:6038] CHIP:DMG: { - [1666953485.299209][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953485.299298][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953485.299388][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953485.299465][6038:6038] CHIP:DMG: } - [1666953485.299538][6038:6038] CHIP:DMG: - [1666953485.299765][6038:6038] CHIP:DMG: ], - [1666953485.299839][6038:6038] CHIP:DMG: - [1666953485.299907][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666953485.299971][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953485.300031][6038:6038] CHIP:DMG: }, - [1666953485.300205][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666953485.300427][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666953485.300500][6038:6038] CHIP:DMG: Cluster 204, Attribute 0 is dirty - [1666953485.300556][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0204 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1666953485.300624][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=v - [1666953485.300700][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953485.300818][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666953485.301352][6038:6038] CHIP:EM: <<< [E:23149r M:152501921 (Ack:31557778)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666953485.301454][6038:6038] CHIP:IN: (S) Sending msg 152501921 on secure session with LSID: 10244 - [1666953485.302108][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:58532 | 152501921 | [Interaction Model (1) / Report Data (0x05) / Session = 19379 / Exchange = 23149] - [1666953485.302203][6038:6038] CHIP:DMG: Header Flags = - [1666953485.302260][6038:6038] CHIP:DMG: { - [1666953485.302348][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953485.302404][6038:6038] CHIP:DMG: { - [1666953485.302464][6038:6038] CHIP:DMG: AckMsg = 31557778 - [1666953485.302520][6038:6038] CHIP:DMG: NeedsAck = true - [1666953485.302574][6038:6038] CHIP:DMG: } - [1666953485.302646][6038:6038] CHIP:DMG: } - [1666953485.302702][6038:6038] CHIP:DMG: - [1666953485.302817][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666953485.302873][6038:6038] CHIP:DMG: { - [1666953485.302928][6038:6038] CHIP:DMG: data = 00b34b00a1fe160992f993f298cb0a4c374aac67892015d1735721a480259f29e2b1c6180b4da4fed0e15fc273973f7231e5b82c62e6e1140db009dfbcbea30e47adfa1b3b6055 - [1666953485.302986][6038:6038] CHIP:DMG: buffer_ptr = 187650273988816 - [1666953485.303039][6038:6038] CHIP:DMG: } - [1666953485.303091][6038:6038] CHIP:DMG: - [1666953485.303250][6038:6038] CHIP:DMG: ReportDataMessage = - [1666953485.303317][6038:6038] CHIP:DMG: { - [1666953485.303371][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666953485.303456][6038:6038] CHIP:DMG: [ - [1666953485.303520][6038:6038] CHIP:DMG: AttributeReportIB = - [1666953485.303607][6038:6038] CHIP:DMG: { - [1666953485.303679][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953485.303766][6038:6038] CHIP:DMG: { - [1666953485.303856][6038:6038] CHIP:DMG: DataVersion = 0x721f63ed, - [1666953485.303938][6038:6038] CHIP:DMG: AttributePathIB = - [1666953485.304025][6038:6038] CHIP:DMG: { - [1666953485.304121][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953485.304218][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953485.304319][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953485.304414][6038:6038] CHIP:DMG: } - [1666953485.304504][6038:6038] CHIP:DMG: - [1666953485.304593][6038:6038] CHIP:DMG: Data = 0, - [1666953485.304682][6038:6038] CHIP:DMG: }, - [1666953485.304769][6038:6038] CHIP:DMG: - [1666953485.304839][6038:6038] CHIP:DMG: }, - [1666953485.304924][6038:6038] CHIP:DMG: - [1666953485.304991][6038:6038] CHIP:DMG: ], - - - ./chip-tool thermostatuserinterfaceconfiguration read keypad-lockout 1 1 - Verify DUT receives keypad-lockout attribute response on the TH(all-clusters-app) Log: - - [1666953657.435774][6038:6038] CHIP:EM: Handling via exchange: 26217r, Delegate: 0xaaaab1cb0288 - [1666953657.435876][6038:6038] CHIP:IM: Received Read request - [1666953657.436070][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666953657.436160][6038:6038] CHIP:DMG: { - [1666953657.436217][6038:6038] CHIP:DMG: AttributePathIBs = - [1666953657.436300][6038:6038] CHIP:DMG: [ - [1666953657.436400][6038:6038] CHIP:DMG: AttributePathIB = - [1666953657.436494][6038:6038] CHIP:DMG: { - [1666953657.436575][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953657.436693][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953657.436809][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666953657.436899][6038:6038] CHIP:DMG: } - [1666953657.437003][6038:6038] CHIP:DMG: - [1666953657.437079][6038:6038] CHIP:DMG: ], - [1666953657.437151][6038:6038] CHIP:DMG: - [1666953657.437249][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666953657.437316][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953657.437402][6038:6038] CHIP:DMG: }, - [1666953657.437608][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666953657.437851][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666953657.437958][6038:6038] CHIP:DMG: Cluster 204, Attribute 1 is dirty - [1666953657.438013][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0204 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) - [1666953657.438083][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=v - [1666953657.438187][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953657.438312][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666953657.439020][6038:6038] CHIP:EM: <<< [E:26217r M:17307888 (Ack:7084691)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666953657.439141][6038:6038] CHIP:IN: (S) Sending msg 17307888 on secure session with LSID: 10245 - [1666953657.439898][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:46916 | 17307888 | [Interaction Model (1) / Report Data (0x05) / Session = 42670 / Exchange = 26217] - [1666953657.440006][6038:6038] CHIP:DMG: Header Flags = - [1666953657.440066][6038:6038] CHIP:DMG: { - [1666953657.440156][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953657.440212][6038:6038] CHIP:DMG: { - [1666953657.440273][6038:6038] CHIP:DMG: AckMsg = 7084691 - [1666953657.440360][6038:6038] CHIP:DMG: NeedsAck = true - [1666953657.440416][6038:6038] CHIP:DMG: } - [1666953657.440491][6038:6038] CHIP:DMG: } - [1666953657.440569][6038:6038] CHIP:DMG: - [1666953657.440641][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666953657.440698][6038:6038] CHIP:DMG: { - [1666953657.440775][6038:6038] CHIP:DMG: data = 00aea600f01808016f3a0abf125ab2e176e43c36dabe0c90fc8b3c1f3a5c3b29526965dd5e436fc4445e7add48a31b55e2308e06e8b7236f5bc12ec179f3be99e511c955806e9a - [1666953657.440834][6038:6038] CHIP:DMG: buffer_ptr = 187650273983904 - [1666953657.440888][6038:6038] CHIP:DMG: } - [1666953657.440963][6038:6038] CHIP:DMG: - [1666953657.441162][6038:6038] CHIP:DMG: ReportDataMessage = - [1666953657.441232][6038:6038] CHIP:DMG: { - [1666953657.441307][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666953657.441390][6038:6038] CHIP:DMG: [ - [1666953657.441453][6038:6038] CHIP:DMG: AttributeReportIB = - [1666953657.441550][6038:6038] CHIP:DMG: { - [1666953657.441644][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953657.441738][6038:6038] CHIP:DMG: { - [1666953657.441854][6038:6038] CHIP:DMG: DataVersion = 0x721f63ed, - [1666953657.441949][6038:6038] CHIP:DMG: AttributePathIB = - [1666953657.442069][6038:6038] CHIP:DMG: { - [1666953657.442168][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953657.442296][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953657.442414][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666953657.442512][6038:6038] CHIP:DMG: } - [1666953657.442636][6038:6038] CHIP:DMG: - [1666953657.442802][6038:6038] CHIP:DMG: Data = 0, - [1666953657.442898][6038:6038] CHIP:DMG: }, - [1666953657.442997][6038:6038] CHIP:DMG: - [1666953657.443093][6038:6038] CHIP:DMG: }, - [1666953657.443182][6038:6038] CHIP:DMG: - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: TSUIC.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration read schedule-programming-visibility 1 1 - Verify DUT receives schedule-programming-visibility attribute response on the TH(all-clusters-app) Log: - - [1666953796.399850][6038:6038] CHIP:EM: Handling via exchange: 58771r, Delegate: 0xaaaab1cb0288 - [1666953796.399946][6038:6038] CHIP:IM: Received Read request - [1666953796.400142][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666953796.400232][6038:6038] CHIP:DMG: { - [1666953796.400288][6038:6038] CHIP:DMG: AttributePathIBs = - [1666953796.400352][6038:6038] CHIP:DMG: [ - [1666953796.400435][6038:6038] CHIP:DMG: AttributePathIB = - [1666953796.400514][6038:6038] CHIP:DMG: { - [1666953796.400614][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953796.400703][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953796.400804][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666953796.400882][6038:6038] CHIP:DMG: } - [1666953796.400980][6038:6038] CHIP:DMG: - [1666953796.401052][6038:6038] CHIP:DMG: ], - [1666953796.401123][6038:6038] CHIP:DMG: - [1666953796.401212][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666953796.401277][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953796.401362][6038:6038] CHIP:DMG: }, - [1666953796.401557][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666953796.401769][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666953796.401866][6038:6038] CHIP:DMG: Cluster 204, Attribute 2 is dirty - [1666953796.401923][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0204 Endpoint=1 AttributeId=0x0000_0002 (expanded=0) - [1666953796.402020][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=v - [1666953796.402096][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953796.402240][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666953796.402872][6038:6038] CHIP:EM: <<< [E:58771r M:9565618 (Ack:39080088)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666953796.402973][6038:6038] CHIP:IN: (S) Sending msg 9565618 on secure session with LSID: 10246 - [1666953796.403657][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:44687 | 9565618 | [Interaction Model (1) / Report Data (0x05) / Session = 52855 / Exchange = 58771] - [1666953796.403751][6038:6038] CHIP:DMG: Header Flags = - [1666953796.403809][6038:6038] CHIP:DMG: { - [1666953796.403896][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953796.403953][6038:6038] CHIP:DMG: { - [1666953796.404014][6038:6038] CHIP:DMG: AckMsg = 39080088 - [1666953796.404093][6038:6038] CHIP:DMG: NeedsAck = true - [1666953796.404147][6038:6038] CHIP:DMG: } - [1666953796.404219][6038:6038] CHIP:DMG: } - [1666953796.404296][6038:6038] CHIP:DMG: - [1666953796.404365][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666953796.404422][6038:6038] CHIP:DMG: { - [1666953796.404501][6038:6038] CHIP:DMG: data = 0077ce00b2f59100f2c40451e6d0ad9269be7e9666e5fdab77718cd5b87845a9816958afe63ebec62e757270f9b127bba1d5b39cab81e43e7426c59d615ba3995fa645e3b8ac48 - [1666953796.404559][6038:6038] CHIP:DMG: buffer_ptr = 187650273992768 - [1666953796.404613][6038:6038] CHIP:DMG: } - [1666953796.404686][6038:6038] CHIP:DMG: - [1666953796.404871][6038:6038] CHIP:DMG: ReportDataMessage = - [1666953796.404938][6038:6038] CHIP:DMG: { - [1666953796.404993][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666953796.405077][6038:6038] CHIP:DMG: [ - [1666953796.405140][6038:6038] CHIP:DMG: AttributeReportIB = - [1666953796.405259][6038:6038] CHIP:DMG: { - [1666953796.405341][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953796.405449][6038:6038] CHIP:DMG: { - [1666953796.405538][6038:6038] CHIP:DMG: DataVersion = 0x721f63ed, - [1666953796.405643][6038:6038] CHIP:DMG: AttributePathIB = - [1666953796.405729][6038:6038] CHIP:DMG: { - [1666953796.405825][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953796.405919][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953796.406009][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666953796.406106][6038:6038] CHIP:DMG: } - [1666953796.406195][6038:6038] CHIP:DMG: - [1666953796.406283][6038:6038] CHIP:DMG: Data = 0, - [1666953796.406370][6038:6038] CHIP:DMG: }, - [1666953796.406462][6038:6038] CHIP:DMG: - [1666953796.406541][6038:6038] CHIP:DMG: }, - [1666953796.406623][6038:6038] CHIP:DMG: - [1666953796.406689][6038:6038] CHIP:DMG: ], - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AM-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration write temperature-display-mode 1 1 1 - Verify DUT receives temperature-display-mode attribute write response on the TH(all-clusters-app) Log: - - [1666953918.439285][6038:6038] CHIP:EM: Handling via exchange: 882r, Delegate: 0xaaaab1cb0288 - [1666953918.439380][6038:6038] CHIP:IM: Received Write request - [1666953918.439463][6038:6038] CHIP:DMG: IM WH moving to [Initialized] - [1666953918.439584][6038:6038] CHIP:DMG: WriteRequestMessage = - [1666953918.439670][6038:6038] CHIP:DMG: { - [1666953918.439729][6038:6038] CHIP:DMG: suppressResponse = false, - [1666953918.439817][6038:6038] CHIP:DMG: timedRequest = false, - [1666953918.439882][6038:6038] CHIP:DMG: AttributeDataIBs = - [1666953918.439956][6038:6038] CHIP:DMG: [ - [1666953918.440043][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953918.440130][6038:6038] CHIP:DMG: { - [1666953918.440229][6038:6038] CHIP:DMG: AttributePathIB = - [1666953918.440318][6038:6038] CHIP:DMG: { - [1666953918.440431][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953918.440519][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953918.440635][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953918.440715][6038:6038] CHIP:DMG: } - [1666953918.440828][6038:6038] CHIP:DMG: - [1666953918.440914][6038:6038] CHIP:DMG: Data = 1, - [1666953918.441019][6038:6038] CHIP:DMG: }, - [1666953918.441100][6038:6038] CHIP:DMG: - [1666953918.441191][6038:6038] CHIP:DMG: ], - [1666953918.441266][6038:6038] CHIP:DMG: - [1666953918.441351][6038:6038] CHIP:DMG: moreChunkedMessages = false, - [1666953918.441415][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953918.441496][6038:6038] CHIP:DMG: }, - [1666953918.441707][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o - [1666953918.441790][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953918.441903][6038:6038] CHIP:DMG: Endpoint 1, Cluster 0x0000_0204 update version to 721f63ee - [1666953918.441990][6038:6038] CHIP:DMG: IM WH moving to [AddStatus] - [1666953918.442581][6038:6038] CHIP:EM: <<< [E:882r M:83356626 (Ack:126694797)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:07 (IM:WriteResponse) - [1666953918.442682][6038:6038] CHIP:IN: (S) Sending msg 83356626 on secure session with LSID: 10247 - [1666953918.443427][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be36%eth0]:55372 | 83356626 | [Interaction Model (1) / Write Response (0x07) / Session = 58974 / Exchange = 882] - [1666953918.443524][6038:6038] CHIP:DMG: Header Flags = - [1666953918.443582][6038:6038] CHIP:DMG: { - [1666953918.443668][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953918.443724][6038:6038] CHIP:DMG: { - [1666953918.443783][6038:6038] CHIP:DMG: AckMsg = 126694797 - [1666953918.443862][6038:6038] CHIP:DMG: NeedsAck = true - [1666953918.443917][6038:6038] CHIP:DMG: } - [1666953918.443989][6038:6038] CHIP:DMG: } - [1666953918.444066][6038:6038] CHIP:DMG: - [1666953918.444134][6038:6038] CHIP:DMG: Encrypted Payload (63 bytes) = - [1666953918.444190][6038:6038] CHIP:DMG: { - [1666953918.444268][6038:6038] CHIP:DMG: data = 005ee600d2ebf704a2d1eef3e80b3cd6fc318475b505396944b68956c6193547fae35c13aa5addb94918cde20924b6de44bb5aa1a9baa93cbf6a575805ee59 - [1666953918.444327][6038:6038] CHIP:DMG: buffer_ptr = 187650273993776 - [1666953918.444380][6038:6038] CHIP:DMG: } - [1666953918.444452][6038:6038] CHIP:DMG: - [1666953918.444570][6038:6038] CHIP:DMG: WriteResponseMessage = - [1666953918.444636][6038:6038] CHIP:DMG: { - [1666953918.444715][6038:6038] CHIP:DMG: AttributeStatusIBs = - [1666953918.444792][6038:6038] CHIP:DMG: [ - [1666953918.444877][6038:6038] CHIP:DMG: AttributeStatusIB = - [1666953918.444955][6038:6038] CHIP:DMG: { - [1666953918.445046][6038:6038] CHIP:DMG: AttributePathIB = - [1666953918.445135][6038:6038] CHIP:DMG: { - [1666953918.445246][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953918.445334][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953918.445443][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953918.445520][6038:6038] CHIP:DMG: } - [1666953918.445625][6038:6038] CHIP:DMG: - [1666953918.445703][6038:6038] CHIP:DMG: StatusIB = - [1666953918.445811][6038:6038] CHIP:DMG: { - [1666953918.445901][6038:6038] CHIP:DMG: status = 0x00 (SUCCESS), - [1666953918.446008][6038:6038] CHIP:DMG: }, - [1666953918.446096][6038:6038] CHIP:DMG: - [1666953918.446187][6038:6038] CHIP:DMG: }, - [1666953918.446269][6038:6038] CHIP:DMG: - [1666953918.446505][6038:6038] CHIP:DMG: ], - - - - ./chip-tool thermostatuserinterfaceconfiguration write keypad-lockout 1 1 1 - Verify DUT receives keypad-lockout attribute write response on the TH(all-clusters-app) Log: - - [1666954081.095820][6038:6038] CHIP:EM: Handling via exchange: 14149r, Delegate: 0xaaaab1cb0288 - [1666954081.095923][6038:6038] CHIP:IM: Received Write request - [1666954081.096012][6038:6038] CHIP:DMG: IM WH moving to [Initialized] - [1666954081.096146][6038:6038] CHIP:DMG: WriteRequestMessage = - [1666954081.096237][6038:6038] CHIP:DMG: { - [1666954081.096297][6038:6038] CHIP:DMG: suppressResponse = false, - [1666954081.096395][6038:6038] CHIP:DMG: timedRequest = false, - [1666954081.096460][6038:6038] CHIP:DMG: AttributeDataIBs = - [1666954081.096557][6038:6038] CHIP:DMG: [ - [1666954081.096623][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954081.096712][6038:6038] CHIP:DMG: { - [1666954081.096803][6038:6038] CHIP:DMG: AttributePathIB = - [1666954081.096890][6038:6038] CHIP:DMG: { - [1666954081.097001][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954081.097091][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666954081.097203][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954081.097286][6038:6038] CHIP:DMG: } - [1666954081.097397][6038:6038] CHIP:DMG: - [1666954081.097485][6038:6038] CHIP:DMG: Data = 1, - [1666954081.097588][6038:6038] CHIP:DMG: }, - [1666954081.097665][6038:6038] CHIP:DMG: - [1666954081.097750][6038:6038] CHIP:DMG: ], - [1666954081.097827][6038:6038] CHIP:DMG: - [1666954081.097914][6038:6038] CHIP:DMG: moreChunkedMessages = false, - [1666954081.097983][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954081.098043][6038:6038] CHIP:DMG: }, - [1666954081.098262][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=m - [1666954081.098373][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954081.098468][6038:6038] CHIP:DMG: Endpoint 1, Cluster 0x0000_0204 update version to 721f63ef - [1666954081.098558][6038:6038] CHIP:DMG: IM WH moving to [AddStatus] - [1666954081.099417][6038:6038] CHIP:EM: <<< [E:14149r M:188310810 (Ack:192095418)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:07 (IM:WriteResponse) - [1666954081.099539][6038:6038] CHIP:IN: (S) Sending msg 188310810 on secure session with LSID: 10248 - [1666954081.100278][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:54947 | 188310810 | [Interaction Model (1) / Write Response (0x07) / Session = 58271 / Exchange = 14149] - [1666954081.100389][6038:6038] CHIP:DMG: Header Flags = - [1666954081.100448][6038:6038] CHIP:DMG: { - [1666954081.100538][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954081.100596][6038:6038] CHIP:DMG: { - [1666954081.100656][6038:6038] CHIP:DMG: AckMsg = 192095418 - [1666954081.100743][6038:6038] CHIP:DMG: NeedsAck = true - [1666954081.100801][6038:6038] CHIP:DMG: } - [1666954081.100874][6038:6038] CHIP:DMG: } - [1666954081.100953][6038:6038] CHIP:DMG: - [1666954081.101024][6038:6038] CHIP:DMG: Encrypted Payload (63 bytes) = - [1666954081.101081][6038:6038] CHIP:DMG: { - [1666954081.101162][6038:6038] CHIP:DMG: data = 009fe3001a65390bee9f15b7c3ba064f6d214eda423567e2f537826a8ac4c161d069d8e561e8a31603898254f6a37a0048bc6ec2b932c37b8c1cab699b98b9 - [1666954081.101219][6038:6038] CHIP:DMG: buffer_ptr = 187650273994464 - [1666954081.101274][6038:6038] CHIP:DMG: } - [1666954081.101348][6038:6038] CHIP:DMG: - [1666954081.101477][6038:6038] CHIP:DMG: WriteResponseMessage = - [1666954081.101572][6038:6038] CHIP:DMG: { - [1666954081.101627][6038:6038] CHIP:DMG: AttributeStatusIBs = - [1666954081.101740][6038:6038] CHIP:DMG: [ - [1666954081.101806][6038:6038] CHIP:DMG: AttributeStatusIB = - [1666954081.101908][6038:6038] CHIP:DMG: { - [1666954081.101985][6038:6038] CHIP:DMG: AttributePathIB = - [1666954081.102092][6038:6038] CHIP:DMG: { - [1666954081.102180][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954081.102294][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666954081.102383][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954081.102484][6038:6038] CHIP:DMG: } - [1666954081.102580][6038:6038] CHIP:DMG: - [1666954081.102686][6038:6038] CHIP:DMG: StatusIB = - [1666954081.102814][6038:6038] CHIP:DMG: { - [1666954081.102924][6038:6038] CHIP:DMG: status = 0x00 (SUCCESS), - [1666954081.103008][6038:6038] CHIP:DMG: }, - [1666954081.103112][6038:6038] CHIP:DMG: - [1666954081.103187][6038:6038] CHIP:DMG: }, - [1666954081.103287][6038:6038] CHIP:DMG: - [1666954081.103352][6038:6038] CHIP:DMG: ], - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration write schedule-programming-visibility 1 1 1 - Verify DUT receives schedule-programming-visibility attribute write response on the TH(all-clusters-app) Log: - [1658143828.619738][13946:13946] CHIP:DMG: WriteRequestMessage = - [1658143828.619764][13946:13946] CHIP:DMG: { - [1658143828.619787][13946:13946] CHIP:DMG: suppressResponse = false, - [1658143828.619814][13946:13946] CHIP:DMG: timedRequest = false, - [1658143828.619838][13946:13946] CHIP:DMG: AttributeDataIBs = - [1658143828.619867][13946:13946] CHIP:DMG: [ - [1658143828.619891][13946:13946] CHIP:DMG: AttributeDataIB = - [1658143828.619919][13946:13946] CHIP:DMG: { - [1658143828.619944][13946:13946] CHIP:DMG: AttributePathIB = - [1658143828.619980][13946:13946] CHIP:DMG: { - [1658143828.620011][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658143828.620045][13946:13946] CHIP:DMG: Cluster = 0x204, - [1658143828.620078][13946:13946] CHIP:DMG: Attribute = 0x0000_0002, - [1658143828.620108][13946:13946] CHIP:DMG: } - [1658143828.620140][13946:13946] CHIP:DMG: - [1658143828.620172][13946:13946] CHIP:DMG: Data = 1, - [1658143828.620200][13946:13946] CHIP:DMG: }, - [1658143828.620228][13946:13946] CHIP:DMG: - [1658143828.620252][13946:13946] CHIP:DMG: ], - [1658143828.620280][13946:13946] CHIP:DMG: - [1658143828.620305][13946:13946] CHIP:DMG: moreChunkedMessages = false, - [1658143828.620330][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658143828.620353][13946:13946] CHIP:DMG: }, - [1658143828.620434][13946:13946] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=m - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT reads TemperatureDisplayMode attribute from TH" + wait: "readAttribute" + attribute: "TemperatureDisplayMode" + + - label: "DUT reads KeypadLockout attribute from TH" + wait: "readAttribute" + attribute: "KeypadLockout" + + - label: "DUT reads ScheduleProgrammingVisibility attribute from TH" + wait: "readAttribute" + attribute: "ScheduleProgrammingVisibility" + + - label: "DUT writes TemperatureDisplayMode attribute from TH" + wait: "writeAttribute" + attribute: "TemperatureDisplayMode" + arguments: + value: + + - label: "DUT writes KeypadLockout attribute from TH" + wait: "writeAttribute" + attribute: "KeypadLockout" + arguments: + value: + + - label: "DUT writes ScheduleProgrammingVisibility attribute from TH" + wait: "writeAttribute" + attribute: "ScheduleProgrammingVisibility" + arguments: + value: - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + AttributeList.Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool thermostatuserinterfaceconfiguration read temperature-display-mode 1 1 Verify DUT receives temperature-display-mode attribute response on the TH(all-clusters-minimal-app) Log: @@ -595,7 +209,7 @@ tests: [1666952951.998925][5988:5988] CHIP:DMG: ], - ./chip-tool thermostatuserinterfaceconfiguration read feature-map 1 1 + ./chip-tool thermostatuserinterfaceconfiguration read feature-map 1 1 Verify DUT receives feature-map attribute response on the TH(all-clusters-minimal-app) Log: [1666953011.987486][5988:5988] CHIP:EM: Handling via exchange: 41581r, Delegate: 0xaaaad96680e0 @@ -840,12 +454,19 @@ tests: [1676893524.775877][14579:14579] CHIP:DMG: SuppressResponse = true, [1676893524.775891][14579:14579] CHIP:DMG: InteractionModelRevision = 1 [1676893524.775903][14579:14579] CHIP:DMG: } - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -917,12 +538,19 @@ tests: [1666953130.736616][5988:5988] CHIP:DMG: }, [1666953130.736709][5988:5988] CHIP:DMG: [1666953130.736927][5988:5988] CHIP:DMG: }, - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -996,4 +624,12 @@ tests: [1666953180.794294][5988:5988] CHIP:DMG: }, [1666953180.794379][5988:5988] CHIP:DMG: [1666953180.794440][5988:5988] CHIP:DMG: ], - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml index ed18c5e8034497..485598ece27edd 100644 --- a/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 92.1. [TC-ULABEL-1.1] Global Attributes [DUT-server] +name: 95.1.1. [TC-ULABEL-1.1] Global Attributes with DUT as Server PICS: - ULABEL.S diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml index 278218e2046a30..6b069a63acca1a 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml @@ -165,7 +165,7 @@ tests: # The value of bit 0..1 must be 01b & if (LF) value of bit 2..3 must be 01b else 00b & if (TL) value of bit 4..5 must be 01b else 00b # Only 3 possibilities are possible here : 05h = 5, 11h = 17 or 15h = 21 then check a range for simplicity [5 - 21] - label: "3a: TH reads OperationalStatus attribute's bit 0..1" - PICS: WNCV.S.A000a + PICS: WNCV.S.A000a && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -176,7 +176,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && WNCV.S.F00 + PICS: WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -187,7 +187,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && !WNCV.S.F00 + PICS: WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -197,7 +197,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && WNCV.S.F01 + PICS: WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -208,7 +208,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && !WNCV.S.F01 + PICS: WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -216,6 +216,25 @@ tests: type: bitmap8 hasMasksClear: [0x10, 0x20] + #Issue https://github.com/CHIP-Specifications/chip-test-scripts/issues/509 + - label: "3a: TH reads OperationalStatus attribute from DUT" + verification: | + ./chip-tool windowcovering read operational-status 1 1 + + Verify "OperationalStatus " on the TH(Chip-tool) Log: is currently not zero and is in opening mode + + [1650883032.948262][8712:8718] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0102 Attribute 0x0000_000A DataVersion: 366273196 + [1650883032.948351][8712:8718] CHIP:TOO: OperationalStatus: 21 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + ### Depending on the DUT specs we might prefer a arguments here - label: "3a2: DUT updates its attributes" cluster: "DelayCommands" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml index 18a3eea567c2e2..c68bddd1a20142 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml @@ -165,7 +165,7 @@ tests: # The value of bit 0..1 must be 10b & if (LF) value of bit 2..3 must be 10b else 00b & if (TL) value of bit 4..5 must be 10b else 00b # Only 3 possibilities are possible here : 0Ah = 10, 22h = 34 or 2Ah = 42 then check a range for simplicity [10 - 42] - label: "3a: TH reads OperationalStatus attribute's bit 0..1" - PICS: WNCV.S.A000a + PICS: WNCV.S.A000a && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -176,7 +176,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && WNCV.S.F00 + PICS: WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -187,7 +187,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && !WNCV.S.F00 + PICS: WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -197,7 +197,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && WNCV.S.F01 + PICS: WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -208,7 +208,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && !WNCV.S.F01 + PICS: WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -216,6 +216,27 @@ tests: type: bitmap8 hasMasksClear: [0x10, 0x20] + #Issue https://github.com/CHIP-Specifications/chip-test-scripts/issues/509 + - label: "3a: TH reads OperationalStatus attribute from DUT" + verification: | + ./chip-tool windowcovering read operational-status 1 1 + + Verify "OperationalStatus " on the TH(Chip-tool) Log: is currently not zero and is in closing mode + + CHIP:DMG: Data = 42, + CHIP:DMG: } + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0102 Attribute 0x0000_000ADataVersion: 324132078 + CHIP:TOO: OperationalStatus: 42 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + ### Depending on the DUT specs we might prefer a arguments here - label: "3a2: DUT updates its attributes" cluster: "DelayCommands" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml deleted file mode 100644 index 984bf6562e462f..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.4.7. [TC-WNCV-6.1] Basic Commands Verification [DUT as Client] - -PICS: - - WNCV.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Precondition" - verification: | - TH must support at least one of these (0xFFFC) FeatureMap attribute’s flag WNCV.S.F00(LF) and/or WNCV.S.F01(TL) - disabled: true - - - label: "Check UpOrOpen command" - verification: | - - disabled: true - - - label: "DUT sends UpOrOpen command to TH" - PICS: WNCV.C.C00.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering up-or-open 1 1 - - Verify the " DUT responds with request response" on TH(all-clusters-app): - - 1659945239.794637][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945239.794680][2742:2742] CHIP:DMG: { - [1659945239.794718][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945239.794762][2742:2742] CHIP:DMG: timedRequest = false, - [1659945239.794801][2742:2742] CHIP:DMG: InvokeRequests = - [1659945239.794851][2742:2742] CHIP:DMG: [ - [1659945239.794891][2742:2742] CHIP:DMG: CommandDataIB = - [1659945239.794936][2742:2742] CHIP:DMG: { - [1659945239.794997][2742:2742] CHIP:DMG: CommandPathIB = - [1659945239.795055][2742:2742] CHIP:DMG: { - [1659945239.795112][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945239.795177][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945239.795239][2742:2742] CHIP:DMG: CommandId = 0x0, - [1659945239.795297][2742:2742] CHIP:DMG: }, - [1659945239.795353][2742:2742] CHIP:DMG: - [1659945239.795403][2742:2742] CHIP:DMG: CommandFields = - [1659945239.795451][2742:2742] CHIP:DMG: { - [1659945239.795500][2742:2742] CHIP:DMG: }, - [1659945239.795547][2742:2742] CHIP:DMG: }, - [1659945239.795594][2742:2742] CHIP:DMG: - disabled: true - - - label: "Check DownOrClose command" - verification: | - - disabled: true - - - label: "DUT sends DownOrClose command to TH" - PICS: WNCV.C.C01.Tx - verification: | - ./chip-tool windowcovering down-or-close 1 1 - - - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - [1659945343.976313][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945343.976344][2742:2742] CHIP:DMG: { - [1659945343.976367][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945343.976399][2742:2742] CHIP:DMG: timedRequest = false, - [1659945343.976424][2742:2742] CHIP:DMG: InvokeRequests = - [1659945343.976454][2742:2742] CHIP:DMG: [ - [1659945343.976479][2742:2742] CHIP:DMG: CommandDataIB = - [1659945343.976510][2742:2742] CHIP:DMG: { - [1659945343.976539][2742:2742] CHIP:DMG: CommandPathIB = - [1659945343.976571][2742:2742] CHIP:DMG: { - [1659945343.976605][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945343.976639][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945343.976672][2742:2742] CHIP:DMG: CommandId = 0x1, - [1659945343.976701][2742:2742] CHIP:DMG: }, - [1659945343.976734][2742:2742] CHIP:DMG: - [1659945343.976764][2742:2742] CHIP:DMG: CommandFields = - [1659945343.976792][2742:2742] CHIP:DMG: { - [1659945343.976823][2742:2742] CHIP:DMG: }, - [1659945343.976852][2742:2742] CHIP:DMG: }, - [1659945343.976882][2742:2742] CHIP:DMG: - [1659945343.976906][2742:2742] CHIP:DMG: ], - [1659945343.976936][2742:2742] CHIP:DMG: - [1659945343.976960][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945343.976984][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "Check StopMotion command" - verification: | - - disabled: true - - - label: "DUT sends a StopMotion command to TH" - PICS: WNCV.C.C02.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering stop-motion 1 1 - - - Verify the " DUT responds with request response" on TH(all-clusters-app): - - [1661859427.618059][2477:2477] CHIP:DMG: InvokeRequestMessage = - [1661859427.618086][2477:2477] CHIP:DMG: { - [1661859427.618112][2477:2477] CHIP:DMG: suppressResponse = false, - [1661859427.618140][2477:2477] CHIP:DMG: timedRequest = false, - [1661859427.618165][2477:2477] CHIP:DMG: InvokeRequests = - [1661859427.618196][2477:2477] CHIP:DMG: [ - [1661859427.618221][2477:2477] CHIP:DMG: CommandDataIB = - [1661859427.618252][2477:2477] CHIP:DMG: { - [1661859427.618279][2477:2477] CHIP:DMG: CommandPathIB = - [1661859427.618312][2477:2477] CHIP:DMG: { - [1661859427.618347][2477:2477] CHIP:DMG: EndpointId = 0x1, - [1661859427.618383][2477:2477] CHIP:DMG: ClusterId = 0x102, - [1661859427.618420][2477:2477] CHIP:DMG: CommandId = 0x2, - [1661859427.618452][2477:2477] CHIP:DMG: }, - [1661859427.618487][2477:2477] CHIP:DMG: - [1661859427.618516][2477:2477] CHIP:DMG: CommandFields = - [1661859427.618551][2477:2477] CHIP:DMG: { - [1661859427.618583][2477:2477] CHIP:DMG: }, - [1661859427.618613][2477:2477] CHIP:DMG: }, - [1661859427.618645][2477:2477] CHIP:DMG: - [1661859427.618670][2477:2477] CHIP:DMG: ], - [1661859427.618700][2477:2477] CHIP:DMG: - [1661859427.618724][2477:2477] CHIP:DMG: InteractionModelRevision = 1 - [1661859427.618747][2477:2477] CHIP:DMG: }, - [1661859427.618814][2477:2477] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0102 e=1 p=o - [1661859427.618853][2477:2477] CHIP:DMG: AccessControl: allowed - [1661859427.618882][2477:2477] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0102 Command=0x0000_0002 - [1661859427.618914][2477:2477] CHIP:ZCL: StopMotion command received - [1661859427.618961][2477:2477] CHIP:DMG: Endpoint 1, Cluster 0x0000_0102 update version to f31db - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - TH receives the DownOrClose command and knows this attribute for this cluster and provides a plausable value, DUT processes the values and operates normally - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml new file mode 100644 index 00000000000000..c008fa5ade2f07 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml @@ -0,0 +1,40 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.4.7. [TC-WNCV-6.1] Basic Commands Verification with client as DUT + +PICS: + - WNCV.C + +config: + nodeId: 0x12344321 + cluster: "Window Covering" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends UpOrOpen command to TH" + wait: "UpOrOpen" + PICS: WNCV.C.C00.Tx + + - label: "DUT sends DownOrClose command to TH" + wait: "DownOrClose" + PICS: WNCV.C.C01.Tx + + - label: "DUT sends StopMotion command to TH" + wait: "StopMotion" + PICS: WNCV.C.C02.Tx diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml deleted file mode 100644 index d97d7b954dd7b4..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.4.8. [TC-WNCV-7.1] GoToPercentage Commands Verification [DUT as Client] - -PICS: - - WNCV.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Precondition" - verification: | - TH must support at least one of these (0xFFFC) FeatureMap attribute’s flags WNCV.S.F00(LF) & WNCV.S.F02(PA_LF) and/or WNCV.S.F01(TL) & WNCV.S.F04(PA_TL) - disabled: true - - - label: "Check GoToLiftPercentage command 50%" - verification: | - - disabled: true - - - label: "DUT sends GoToLiftPercentage command with 50% to TH" - PICS: WNCV.C.C05.Tx - verification: | - DUT sends GoToLiftPercentage command with 50% to TH - - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering go-to-lift-percentage 5000 1 1 - - Verify the "DUT responds with right request response" - - [1659945446.669477][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945446.669520][2742:2742] CHIP:DMG: { - [1659945446.669555][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945446.669599][2742:2742] CHIP:DMG: timedRequest = false, - [1659945446.669639][2742:2742] CHIP:DMG: InvokeRequests = - [1659945446.669688][2742:2742] CHIP:DMG: [ - [1659945446.669729][2742:2742] CHIP:DMG: CommandDataIB = - [1659945446.669773][2742:2742] CHIP:DMG: { - [1659945446.669815][2742:2742] CHIP:DMG: CommandPathIB = - [1659945446.669866][2742:2742] CHIP:DMG: { - [1659945446.669919][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945446.669975][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945446.670033][2742:2742] CHIP:DMG: CommandId = 0x5, - [1659945446.670084][2742:2742] CHIP:DMG: }, - [1659945446.670137][2742:2742] CHIP:DMG: - [1659945446.670191][2742:2742] CHIP:DMG: CommandFields = - [1659945446.670247][2742:2742] CHIP:DMG: { - [1659945446.670302][2742:2742] CHIP:DMG: 0x0 = 5000, - [1659945446.670361][2742:2742] CHIP:DMG: }, - [1659945446.670409][2742:2742] CHIP:DMG: }, - [1659945446.670460][2742:2742] CHIP:DMG: - [1659945446.670499][2742:2742] CHIP:DMG: ], - [1659945446.670548][2742:2742] CHIP:DMG: - [1659945446.670587][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945446.670626][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "Check GoToTiltPercentage command 50%" - verification: | - - disabled: true - - - label: "DUT sends GoToTiltPercentage command with 50% to TH" - PICS: WNCV.C.C08.Tx - verification: | - DUT sends GoToTiltPercentage command with 50% to TH - - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering go-to-tilt-percentage 5000 1 1 - - - Verify the "DUT responds with right request response" - - [1659945481.649337][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945481.649367][2742:2742] CHIP:DMG: { - [1659945481.649393][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945481.649424][2742:2742] CHIP:DMG: timedRequest = false, - [1659945481.649452][2742:2742] CHIP:DMG: InvokeRequests = - [1659945481.649487][2742:2742] CHIP:DMG: [ - [1659945481.649515][2742:2742] CHIP:DMG: CommandDataIB = - [1659945481.649551][2742:2742] CHIP:DMG: { - [1659945481.649582][2742:2742] CHIP:DMG: CommandPathIB = - [1659945481.649622][2742:2742] CHIP:DMG: { - [1659945481.649660][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945481.649702][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945481.649743][2742:2742] CHIP:DMG: CommandId = 0x8, - [1659945481.649778][2742:2742] CHIP:DMG: }, - [1659945481.649819][2742:2742] CHIP:DMG: - [1659945481.649856][2742:2742] CHIP:DMG: CommandFields = - [1659945481.649892][2742:2742] CHIP:DMG: { - [1659945481.649929][2742:2742] CHIP:DMG: 0x0 = 5000, - [1659945481.649970][2742:2742] CHIP:DMG: }, - [1659945481.650002][2742:2742] CHIP:DMG: }, - [1659945481.650037][2742:2742] CHIP:DMG: - [1659945481.650065][2742:2742] CHIP:DMG: ], - [1659945481.650099][2742:2742] CHIP:DMG: - [1659945481.650126][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945481.650153][2742:2742] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml new file mode 100644 index 00000000000000..2c2bf77473dc90 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml @@ -0,0 +1,40 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: + 36.4.8. [TC-WNCV-7.1] GoToPercentage Commands Verification with client as + DUT + +PICS: + - WNCV.C + +config: + nodeId: 0x12344321 + cluster: "Window Covering" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: + "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT" + wait: "GoToLiftPercentage" + PICS: WNCV.C.C05.Tx + + - label: + "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT" + wait: "GoToTiltPercentage" + PICS: WNCV.C.C08.Tx diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 5b5fc568fb1847..3cb6b999f9ea01 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -309,7 +309,7 @@ CC.C.F04=0 APPLAUNCHER.S=1 APPLAUNCHER.S.A0000=1 APPLAUNCHER.S.A0001=1 -APPLAUNCHER.S.AP=1 +APPLAUNCHER.S.F00=1 APPLAUNCHER.C=1 APPLAUNCHER.C.C00.Tx=1 @@ -320,9 +320,9 @@ APPLAUNCHER.S.C01.Rsp=1 APPLAUNCHER.S.C02.Rsp=1 KEYPADINPUT.S=1 -KEYPADINPUT.S.LK=1 -KEYPADINPUT.S.NK=1 -KEYPADINPUT.S.NV=1 +KEYPADINPUT.S.F01=1 +KEYPADINPUT.S.F02=1 +KEYPADINPUT.S.F00=1 KEYPADINPUT.S.C00.Rsp=1 KEYPADINPUT.C.C00.Tx=1 @@ -344,7 +344,7 @@ MEDIAINPUT.S.C00.Rsp=1 MEDIAINPUT.S.C01.Rsp=1 MEDIAINPUT.S.C02.Rsp=1 MEDIAINPUT.S.C03.Rsp=1 -MEDIAINPUT.S.NU=1 +MEDIAINPUT.S.F00=1 MEDIAINPUT.C=1 MEDIAINPUT.C.C00.Tx=1 @@ -359,8 +359,8 @@ CHANNEL.S.A0002=1 CHANNEL.S.C00.Rsp=1 CHANNEL.S.C02.Rsp=1 CHANNEL.S.C03.Rsp=1 -CHANNEL.S.LI=1 -CHANNEL.S.CL=0 +CHANNEL.S.F01=1 +CHANNEL.S.F00=0 CHANNEL.C=1 CHANNEL.C.C00.Tx=1 @@ -388,8 +388,8 @@ MEDIAPLAYBACK.S.C08.Rsp=1 MEDIAPLAYBACK.S.C09.Rsp=1 MEDIAPLAYBACK.S.C0b.Rsp=1 -MEDIAPLAYBACK.S.AS=1 -MEDIAPLAYBACK.S.VS=1 +MEDIAPLAYBACK.S.F00=1 +MEDIAPLAYBACK.S.F01=1 MEDIAPLAYBACK.C=1 MEDIAPLAYBACK.C.C00.Tx=1 @@ -412,7 +412,7 @@ AUDIOOUTPUT.S.C01.Rsp=1 AUDIOOUTPUT.C=1 AUDIOOUTPUT.C.C00.Tx=1 AUDIOOUTPUT.C.C01.Tx=1 -AUDIOOUTPUT.S.NU=0 +AUDIOOUTPUT.S.F00=0 TGTNAV.S=1 TGTNAV.S.A0000=1 @@ -439,8 +439,8 @@ CONTENTLAUNCHER.S.A0000=1 CONTENTLAUNCHER.S.A0001=1 CONTENTLAUNCHER.S.A0000=1 CONTENTLAUNCHER.S.A0001=1 -CONTENTLAUNCHER.S.CS=0 -CONTENTLAUNCHER.S.UP=1 +CONTENTLAUNCHER.S.F00=0 +CONTENTLAUNCHER.S.F01=1 CONTENTLAUNCHER.S.C00.Rsp=1 CONTENTLAUNCHER.S.C01.Rsp=1 @@ -459,8 +459,8 @@ ALOGIN.C.C00.Tx=1 KEYPADINPUT.C=1 MC.S=1 -MC.S.UDC=1 -MC.S.UDCLOGIN=1 +MC.S.M.UDC=1 +MC.S.M.UDCLOGIN=1 MC.C=1 # Level Control Cluster diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json index 63380e81651c69..f552cecf1cb2d4 100644 --- a/src/app/tests/suites/ciTests.json +++ b/src/app/tests/suites/ciTests.json @@ -103,7 +103,6 @@ "Test_TC_MEDIAPLAYBACK_1_7", "Test_TC_AUDIOOUTPUT_1_8", "Test_TC_TGTNAV_1_9", - "Test_TC_TGTNAV_8_2", "Test_TC_APBSC_1_10", "Test_TC_CONTENTLAUNCHER_1_11", "Test_TC_ALOGIN_1_12", diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index 1dc3116a25925c..d988b42b75c216 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -107,7 +107,7 @@ "Test_TC_DGGEN_3_1" ], "Identify": ["Test_TC_I_3_2"], - "IlluminanceMeasurement": ["Test_TC_ILL_3_1"], + "IlluminanceMeasurement": [], "InteractionDataModel": [ "Test_TC_IDM_1_1", "Test_TC_IDM_1_2", @@ -151,7 +151,8 @@ "Test_TC_CONTENTLAUNCHER_10_7", "Test_TC_MC_11_1", "Test_TC_MC_11_2", - "Test_TC_ALOGIN_12_2" + "Test_TC_ALOGIN_12_2", + "Test_TC_TGTNAV_8_2" ], "MultipleFabrics": [ "Test_TC_CADMIN_1_1", @@ -237,24 +238,17 @@ "SoftwareDiagnostics": [ "Test_TC_DGSW_2_1", "Test_TC_DGSW_2_2", - "Test_TC_DGSW_2_3", - "Test_TC_DGSW_3_2" + "Test_TC_DGSW_2_3" ], - "EthernetNetworkDiagnostics": ["Test_TC_DGETH_3_2"], - "WiFiNetworkDiagnostics": ["Test_TC_DGWIFI_2_2", "Test_TC_DGWIFI_3_2"], - "WindowCovering": ["Test_TC_WNCV_6_1", "Test_TC_WNCV_7_1"], + "EthernetNetworkDiagnostics": [], + "WiFiNetworkDiagnostics": ["Test_TC_DGWIFI_2_2"], + "WindowCovering": [], "FlowMeasurement": ["Test_TC_FLW_2_2"], "OccupancySensing": ["Test_TC_OCC_3_1"], "PowerSource": ["Test_TC_PS_2_2"], "BooleanState": ["Test_TC_BOOL_2_2"], "ColorControl": [ "Test_TC_CC_2_2", - "Test_TC_CC_3_4", - "Test_TC_CC_4_5", - "Test_TC_CC_5_4", - "Test_TC_CC_6_4", - "Test_TC_CC_7_5", - "Test_TC_CC_9_4", "Test_TC_CC_3_1", "Test_TC_CC_7_1", "Test_TC_CC_9_1", @@ -270,19 +264,16 @@ "Test_TC_DRLK_3_3" ], "LocalizationConfiguration": ["Test_TC_LCFG_2_1"], - "LevelControl": ["Test_TC_LVL_2_3", "Test_TC_LVL_7_1", "Test_TC_LVL_8_1"], - "OnOff": ["Test_TC_OO_2_3", "Test_TC_OO_3_1", "Test_TC_OO_3_2"], + "LevelControl": ["Test_TC_LVL_7_1", "Test_TC_LVL_8_1"], + "OnOff": ["Test_TC_OO_2_3"], "RelativeHumidityMeasurement": ["Test_TC_RH_2_2"], "Switch": ["Test_TC_SWTCH_2_2", "Test_TC_SWTCH_3_2"], - "TemperatureMeasurement": ["Test_TC_TMP_2_2", "Test_TC_TMP_3_1"], + "TemperatureMeasurement": ["Test_TC_TMP_2_2"], "Thermostat": ["Test_TC_TSTAT_3_1", "Test_TC_TSTAT_3_2"], - "ThermostatUserConfiguration": ["Test_TC_TSUIC_3_1"], + "ThermostatUserConfiguration": [], "ThreadNetworkDiagnostics": [ "Test_TC_DGTHREAD_2_5", - "Test_TC_DGTHREAD_3_1", - "Test_TC_DGTHREAD_3_2", - "Test_TC_DGTHREAD_3_3", - "Test_TC_DGTHREAD_3_4" + "Test_TC_DGTHREAD_3_1" ], "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_2_2", "Test_TC_ACT_3_2"], "TimeFormatLocalization": ["Test_TC_LTIME_2_1", "Test_TC_LTIME_3_1"], @@ -295,7 +286,7 @@ "Test_TC_S_2_3", "Test_TC_S_3_1" ], - "PumpConfigurationControl": ["Test_TC_PCC_3_1"], + "PumpConfigurationControl": [], "AccessControl": ["Test_TC_ACL_2_5", "Test_TC_ACL_2_6"], "UserLabel": [], "BridgedDeviceBasicInformation": [ diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index f0325c29f5e748..688b47fe0e9a2d 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -117,7 +117,6 @@ class TestList : public Command printf("Test_TC_MEDIAPLAYBACK_1_7\n"); printf("Test_TC_AUDIOOUTPUT_1_8\n"); printf("Test_TC_TGTNAV_1_9\n"); - printf("Test_TC_TGTNAV_8_2\n"); printf("Test_TC_APBSC_1_10\n"); printf("Test_TC_CONTENTLAUNCHER_1_11\n"); printf("Test_TC_ALOGIN_1_12\n"); @@ -375,13 +374,11 @@ class ManualTestList : public Command printf("Test_TC_DLOG_2_2\n"); printf("Test_TC_DLOG_3_1\n"); printf("Test_TC_DESC_2_1\n"); - printf("Test_TC_DGETH_3_2\n"); printf("Test_TC_CGEN_2_2\n"); printf("Test_TC_DGGEN_2_2\n"); printf("Test_TC_DGGEN_2_3\n"); printf("Test_TC_DGGEN_3_1\n"); printf("Test_TC_I_3_2\n"); - printf("Test_TC_ILL_3_1\n"); printf("Test_TC_IDM_1_1\n"); printf("Test_TC_IDM_1_2\n"); printf("Test_TC_IDM_2_1\n"); @@ -423,6 +420,7 @@ class ManualTestList : public Command printf("Test_TC_MC_11_1\n"); printf("Test_TC_MC_11_2\n"); printf("Test_TC_ALOGIN_12_2\n"); + printf("Test_TC_TGTNAV_8_2\n"); printf("Test_TC_CADMIN_1_1\n"); printf("Test_TC_CADMIN_1_2\n"); printf("Test_TC_CADMIN_1_7\n"); @@ -498,22 +496,12 @@ class ManualTestList : public Command printf("Test_TC_DGSW_2_1\n"); printf("Test_TC_DGSW_2_2\n"); printf("Test_TC_DGSW_2_3\n"); - printf("Test_TC_DGSW_3_2\n"); printf("Test_TC_DGWIFI_2_2\n"); - printf("Test_TC_DGWIFI_3_2\n"); - printf("Test_TC_WNCV_6_1\n"); - printf("Test_TC_WNCV_7_1\n"); printf("Test_TC_FLW_2_2\n"); printf("Test_TC_OCC_3_1\n"); printf("Test_TC_PS_2_2\n"); printf("Test_TC_BOOL_2_2\n"); printf("Test_TC_CC_2_2\n"); - printf("Test_TC_CC_3_4\n"); - printf("Test_TC_CC_4_5\n"); - printf("Test_TC_CC_5_4\n"); - printf("Test_TC_CC_6_4\n"); - printf("Test_TC_CC_7_5\n"); - printf("Test_TC_CC_9_4\n"); printf("Test_TC_CC_3_1\n"); printf("Test_TC_CC_7_1\n"); printf("Test_TC_CC_9_1\n"); @@ -526,25 +514,17 @@ class ManualTestList : public Command printf("Test_TC_DRLK_3_2\n"); printf("Test_TC_DRLK_3_3\n"); printf("Test_TC_LCFG_2_1\n"); - printf("Test_TC_LVL_2_3\n"); printf("Test_TC_LVL_7_1\n"); printf("Test_TC_LVL_8_1\n"); printf("Test_TC_OO_2_3\n"); - printf("Test_TC_OO_3_1\n"); - printf("Test_TC_OO_3_2\n"); printf("Test_TC_RH_2_2\n"); printf("Test_TC_SWTCH_2_2\n"); printf("Test_TC_SWTCH_3_2\n"); printf("Test_TC_TMP_2_2\n"); - printf("Test_TC_TMP_3_1\n"); printf("Test_TC_TSTAT_3_1\n"); printf("Test_TC_TSTAT_3_2\n"); - printf("Test_TC_TSUIC_3_1\n"); printf("Test_TC_DGTHREAD_2_5\n"); printf("Test_TC_DGTHREAD_3_1\n"); - printf("Test_TC_DGTHREAD_3_2\n"); - printf("Test_TC_DGTHREAD_3_3\n"); - printf("Test_TC_DGTHREAD_3_4\n"); printf("Test_TC_ACT_2_1\n"); printf("Test_TC_ACT_2_2\n"); printf("Test_TC_ACT_3_2\n"); @@ -558,7 +538,6 @@ class ManualTestList : public Command printf("Test_TC_S_2_2\n"); printf("Test_TC_S_2_3\n"); printf("Test_TC_S_3_1\n"); - printf("Test_TC_PCC_3_1\n"); printf("Test_TC_ACL_2_5\n"); printf("Test_TC_ACL_2_6\n"); printf("Test_TC_BRBINFO_2_2\n"); @@ -5707,7 +5686,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand class Test_TC_ACL_2_7Suite : public TestCommand { public: - Test_TC_ACL_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_7", 18, credsIssuerConfig) + Test_TC_ACL_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_7", 23, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -5818,11 +5797,19 @@ class Test_TC_ACL_2_7Suite : public TestCommand break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -5840,7 +5827,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand } } break; - case 13: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -5865,7 +5852,11 @@ class Test_TC_ACL_2_7Suite : public TestCommand } } break; - case 14: + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: switch (mTestSubStepIndex) { case 0: @@ -5893,7 +5884,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand break; } break; - case 15: + case 18: switch (mTestSubStepIndex) { case 0: @@ -5928,12 +5919,20 @@ class Test_TC_ACL_2_7Suite : public TestCommand break; } break; - case 16: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 17: + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -6028,17 +6027,29 @@ class Test_TC_ACL_2_7Suite : public TestCommand } case 8: { LogStep(8, "Read the TH2 commissioner node ID"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityBeta, value); } case 9: { LogStep(9, "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 10: { - LogStep(10, + LogStep(10, "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -6060,11 +6071,11 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 11: { - LogStep(11, + case 12: { + LogStep(12, "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6089,34 +6100,66 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, "Step 8:TH1 reads AccessControl cluster Extension attribute"); + case 13: { + LogStep(13, + "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " + "AccessControlExtensionStruct containing 1 element"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "Step 8:TH1 reads AccessControl cluster Extension attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 9:TH2 reads AccessControl cluster Extension attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 15: { + LogStep(15, "Step 9:TH2 reads AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + case 16: { + LogStep(16, "Step 9:TH2 reads AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlExtensionChanged::Id, false, chip::NullOptional); } - case 15: { - LogStep(15, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); - VerifyOrDo(!ShouldSkip("ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 18: { + LogStep(18, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + VerifyOrDo(!ShouldSkip("ACL.S.E01 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlExtensionChanged::Id, false, chip::NullOptional); } - case 16: { - LogStep(16, "TH1 writes Extension attribute value as empty list"); + case 19: { + LogStep(19, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 20: { + LogStep(20, "TH1 writes Extension attribute value as empty list"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6125,9 +6168,9 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 17: { - LogStep(17, "TH2 writes Extension attribute value as empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "TH2 writes Extension attribute value as empty list"); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6135,6 +6178,16 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } + case 22: { + LogStep(22, "TH2 writes Extension attribute value as empty list"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -6143,7 +6196,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand class Test_TC_ACL_2_8Suite : public TestCommand { public: - Test_TC_ACL_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_8", 18, credsIssuerConfig) + Test_TC_ACL_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_8", 23, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -6250,11 +6303,19 @@ class Test_TC_ACL_2_8Suite : public TestCommand break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6284,7 +6345,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand } } break; - case 13: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6314,7 +6375,11 @@ class Test_TC_ACL_2_8Suite : public TestCommand } } break; - case 14: + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: switch (mTestSubStepIndex) { case 0: @@ -6428,7 +6493,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand break; } break; - case 15: + case 18: switch (mTestSubStepIndex) { case 0: @@ -6542,12 +6607,20 @@ class Test_TC_ACL_2_8Suite : public TestCommand break; } break; - case 16: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 17: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -6642,17 +6715,29 @@ class Test_TC_ACL_2_8Suite : public TestCommand } case 8: { LogStep(8, "Read the TH2 commissioner node ID"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityBeta, value); } case 9: { LogStep(9, "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + LogStep(10, "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6684,9 +6769,9 @@ class Test_TC_ACL_2_8Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 11: { - LogStep(11, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 12: { + LogStep(12, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6717,52 +6802,136 @@ class Test_TC_ACL_2_8Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 13: { + LogStep(13, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 15: { + LogStep(15, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + case 16: { + LogStep(16, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 3; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlEntryChanged::Id, false, chip::NullOptional); } - case 15: { - LogStep(15, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); - VerifyOrDo(!ShouldSkip("ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 18: { + LogStep(18, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + VerifyOrDo(!ShouldSkip("ACL.S.E00 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 3; return ReadEvent(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlEntryChanged::Id, false, chip::NullOptional); } - case 16: { - LogStep(16, "TH1 writes ACL attribute value is an empty list"); + case 19: { + LogStep(19, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 20: { + LogStep(20, "TH1 writes ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; - value = chip::app::DataModel::List(); + { + auto * listHolder_0 = + new ListHolder(1); + listFreer.add(listHolder_0); + + listHolder_0->mList[0].privilege = + static_cast(5); + listHolder_0->mList[0].authMode = + static_cast(2); + listHolder_0->mList[0].subjects.SetNonNull(); + + { + auto * listHolder_3 = new ListHolder(1); + listFreer.add(listHolder_3); + listHolder_3->mList[0] = TH1CommissionerNodeId; + listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); + } + listHolder_0->mList[0].targets.SetNull(); + listHolder_0->mList[0].fabricIndex = 1U; + + value = chip::app::DataModel::List( + listHolder_0->mList, 1); + } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 17: { - LogStep(17, "TH2 writes ACL attribute value is an empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "TH2 writes ACL attribute default value"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; - value = chip::app::DataModel::List(); + { + auto * listHolder_0 = + new ListHolder(1); + listFreer.add(listHolder_0); + + listHolder_0->mList[0].privilege = + static_cast(5); + listHolder_0->mList[0].authMode = + static_cast(2); + listHolder_0->mList[0].subjects.SetNonNull(); + + { + auto * listHolder_3 = new ListHolder(1); + listFreer.add(listHolder_3); + listHolder_3->mList[0] = TH2CommissionerNodeId; + listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); + } + listHolder_0->mList[0].targets.SetNull(); + listHolder_0->mList[0].fabricIndex = 1U; + + value = chip::app::DataModel::List( + listHolder_0->mList, 1); + } return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } + case 22: { + LogStep(22, "TH2 writes ACL attribute default value"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -7080,7 +7249,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand class Test_TC_ACL_2_10Suite : public TestCommand { public: - Test_TC_ACL_2_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_10", 31, credsIssuerConfig) + Test_TC_ACL_2_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_10", 35, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -7191,6 +7360,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -7200,14 +7370,13 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -7219,8 +7388,20 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -7238,7 +7419,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 20: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -7282,30 +7463,36 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 21: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 22: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; - case 23: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 24: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 25: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); } break; - case 26: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 27: + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -7323,14 +7510,14 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 28: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 30: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -7427,17 +7614,29 @@ class Test_TC_ACL_2_10Suite : public TestCommand } case 8: { LogStep(8, "Read the TH2 commissioner node ID"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityBeta, value); } case 9: { LogStep(9, "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + LogStep(10, "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7484,9 +7683,9 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 11: { - LogStep(11, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 12: { + LogStep(12, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7532,8 +7731,18 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, + case 13: { + LogStep(13, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "Step 7:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_EMPTY"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -7555,11 +7764,11 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 13: { - LogStep(13, + case 15: { + LogStep(15, "Step 8:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_SINGLE"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7584,15 +7793,27 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 14: { - LogStep(14, "Step 9: Reboot DUT"); + case 16: { + LogStep(16, + "Step 8:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " + "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_SINGLE"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "Step 9: Reboot DUT"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::SystemCommands::Commands::Reboot::Type value; return Reboot(kIdentityAlpha, value); } - case 15: { - LogStep(15, "Step 9: Reboot DUT"); + case 18: { + LogStep(18, "Step 9: Reboot DUT"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7602,24 +7823,24 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 16: { - LogStep(16, "TH1 Connects to the device again"); + case 19: { + LogStep(19, "TH1 Connects to the device again"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; return WaitForCommissionee(kIdentityAlpha, value); } - case 17: { - LogStep(17, "TH2 Connects to the device again"); + case 20: { + LogStep(20, "TH2 Connects to the device again"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; return WaitForCommissionee(kIdentityBeta, value); } - case 18: { - LogStep(18, "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 21: { + LogStep(21, "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7666,23 +7887,33 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 19: { - LogStep(19, + case 22: { + LogStep(22, "Step 11:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 23: { + LogStep(23, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 24: { + LogStep(24, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 25: { + LogStep(25, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7707,9 +7938,9 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 22: { - LogStep(22, "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 26: { + LogStep(26, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); @@ -7717,29 +7948,19 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 23: { - LogStep(23, "TH2 writes Extension attibute value as empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::DataModel::List value; - - value = chip::app::DataModel::List(); - return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, - chip::NullOptional, chip::NullOptional); - } - case 24: { - LogStep(24, "TH2 writes ACL attribute value is an empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 27: { + LogStep(27, "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::DataModel::List value; - - value = chip::app::DataModel::List(); - return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, - chip::NullOptional, chip::NullOptional); + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } - case 25: { - LogStep(25, "Step 15:TH1 removes fabric F2 from DUT"); - VerifyOrDo(!ShouldSkip("OPCREDS.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 28: { + LogStep(28, "Step 15:TH1 removes fabric F2 from DUT"); + VerifyOrDo(!ShouldSkip("OPCREDS.S.C0a.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type value; value.fabricIndex = TH2FabricIndex; @@ -7749,8 +7970,18 @@ class Test_TC_ACL_2_10Suite : public TestCommand ); } - case 26: { - LogStep(26, "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 29: { + LogStep(29, "Step 15:TH1 removes fabric F2 from DUT"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && OPCREDS.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7797,16 +8028,16 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 27: { - LogStep(27, + case 31: { + LogStep(31, "Step 17:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "Step 18: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); + case 32: { + LogStep(32, "Step 18: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7815,8 +8046,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "TH1 writes Extension attribute value as empty list"); + case 33: { + LogStep(33, "TH1 writes Extension attribute value as empty list"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7825,8 +8056,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 30: { - LogStep(30, "TH1 writes ACL attribute value is an empty list"); + case 34: { + LogStep(34, "TH1 writes ACL attribute value is an empty list"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -11111,7 +11342,7 @@ class Test_TC_BIND_1_1Suite : public TestCommand class Test_TC_CC_1_1Suite : public TestCommand { public: - Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 48, credsIssuerConfig) + Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 78, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -11307,7 +11538,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; case 18: @@ -11316,7 +11547,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; case 19: @@ -11325,7 +11556,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; case 20: @@ -11334,7 +11565,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; case 21: @@ -11343,7 +11574,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; case 22: @@ -11352,7 +11583,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; case 23: @@ -11361,7 +11592,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); } break; case 24: @@ -11370,7 +11601,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; case 25: @@ -11379,7 +11610,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); } break; case 26: @@ -11388,10 +11619,280 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 27UL)); } break; case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 32UL)); + } + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); + } + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 36UL)); + } + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 37UL)); + } + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); + } + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); + } + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); + } + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); + } + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 48UL)); + } + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 49UL)); + } + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 50UL)); + } + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 51UL)); + } + break; + case 40: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 52UL)); + } + break; + case 41: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 54UL)); + } + break; + case 42: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 55UL)); + } + break; + case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 56UL)); + } + break; + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 58UL)); + } + break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 59UL)); + } + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 60UL)); + } + break; + case 47: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); + } + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); + } + break; + case 49: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); + } + break; + case 50: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); + } + break; + case 51: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); + } + break; + case 52: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); + } + break; + case 53: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); + } + break; + case 54: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); + } + break; + case 55: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); + } + break; + case 56: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); + } + break; + case 57: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11403,7 +11904,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 58: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11412,7 +11913,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 29: + case 59: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11421,7 +11922,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 30: + case 60: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11430,7 +11931,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 31: + case 61: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11439,7 +11940,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 32: + case 62: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11448,7 +11949,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 33: + case 63: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11457,7 +11958,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 34: + case 64: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11466,7 +11967,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 35: + case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11475,7 +11976,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 36: + case 66: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11484,7 +11985,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 37: + case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11493,7 +11994,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 38: + case 68: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11502,7 +12003,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 39: + case 69: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11511,7 +12012,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 64UL)); } break; - case 40: + case 70: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11520,7 +12021,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65UL)); } break; - case 41: + case 71: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11529,7 +12030,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 66UL)); } break; - case 42: + case 72: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11538,7 +12039,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 67UL)); } break; - case 43: + case 73: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11547,7 +12048,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 68UL)); } break; - case 44: + case 74: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11556,7 +12057,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 71UL)); } break; - case 45: + case 75: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11565,7 +12066,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 75UL)); } break; - case 46: + case 76: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11574,7 +12075,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 76UL)); } break; - case 47: + case 77: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11704,186 +12205,366 @@ class Test_TC_CC_1_1Suite : public TestCommand true, chip::NullOptional); } case 17: { - LogStep(17, "Read the optional attribute(EnhancedCurrentHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "Read the optional attribute(NumberOfPrimaries) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Read the optional attribute(ColorLoopActive) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Read the optional attribute(Primary1X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 19: { - LogStep(19, "Read the optional attribute(ColorLoopDirection) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(19, "Read the optional attribute(Primary1Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "Read the optional attribute(ColorLoopTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "Read the optional attribute(Primary1Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 21: { - LogStep(21, "Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(21, "Read the optional attribute(Primary2X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 22: { - LogStep(22, "Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(22, "Read the optional attribute(Primary2Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 23: { - LogStep(23, "Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(23, "Read the optional attribute(Primary2Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(24, "Read the optional attribute(Primary3X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 25: { - LogStep(25, "Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(25, "Read the optional attribute(Primary3Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(26, "Read the optional attribute(Primary3Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 27: { - LogStep(27, "Read the global attribute: EventList"); + LogStep(27, "Read the optional attribute(Primary4X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 28: { + LogStep(28, "Read the optional attribute(Primary4Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 29: { + LogStep(29, "Read the optional attribute(Primary4Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 30: { + LogStep(30, "Read the optional attribute(Primary5X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 31: { + LogStep(31, "Read the optional attribute(Primary5Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 32: { + LogStep(32, "Read the optional attribute(Primary5Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 33: { + LogStep(33, "Read the optional attribute(Primary6X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 34: { + LogStep(34, "Read the optional attribute(Primary6Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 35: { + LogStep(35, "Read the optional attribute(Primary6Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 36: { + LogStep(36, "Read the optional attribute(WhitePointX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 37: { + LogStep(37, "Read the optional attribute(WhitePointY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 38: { + LogStep(38, "Read the optional attribute(ColorPointRX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 39: { + LogStep(39, "Read the optional attribute(ColorPointRY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 40: { + LogStep(40, "Read the optional attribute(ColorPointRIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 41: { + LogStep(41, "Read the optional attribute(ColorPointGX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 42: { + LogStep(42, "Read the optional attribute(ColorPointGY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 43: { + LogStep(43, "Read the optional attribute(ColorPointGIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0038"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 44: { + LogStep(44, "Read the optional attribute(ColorPointBX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 45: { + LogStep(45, "Read the optional attribute(ColorPointBY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 46: { + LogStep(46, "Read the optional attribute(ColorPointBIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 47: { + LogStep(47, "Read the optional attribute(EnhancedCurrentHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 48: { + LogStep(48, "Read the optional attribute(ColorLoopActive) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 49: { + LogStep(49, "Read the optional attribute(ColorLoopDirection) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 50: { + LogStep(50, "Read the optional attribute(ColorLoopTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 51: { + LogStep(51, "Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 52: { + LogStep(52, "Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 53: { + LogStep(53, "Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 54: { + LogStep(54, "Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 55: { + LogStep(55, "Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 56: { + LogStep(56, "Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 57: { + LogStep(57, "Read the global attribute: EventList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EventList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "Read the optional command(MoveToHue) in AcceptedCommandList"); + case 58: { + LogStep(58, "Read the optional command(MoveToHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 29: { - LogStep(29, "Read the optional command(MoveHue) in AcceptedCommandList"); + case 59: { + LogStep(59, "Read the optional command(MoveHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, "Read the optional command(StepHue) in AcceptedCommandList"); + case 60: { + LogStep(60, "Read the optional command(StepHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 31: { - LogStep(31, "Read the optional command(MoveToSaturation) in AcceptedCommandList"); + case 61: { + LogStep(61, "Read the optional command(MoveToSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "Read the optional command(MoveSaturation) in AcceptedCommandList"); + case 62: { + LogStep(62, "Read the optional command(MoveSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 33: { - LogStep(33, "Read the optional command(StepSaturation) in AcceptedCommandList"); + case 63: { + LogStep(63, "Read the optional command(StepSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 34: { - LogStep(34, "Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList"); + case 64: { + LogStep(64, "Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 35: { - LogStep(35, "Read the optional command(MoveToColor) in AcceptedCommandList"); + case 65: { + LogStep(65, "Read the optional command(MoveToColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 36: { - LogStep(36, "Read the optional command(MoveColor) in AcceptedCommandList"); + case 66: { + LogStep(66, "Read the optional command(MoveColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 37: { - LogStep(37, "Read the optional command(StepColor) in AcceptedCommandList"); + case 67: { + LogStep(67, "Read the optional command(StepColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 38: { - LogStep(38, "Read the optional command(MoveToColorTemperature) in AcceptedCommandList"); + case 68: { + LogStep(68, "Read the optional command(MoveToColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 39: { - LogStep(39, "Read the optional command(EnhancedMoveToHue) in AcceptedCommandList"); + case 69: { + LogStep(69, "Read the optional command(EnhancedMoveToHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 40: { - LogStep(40, "Read the optional command(EnhancedMoveHue) in AcceptedCommandList"); + case 70: { + LogStep(70, "Read the optional command(EnhancedMoveHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 41: { - LogStep(41, "Read the optional command(EnhancedStepHue) in AcceptedCommandList"); + case 71: { + LogStep(71, "Read the optional command(EnhancedStepHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 42: { - LogStep(42, "Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList"); + case 72: { + LogStep(72, "Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C43.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 43: { - LogStep(43, "Read the optional command(ColorLoopSet) in AcceptedCommandList"); + case 73: { + LogStep(73, "Read the optional command(ColorLoopSet) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 44: { - LogStep(44, "Read the optional command(StopMoveStep) in AcceptedCommandList"); + case 74: { + LogStep(74, "Read the optional command(StopMoveStep) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 45: { - LogStep(45, "Read the optional command(MoveColorTemperature) in AcceptedCommandList"); + case 75: { + LogStep(75, "Read the optional command(MoveColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C4b.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 46: { - LogStep(46, "Read the optional command(StepColorTemperature) in AcceptedCommandList"); + case 76: { + LogStep(76, "Read the optional command(StepColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C4c.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 47: { - LogStep(47, "Read the global attribute: GeneratedCommandList"); + case 77: { + LogStep(77, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -24727,6 +25408,10 @@ class Test_TC_DGETH_1_1Suite : public TestCommand shouldContinue = true; break; case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24735,7 +25420,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24747,10 +25432,6 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -24883,21 +25564,36 @@ class Test_TC_DGETH_1_1Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 16: { - LogStep(16, "TH reads AcceptedCommandList from DUT"); + LogStep(16, + "TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer Extensible " + "Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), " + "these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid range: " + "(0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the " + "allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "TH reads AcceptedCommandList from DUT"); + case 18: { + LogStep(18, "TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("DGETH.S.Afff9 && !DGETH.S.F00 && !DGETH.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " @@ -24912,8 +25608,8 @@ class Test_TC_DGETH_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -24927,21 +25623,6 @@ class Test_TC_DGETH_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 20: { - LogStep(20, - "TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer Extensible " - "Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), " - "these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid range: " - "(0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the " - "allowed MEI range (0x0001 - 0xFFF1)"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } } return CHIP_NO_ERROR; } @@ -32728,26 +33409,26 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !KEYPADINPUT.S.NV && KEYPADINPUT.S.LK && !KEYPADINPUT.S.NK "), + VerifyOrDo(!ShouldSkip(" !KEYPADINPUT.S.F00 && KEYPADINPUT.S.F01 && !KEYPADINPUT.S.F02 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NV"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.LK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -32937,13 +33618,13 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.AP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !APPLAUNCHER.S.AP "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !APPLAUNCHER.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -33149,13 +33830,13 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !MEDIAINPUT.S.NU "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !MEDIAINPUT.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.NU"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -33584,19 +34265,19 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given CHANNEL.S.CL ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.CL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given CHANNEL.S.LI ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -33643,13 +34324,13 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand } case 12: { LogStep(12, "Read the global attribute: GeneratedCommandList"); - VerifyOrDo(!ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 13: { LogStep(13, "Read the global attribute: GeneratedCommandList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CHANNEL.S.F00 || CHANNEL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -33942,19 +34623,20 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !MEDIAPLAYBACK.S.AS && !MEDIAPLAYBACK.S.VS "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !MEDIAPLAYBACK.S.F00 && !MEDIAPLAYBACK.S.F01 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.AS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.VS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -34071,7 +34753,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand { public: Test_TC_AUDIOOUTPUT_1_8Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_AUDIOOUTPUT_1_8", 7, credsIssuerConfig) + TestCommand("Test_TC_AUDIOOUTPUT_1_8", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -34123,11 +34805,19 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 3UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); } break; case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 2UL)); + } + break; + case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34143,7 +34833,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 4: + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34152,7 +34842,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34164,7 +34854,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34205,26 +34895,33 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); + VerifyOrDo(!ShouldSkip("AUDIOOUTPUT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id, true, + LogStep(3, "Read the global attribute: FeatureMap"); + VerifyOrDo(!ShouldSkip(" !AUDIOOUTPUT.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AcceptedCommandList"); + LogStep(4, "Read the global attribute: AttributeList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the global attribute: GeneratedCommandList"); + case 6: { + LogStep(6, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Read the global attribute: EventList"); + case 7: { + LogStep(7, "Read the global attribute: EventList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::EventList::Id, true, chip::NullOptional); } @@ -34408,61 +35105,6 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand } }; -class Test_TC_TGTNAV_8_2Suite : public TestCommand -{ -public: - Test_TC_TGTNAV_8_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_8_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_TGTNAV_8_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_APBSC_1_10Suite : public TestCommand { public: @@ -34855,20 +35497,20 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("( !CONTENTLAUNCHER.S.CS && !CONTENTLAUNCHER.S.UP )"), + VerifyOrDo(!ShouldSkip("( !CONTENTLAUNCHER.S.F00 && !CONTENTLAUNCHER.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.CS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.UP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -35240,7 +35882,7 @@ class Test_TC_KEYPADINPUT_3_2Suite : public TestCommand } case 1: { LogStep(1, "TH sends CEC Settings Keys(0x0A) to DUT"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(10); @@ -35251,7 +35893,7 @@ class Test_TC_KEYPADINPUT_3_2Suite : public TestCommand } case 2: { LogStep(2, "TH sends CEC Home Keys(0x09) to DUT"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); @@ -35402,7 +36044,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 1: { LogStep(1, "Send Numbers1"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(33); @@ -35413,7 +36055,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 2: { LogStep(2, "Send Numbers2"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(34); @@ -35424,7 +36066,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 3: { LogStep(3, "Send Numbers3"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(35); @@ -35435,7 +36077,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 4: { LogStep(4, "Send Numbers4"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(36); @@ -35446,7 +36088,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 5: { LogStep(5, "Send Numbers5"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(37); @@ -35457,7 +36099,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 6: { LogStep(6, "Send Numbers6"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(38); @@ -35468,7 +36110,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 7: { LogStep(7, "Send Numbers7"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(39); @@ -35479,7 +36121,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 8: { LogStep(8, "Send Numbers8"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(40); @@ -35490,7 +36132,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 9: { LogStep(9, "Send Numbers9"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(41); @@ -38994,7 +39636,7 @@ class Test_TC_ALOGIN_12_1Suite : public TestCommand class Test_TC_MOD_1_1Suite : public TestCommand { public: - Test_TC_MOD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_1_1", 9, credsIssuerConfig) + Test_TC_MOD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_1_1", 10, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -39095,6 +39737,18 @@ class Test_TC_MOD_1_1Suite : public TestCommand } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39103,7 +39757,7 @@ class Test_TC_MOD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39172,12 +39826,17 @@ class Test_TC_MOD_1_1Suite : public TestCommand chip::NullOptional); } case 7: { - LogStep(7, "Read the global attribute: AcceptedCommandList"); + LogStep(7, "Read the global attribute: EventList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Read the global attribute: GeneratedCommandList"); + case 9: { + LogStep(9, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -45534,17 +46193,23 @@ class Test_TC_SC_5_1Suite : public TestCommand static_cast(0); value.groupKeySet.epochKey0.SetNonNull(); value.groupKeySet.epochKey0.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0x00000000000000000000000000000001garbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01garbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime0.SetNonNull(); value.groupKeySet.epochStartTime0.Value() = 111ULL; value.groupKeySet.epochKey1.SetNonNull(); value.groupKeySet.epochKey1.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0x00000000000000000000000000000002garbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02garbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime1.SetNonNull(); value.groupKeySet.epochStartTime1.Value() = 222ULL; value.groupKeySet.epochKey2.SetNonNull(); value.groupKeySet.epochKey2.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0x00000000000000000000000000000003garbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03garbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 333ULL; @@ -45574,17 +46239,23 @@ class Test_TC_SC_5_1Suite : public TestCommand static_cast(0); value.groupKeySet.epochKey0.SetNonNull(); value.groupKeySet.epochKey0.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0xd0d1d2d3d4d5d6d7d8d9dadbdcdddedfgarbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime0.SetNonNull(); value.groupKeySet.epochStartTime0.Value() = 2220000ULL; value.groupKeySet.epochKey1.SetNonNull(); value.groupKeySet.epochKey1.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0xd1d1d2d3d4d5d6d7d8d9dadbdcdddedfgarbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\xd1\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime1.SetNonNull(); value.groupKeySet.epochStartTime1.Value() = 2220001ULL; value.groupKeySet.epochKey2.SetNonNull(); value.groupKeySet.epochKey2.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0xd2d1d2d3d4d5d6d7d8d9dadbdcdddedfgarbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\xd2\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2220002ULL; @@ -47554,7 +48225,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand class Test_TC_TSTAT_2_1Suite : public TestCommand { public: - Test_TC_TSTAT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_2_1", 68, credsIssuerConfig) + Test_TC_TSTAT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_2_1", 70, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -47580,6 +48251,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand int16_t AbsMaxCoolSetpointLimitStep6; int16_t MinCoolSetpointLimit; int16_t MaxCoolSetpointLimit; + int16_t MaxHeatSetpointLimit; int16_t OccupiedCoolingSetpoint; int16_t AbsMinHeat; int16_t AbsMaxHeat; @@ -47646,7 +48318,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - OccupiedCoolingSetpoint = value; + MaxHeatSetpointLimit = value; } break; case 7: @@ -47654,7 +48326,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - AbsMinHeat = value; + OccupiedCoolingSetpoint = value; } break; case 8: @@ -47662,7 +48334,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - AbsMaxHeat = value; + AbsMinHeat = value; } break; case 9: @@ -47670,10 +48342,18 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - UnoccupiedCoolingSetpoint = value; + AbsMaxHeat = value; } break; case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + int16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + UnoccupiedCoolingSetpoint = value; + } + break; + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -47683,7 +48363,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -47693,7 +48373,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47703,7 +48383,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1U)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47712,7 +48392,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, AbsMinCoolSetpointLimitStep5 - MinSetpointDeadBand)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47721,7 +48401,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1575)); } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47731,7 +48411,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47741,7 +48421,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47751,7 +48431,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47761,7 +48441,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47771,7 +48451,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47781,7 +48461,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47791,7 +48471,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 63U)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int8_t value; @@ -47801,7 +48481,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 25)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47811,7 +48491,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxCoolSetpointLimit)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47821,7 +48501,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3200)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47831,7 +48511,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, OccupiedCoolingSetpoint - MinSetpointDeadBand)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47841,7 +48521,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47851,7 +48531,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, AbsMaxHeat)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47861,7 +48541,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3200)); } break; - case 29: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47871,7 +48551,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, UnoccupiedCoolingSetpoint - MinSetpointDeadBand)); } break; - case 30: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47881,7 +48561,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 31: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47891,7 +48571,17 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MinCoolSetpointLimit - MinSetpointDeadBand)); } break; - case 32: + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + int16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); + VerifyOrReturn(CheckConstraintMinValue("value", value, AbsMinHeat)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxHeatSetpointLimit)); + } + break; + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47901,7 +48591,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 33: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47911,7 +48601,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 34: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47921,7 +48611,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxCoolSetpointLimit - MinSetpointDeadBand)); } break; - case 35: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47931,7 +48621,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxCoolSetpointLimit)); } break; - case 36: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47941,7 +48631,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3200)); } break; - case 37: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47951,7 +48641,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, AbsMaxCoolSetpointLimitStep6)); } break; - case 38: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int8_t value; @@ -47961,7 +48651,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 25)); } break; - case 39: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47971,7 +48661,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 7U)); } break; - case 40: + case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::Thermostat::ThermostatControlSequence value; @@ -47981,7 +48671,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 5U)); } break; - case 41: + case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47991,7 +48681,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9U)); } break; - case 42: + case 44: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48001,7 +48691,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9U)); } break; - case 43: + case 45: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48011,7 +48701,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 6U)); } break; - case 44: + case 46: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48021,7 +48711,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 45: + case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48031,7 +48721,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 46: + case 48: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48041,7 +48731,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1U)); } break; - case 47: + case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48051,7 +48741,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1440U)); } break; - case 48: + case 50: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48061,7 +48751,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 7U)); } break; - case 49: + case 51: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -48071,7 +48761,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 127U)); } break; - case 50: + case 52: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48081,7 +48771,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } break; - case 51: + case 53: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48091,7 +48781,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 52: + case 54: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint32_t value; @@ -48099,7 +48789,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "epoch_s", "epoch_s")); } break; - case 53: + case 55: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48109,7 +48799,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 54: + case 56: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48119,7 +48809,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 55: + case 57: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48129,7 +48819,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 56: + case 58: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48139,7 +48829,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 57: + case 59: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48149,7 +48839,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 58: + case 60: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48159,7 +48849,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 59: + case 61: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48169,7 +48859,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 60: + case 62: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48179,7 +48869,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 4U)); } break; - case 61: + case 63: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -48189,7 +48879,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 62: + case 64: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48199,7 +48889,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } break; - case 63: + case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48209,7 +48899,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } break; - case 64: + case 66: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint32_t value; @@ -48217,7 +48907,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); } break; - case 65: + case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48227,7 +48917,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 5U)); } break; - case 66: + case 68: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48237,7 +48927,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 67: + case 69: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48299,382 +48989,396 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand true, chip::NullOptional); } case 6: { - LogStep(6, "Saving value for comparision in step 13 read attribute OccupiedCoolingSetpoint"); + LogStep(6, "Saving value for comparision in step 17 read MaxHeatSetpointLimit"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "Saving value for comparision in step 13 read attribute OccupiedCoolingSetpoint"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Saving value for comparision in step 15 read attribute AbsMinHeatSetpointLimit"); + case 8: { + LogStep(8, "Saving value for comparision in step 15 read attribute AbsMinHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Saving value for comparision in step 15 read attribute AbsMaxHeatSetpointLimit"); + case 9: { + LogStep(9, "Saving value for comparision in step 15 read attribute AbsMaxHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Saving value for comparision in step 16 read UnoccupiedCoolingSetpoint attribute"); + case 10: { + LogStep(10, "Saving value for comparision in step 16 read UnoccupiedCoolingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Reads mandatory attributes from DUT: LocalTemperature"); + case 11: { + LogStep(11, "Reads mandatory attributes from DUT: LocalTemperature"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::LocalTemperature::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Read OutdoorTemperature attribute from the DUT"); + case 12: { + LogStep(12, "Read OutdoorTemperature attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OutdoorTemperature::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Read Occupancy attribute from the DUT"); + case 13: { + LogStep(13, "Read Occupancy attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::Occupancy::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); + case 14: { + LogStep(14, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && TSTAT.S.A0005 && TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); + case 15: { + LogStep(15, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && !TSTAT.S.A0005 && TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Read attribute AbsMinHeatSetpointLimit from DUT"); + case 16: { + LogStep(16, "Read attribute AbsMinHeatSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Reads mandatory attributes from DUT: AbsMaxHeatSetpointLimit"); + case 17: { + LogStep(17, "Reads mandatory attributes from DUT: AbsMaxHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Read attribute AbsMinCoolSetpointLimit from DUT"); + case 18: { + LogStep(18, "Read attribute AbsMinCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinCoolSetpointLimit::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "Read attribute AbsMaxCoolSetpointLimit from DUT"); + case 19: { + LogStep(19, "Read attribute AbsMaxCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMaxCoolSetpointLimit::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "Read PICoolingDemand attribute from the DUT"); + case 20: { + LogStep(20, "Read PICoolingDemand attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::PICoolingDemand::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "Read PIHeatingDemand attribute from the DUT"); + case 21: { + LogStep(21, "Read PIHeatingDemand attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::PIHeatingDemand::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "Read HVACSystemTypeConfiguration attribute from the DUT"); + case 22: { + LogStep(22, "Read HVACSystemTypeConfiguration attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::HVACSystemTypeConfiguration::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "Read LocalTemperatureCalibration attribute from the DUT"); + case 23: { + LogStep(23, "Read LocalTemperatureCalibration attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::LocalTemperatureCalibration::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "Read attribute OccupiedCoolingSetpoint from the DUT"); + case 24: { + LogStep(24, "Read attribute OccupiedCoolingSetpoint from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Read attribute OccupiedCoolingSetpoint from the DUT"); + case 25: { + LogStep(25, "Read attribute OccupiedCoolingSetpoint from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Read attribute OccupiedHeatingSetpoint if TSTAT.S.F05 feature is supported"); + case 26: { + LogStep(26, "Read attribute OccupiedHeatingSetpoint if TSTAT.S.F05 feature is supported"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "Read attribute OccupiedHeatingSetpoint from the DUT"); + case 27: { + LogStep(27, "Read attribute OccupiedHeatingSetpoint from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 27: { - LogStep(27, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); + case 28: { + LogStep(28, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); + case 29: { + LogStep(29, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.F02 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 29: { - LogStep(29, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); + case 30: { + LogStep(30, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.F02 && TSTAT.S.F05 && TSTAT.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); + case 31: { + LogStep(31, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.F02 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 31: { - LogStep(31, "Reads attribute from DUT: MinHeatSetpointLimit"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017"), + case 32: { + LogStep(32, "Reads attribute from DUT: MinHeatSetpointLimit"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017 && TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "Read attribute MinHeatSetpointLimit from the DUT"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 33: { + LogStep(33, "Reads MinHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003 && !TSTAT.S.F05"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 33: { - LogStep(33, "Read attribute MaxHeatSetpointLimit from the DUT"); + case 34: { + LogStep(34, "Reads MinHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && !TSTAT.S.A0015 && !TSTAT.S.A0016 && !TSTAT.S.F05"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, + true, chip::NullOptional); + } + case 35: { + LogStep(35, "Read attribute MaxHeatSetpointLimit from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0016 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 34: { - LogStep(34, "Reads attribute from DUT: MaxHeatSetpointLimit"); + case 36: { + LogStep(36, "Reads attribute from DUT: MaxHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0016 && TSTAT.S.F05 && TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 35: { - LogStep(35, "Read attribute MinCoolSetpointLimit from DUT"); + case 37: { + LogStep(37, "Read attribute MinCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0017 && TSTAT.S.A0018 && TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, true, chip::NullOptional); } - case 36: { - LogStep(36, "Read attribute MinCoolSetpointLimit from DUT"); + case 38: { + LogStep(38, "Read attribute MinCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0017 && !TSTAT.S.A0018 && !TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, true, chip::NullOptional); } - case 37: { - LogStep(37, "Read attribute MaxCoolSetpointLimit from DUT"); + case 39: { + LogStep(39, "Read attribute MaxCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0018 && TSTAT.S.A0006 && TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, true, chip::NullOptional); } - case 38: { - LogStep(38, "Read attribute MinSetpointDeadBand from DUT"); + case 40: { + LogStep(40, "Read attribute MinSetpointDeadBand from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinSetpointDeadBand::Id, true, chip::NullOptional); } - case 39: { - LogStep(39, "Read RemoteSensing attribute from the DUT"); + case 41: { + LogStep(41, "Read RemoteSensing attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::RemoteSensing::Id, true, chip::NullOptional); } - case 40: { - LogStep(40, "Read attribute ControlSequenceOfOperation from DUT"); + case 42: { + LogStep(42, "Read attribute ControlSequenceOfOperation from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ControlSequenceOfOperation::Id, true, chip::NullOptional); } - case 41: { - LogStep(41, "Read attribute SystemMode from DUT"); + case 43: { + LogStep(43, "Read attribute SystemMode from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SystemMode::Id, true, chip::NullOptional); } - case 42: { - LogStep(42, "Read ThermostatRunningMode attribute from the DUT"); + case 44: { + LogStep(44, "Read ThermostatRunningMode attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ThermostatRunningMode::Id, true, chip::NullOptional); } - case 43: { - LogStep(43, "Reads constraints of optional attributes from DUT: StartOfWeek"); + case 45: { + LogStep(45, "Reads constraints of optional attributes from DUT: StartOfWeek"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::StartOfWeek::Id, true, chip::NullOptional); } - case 44: { - LogStep(44, "Reads optional attributes from DUT: NumberOfWeeklyTransitions"); + case 46: { + LogStep(46, "Reads optional attributes from DUT: NumberOfWeeklyTransitions"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::NumberOfWeeklyTransitions::Id, true, chip::NullOptional); } - case 45: { - LogStep(45, "Reads optional attributes from DUT: NumberOfDailyTransitions"); + case 47: { + LogStep(47, "Reads optional attributes from DUT: NumberOfDailyTransitions"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::NumberOfDailyTransitions::Id, true, chip::NullOptional); } - case 46: { - LogStep(46, "Read TemperatureSetpointHold attribute from the DUT"); + case 48: { + LogStep(48, "Read TemperatureSetpointHold attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::TemperatureSetpointHold::Id, true, chip::NullOptional); } - case 47: { - LogStep(47, "Read TemperatureSetpointHoldDuration attribute from the DUT"); + case 49: { + LogStep(49, "Read TemperatureSetpointHoldDuration attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::TemperatureSetpointHoldDuration::Id, true, chip::NullOptional); } - case 48: { - LogStep(48, "Read ThermostatProgrammingOperationMode attribute from the DUT"); + case 50: { + LogStep(50, "Read ThermostatProgrammingOperationMode attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ThermostatProgrammingOperationMode::Id, true, chip::NullOptional); } - case 49: { - LogStep(49, "Read ThermostatRunningState attribute from the DUT"); + case 51: { + LogStep(51, "Read ThermostatRunningState attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ThermostatRunningState::Id, true, chip::NullOptional); } - case 50: { - LogStep(50, "Read SetpointChangeSource attribute from the DUT"); + case 52: { + LogStep(52, "Read SetpointChangeSource attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SetpointChangeSource::Id, true, chip::NullOptional); } - case 51: { - LogStep(51, "Read SetpointChangeAmount attribute from the DUT"); + case 53: { + LogStep(53, "Read SetpointChangeAmount attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SetpointChangeAmount::Id, true, chip::NullOptional); } - case 52: { - LogStep(52, "Read SetpointChangeSourceTimestamp attribute from the DUT"); + case 54: { + LogStep(54, "Read SetpointChangeSourceTimestamp attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SetpointChangeSourceTimestamp::Id, true, chip::NullOptional); } - case 53: { - LogStep(53, "Read OccupiedSetback attribute from the DUT"); + case 55: { + LogStep(55, "Read OccupiedSetback attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedSetback::Id, true, chip::NullOptional); } - case 54: { - LogStep(54, "Read OccupiedSetbackMin attribute from the DUT"); + case 56: { + LogStep(56, "Read OccupiedSetbackMin attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedSetbackMin::Id, true, chip::NullOptional); } - case 55: { - LogStep(55, "Read OccupiedSetbackMax attribute from the DUT"); + case 57: { + LogStep(57, "Read OccupiedSetbackMax attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedSetbackMax::Id, true, chip::NullOptional); } - case 56: { - LogStep(56, "Read UnoccupiedSetback attribute from the DUT"); + case 58: { + LogStep(58, "Read UnoccupiedSetback attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedSetback::Id, true, chip::NullOptional); } - case 57: { - LogStep(57, "Read UnoccupiedSetbackMin attribute from the DUT"); + case 59: { + LogStep(59, "Read UnoccupiedSetbackMin attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedSetbackMin::Id, true, chip::NullOptional); } - case 58: { - LogStep(58, "Read UnoccupiedSetbackMax attribute from the DUT"); + case 60: { + LogStep(60, "Read UnoccupiedSetbackMax attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedSetbackMax::Id, true, chip::NullOptional); } - case 59: { - LogStep(59, "Read EmergencyHeatDelta attribute from the DUT"); + case 61: { + LogStep(61, "Read EmergencyHeatDelta attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::EmergencyHeatDelta::Id, true, chip::NullOptional); } - case 60: { - LogStep(60, "Read ACType attribute from the DUT"); + case 62: { + LogStep(62, "Read ACType attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0040"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACType::Id, true, chip::NullOptional); } - case 61: { - LogStep(61, "Read ACCapacity attribute from the DUT"); + case 63: { + LogStep(63, "Read ACCapacity attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0041"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCapacity::Id, true, chip::NullOptional); } - case 62: { - LogStep(62, "Read ACRefrigerantType attribute from the DUT"); + case 64: { + LogStep(64, "Read ACRefrigerantType attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0042"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACRefrigerantType::Id, true, chip::NullOptional); } - case 63: { - LogStep(63, "Read ACCompressorType attribute from the DUT"); + case 65: { + LogStep(65, "Read ACCompressorType attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0043"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCompressorType::Id, true, chip::NullOptional); } - case 64: { - LogStep(64, "Read ACErrorCode attribute from the DUT"); + case 66: { + LogStep(66, "Read ACErrorCode attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0044"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACErrorCode::Id, true, chip::NullOptional); } - case 65: { - LogStep(65, "Read ACLouverPosition attribute from the DUT"); + case 67: { + LogStep(67, "Read ACLouverPosition attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0045"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACLouverPosition::Id, true, chip::NullOptional); } - case 66: { - LogStep(66, "Read ACCoilTemperature attribute from the DUT"); + case 68: { + LogStep(68, "Read ACCoilTemperature attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0046"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCoilTemperature::Id, true, chip::NullOptional); } - case 67: { - LogStep(67, "Read ACCapacityFormat attribute from the DUT"); + case 69: { + LogStep(69, "Read ACCapacityFormat attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0047"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCapacityformat::Id, true, chip::NullOptional); @@ -49387,7 +50091,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand { chip::app::Clusters::Thermostat::ThermostatControlSequence value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("controlSequenceOfOperation", value, 4U)); VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 5U)); @@ -49767,7 +50470,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 600; + value = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); @@ -49902,7 +50605,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1002; + value = 500; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); @@ -50041,7 +50744,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 500; + value = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); @@ -50328,7 +51031,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 500; + value = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } @@ -50451,7 +51154,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1000; + value = 500; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } @@ -50574,7 +51277,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1000; + value = 500; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } @@ -56488,7 +57191,7 @@ class Test_TC_WNCV_2_5Suite : public TestCommand class Test_TC_WNCV_3_1Suite : public TestCommand { public: - Test_TC_WNCV_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_1", 29, credsIssuerConfig) + Test_TC_WNCV_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_1", 30, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -56664,6 +57367,10 @@ class Test_TC_WNCV_3_1Suite : public TestCommand shouldContinue = true; break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56673,7 +57380,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56683,7 +57390,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 99U)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56693,7 +57400,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56703,14 +57410,14 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 99U)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::BitMask value; @@ -56718,11 +57425,11 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56732,7 +57439,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56849,67 +57556,81 @@ class Test_TC_WNCV_3_1Suite : public TestCommand } case 13: { LogStep(13, "3a: TH reads OperationalStatus attribute's bit 0..1"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 14: { LogStep(14, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 15: { LogStep(15, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 16: { LogStep(16, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 17: { LogStep(17, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "3a2: DUT updates its attributes"); + LogStep(18, "3a: TH reads OperationalStatus attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 19: { + LogStep(19, "3a2: DUT updates its attributes"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 19: { - LogStep(19, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); + case 20: { + LogStep(20, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); + case 21: { + LogStep(21, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); + case 22: { + LogStep(22, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); + case 23: { + LogStep(23, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "4a: TH sends a StopMotion command to DUT"); + case 24: { + LogStep(24, "4a: TH sends a StopMotion command to DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; @@ -56918,34 +57639,34 @@ class Test_TC_WNCV_3_1Suite : public TestCommand ); } - case 24: { - LogStep(24, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); + case 25: { + LogStep(25, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 25: { - LogStep(25, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); + case 26: { + LogStep(26, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "5a: TH waits for x seconds attributes update on the device"); + case 27: { + LogStep(27, "5a: TH waits for x seconds attributes update on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 27: { - LogStep(27, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); + case 28: { + LogStep(28, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); + case 29: { + LogStep(29, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); @@ -56958,7 +57679,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand class Test_TC_WNCV_3_2Suite : public TestCommand { public: - Test_TC_WNCV_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_2", 29, credsIssuerConfig) + Test_TC_WNCV_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_2", 30, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -57134,6 +57855,10 @@ class Test_TC_WNCV_3_2Suite : public TestCommand shouldContinue = true; break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57143,7 +57868,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57153,7 +57878,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57163,7 +57888,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57173,14 +57898,14 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::BitMask value; @@ -57188,11 +57913,11 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57202,7 +57927,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57319,67 +58044,81 @@ class Test_TC_WNCV_3_2Suite : public TestCommand } case 13: { LogStep(13, "3a: TH reads OperationalStatus attribute's bit 0..1"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 14: { LogStep(14, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 15: { LogStep(15, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 16: { LogStep(16, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 17: { LogStep(17, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "3a2: DUT updates its attributes"); + LogStep(18, "3a: TH reads OperationalStatus attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 19: { + LogStep(19, "3a2: DUT updates its attributes"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 19: { - LogStep(19, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); + case 20: { + LogStep(20, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); + case 21: { + LogStep(21, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); + case 22: { + LogStep(22, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); + case 23: { + LogStep(23, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "4a: TH sends a StopMotion command to DUT"); + case 24: { + LogStep(24, "4a: TH sends a StopMotion command to DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; @@ -57388,34 +58127,34 @@ class Test_TC_WNCV_3_2Suite : public TestCommand ); } - case 24: { - LogStep(24, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); + case 25: { + LogStep(25, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 25: { - LogStep(25, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); + case 26: { + LogStep(26, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "5a: TH waits for x seconds attributes update on the device"); + case 27: { + LogStep(27, "5a: TH waits for x seconds attributes update on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 27: { - LogStep(27, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); + case 28: { + LogStep(28, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); + case 29: { + LogStep(29, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); @@ -100353,10 +101092,10 @@ class Test_TC_DESC_2_1Suite : public TestCommand } }; -class Test_TC_DGETH_3_2Suite : public TestCommand +class Test_TC_CGEN_2_2Suite : public TestCommand { public: - Test_TC_DGETH_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_3_2", 0, credsIssuerConfig) + Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100364,7 +101103,7 @@ class Test_TC_DGETH_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGETH_3_2Suite() {} + ~Test_TC_CGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100408,10 +101147,10 @@ class Test_TC_DGETH_3_2Suite : public TestCommand } }; -class Test_TC_CGEN_2_2Suite : public TestCommand +class Test_TC_DGGEN_2_2Suite : public TestCommand { public: - Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) + Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100419,7 +101158,7 @@ class Test_TC_CGEN_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CGEN_2_2Suite() {} + ~Test_TC_DGGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100463,10 +101202,10 @@ class Test_TC_CGEN_2_2Suite : public TestCommand } }; -class Test_TC_DGGEN_2_2Suite : public TestCommand +class Test_TC_DGGEN_2_3Suite : public TestCommand { public: - Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) + Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100474,7 +101213,7 @@ class Test_TC_DGGEN_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_2_2Suite() {} + ~Test_TC_DGGEN_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100518,10 +101257,10 @@ class Test_TC_DGGEN_2_2Suite : public TestCommand } }; -class Test_TC_DGGEN_2_3Suite : public TestCommand +class Test_TC_DGGEN_3_1Suite : public TestCommand { public: - Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) + Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100529,7 +101268,7 @@ class Test_TC_DGGEN_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_2_3Suite() {} + ~Test_TC_DGGEN_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100573,10 +101312,10 @@ class Test_TC_DGGEN_2_3Suite : public TestCommand } }; -class Test_TC_DGGEN_3_1Suite : public TestCommand +class Test_TC_I_3_2Suite : public TestCommand { public: - Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) + Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100584,7 +101323,7 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_3_1Suite() {} + ~Test_TC_I_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100628,10 +101367,10 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand } }; -class Test_TC_I_3_2Suite : public TestCommand +class Test_TC_IDM_1_1Suite : public TestCommand { public: - Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) + Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100639,7 +101378,7 @@ class Test_TC_I_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_I_3_2Suite() {} + ~Test_TC_IDM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100683,10 +101422,10 @@ class Test_TC_I_3_2Suite : public TestCommand } }; -class Test_TC_ILL_3_1Suite : public TestCommand +class Test_TC_IDM_1_2Suite : public TestCommand { public: - Test_TC_ILL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ILL_3_1", 0, credsIssuerConfig) + Test_TC_IDM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100694,7 +101433,7 @@ class Test_TC_ILL_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ILL_3_1Suite() {} + ~Test_TC_IDM_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100738,10 +101477,10 @@ class Test_TC_ILL_3_1Suite : public TestCommand } }; -class Test_TC_IDM_1_1Suite : public TestCommand +class Test_TC_IDM_2_1Suite : public TestCommand { public: - Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) + Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100749,7 +101488,7 @@ class Test_TC_IDM_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_1_1Suite() {} + ~Test_TC_IDM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100793,10 +101532,10 @@ class Test_TC_IDM_1_1Suite : public TestCommand } }; -class Test_TC_IDM_1_2Suite : public TestCommand +class Test_TC_IDM_2_2Suite : public TestCommand { public: - Test_TC_IDM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_2", 0, credsIssuerConfig) + Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100804,7 +101543,7 @@ class Test_TC_IDM_1_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_1_2Suite() {} + ~Test_TC_IDM_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100848,10 +101587,10 @@ class Test_TC_IDM_1_2Suite : public TestCommand } }; -class Test_TC_IDM_2_1Suite : public TestCommand +class Test_TC_IDM_3_1Suite : public TestCommand { public: - Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) + Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100859,7 +101598,7 @@ class Test_TC_IDM_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_1Suite() {} + ~Test_TC_IDM_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100903,10 +101642,10 @@ class Test_TC_IDM_2_1Suite : public TestCommand } }; -class Test_TC_IDM_2_2Suite : public TestCommand +class Test_TC_IDM_3_2Suite : public TestCommand { public: - Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) + Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100914,7 +101653,7 @@ class Test_TC_IDM_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_2Suite() {} + ~Test_TC_IDM_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100958,10 +101697,10 @@ class Test_TC_IDM_2_2Suite : public TestCommand } }; -class Test_TC_IDM_3_1Suite : public TestCommand +class Test_TC_IDM_4_1Suite : public TestCommand { public: - Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) + Test_TC_IDM_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100969,7 +101708,7 @@ class Test_TC_IDM_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_3_1Suite() {} + ~Test_TC_IDM_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101013,10 +101752,10 @@ class Test_TC_IDM_3_1Suite : public TestCommand } }; -class Test_TC_IDM_3_2Suite : public TestCommand +class Test_TC_IDM_4_2Suite : public TestCommand { public: - Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_2", 0, credsIssuerConfig) + Test_TC_IDM_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101024,7 +101763,7 @@ class Test_TC_IDM_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_3_2Suite() {} + ~Test_TC_IDM_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101068,10 +101807,10 @@ class Test_TC_IDM_3_2Suite : public TestCommand } }; -class Test_TC_IDM_4_1Suite : public TestCommand +class Test_TC_IDM_4_3Suite : public TestCommand { public: - Test_TC_IDM_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_1", 0, credsIssuerConfig) + Test_TC_IDM_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101079,7 +101818,7 @@ class Test_TC_IDM_4_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_1Suite() {} + ~Test_TC_IDM_4_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101123,10 +101862,10 @@ class Test_TC_IDM_4_1Suite : public TestCommand } }; -class Test_TC_IDM_4_2Suite : public TestCommand +class Test_TC_IDM_4_4Suite : public TestCommand { public: - Test_TC_IDM_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_2", 0, credsIssuerConfig) + Test_TC_IDM_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101134,7 +101873,7 @@ class Test_TC_IDM_4_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_2Suite() {} + ~Test_TC_IDM_4_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101178,10 +101917,10 @@ class Test_TC_IDM_4_2Suite : public TestCommand } }; -class Test_TC_IDM_4_3Suite : public TestCommand +class Test_TC_IDM_5_1Suite : public TestCommand { public: - Test_TC_IDM_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_3", 0, credsIssuerConfig) + Test_TC_IDM_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101189,7 +101928,7 @@ class Test_TC_IDM_4_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_3Suite() {} + ~Test_TC_IDM_5_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101233,10 +101972,10 @@ class Test_TC_IDM_4_3Suite : public TestCommand } }; -class Test_TC_IDM_4_4Suite : public TestCommand +class Test_TC_IDM_5_2Suite : public TestCommand { public: - Test_TC_IDM_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_4", 0, credsIssuerConfig) + Test_TC_IDM_5_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101244,7 +101983,7 @@ class Test_TC_IDM_4_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_4Suite() {} + ~Test_TC_IDM_5_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101288,10 +102027,10 @@ class Test_TC_IDM_4_4Suite : public TestCommand } }; -class Test_TC_IDM_5_1Suite : public TestCommand +class Test_TC_IDM_6_1Suite : public TestCommand { public: - Test_TC_IDM_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_1", 0, credsIssuerConfig) + Test_TC_IDM_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101299,7 +102038,7 @@ class Test_TC_IDM_5_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_5_1Suite() {} + ~Test_TC_IDM_6_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101343,10 +102082,10 @@ class Test_TC_IDM_5_1Suite : public TestCommand } }; -class Test_TC_IDM_5_2Suite : public TestCommand +class Test_TC_IDM_6_2Suite : public TestCommand { public: - Test_TC_IDM_5_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_2", 0, credsIssuerConfig) + Test_TC_IDM_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101354,7 +102093,7 @@ class Test_TC_IDM_5_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_5_2Suite() {} + ~Test_TC_IDM_6_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101398,10 +102137,10 @@ class Test_TC_IDM_5_2Suite : public TestCommand } }; -class Test_TC_IDM_6_1Suite : public TestCommand +class Test_TC_IDM_6_3Suite : public TestCommand { public: - Test_TC_IDM_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_1", 0, credsIssuerConfig) + Test_TC_IDM_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101409,7 +102148,7 @@ class Test_TC_IDM_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_1Suite() {} + ~Test_TC_IDM_6_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101453,10 +102192,10 @@ class Test_TC_IDM_6_1Suite : public TestCommand } }; -class Test_TC_IDM_6_2Suite : public TestCommand +class Test_TC_IDM_6_4Suite : public TestCommand { public: - Test_TC_IDM_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_2", 0, credsIssuerConfig) + Test_TC_IDM_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101464,7 +102203,7 @@ class Test_TC_IDM_6_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_2Suite() {} + ~Test_TC_IDM_6_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101508,10 +102247,10 @@ class Test_TC_IDM_6_2Suite : public TestCommand } }; -class Test_TC_IDM_6_3Suite : public TestCommand +class Test_TC_IDM_7_1Suite : public TestCommand { public: - Test_TC_IDM_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_3", 0, credsIssuerConfig) + Test_TC_IDM_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_7_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101519,7 +102258,7 @@ class Test_TC_IDM_6_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_3Suite() {} + ~Test_TC_IDM_7_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101563,10 +102302,10 @@ class Test_TC_IDM_6_3Suite : public TestCommand } }; -class Test_TC_IDM_6_4Suite : public TestCommand +class Test_TC_IDM_8_1Suite : public TestCommand { public: - Test_TC_IDM_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_4", 0, credsIssuerConfig) + Test_TC_IDM_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_8_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101574,7 +102313,7 @@ class Test_TC_IDM_6_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_4Suite() {} + ~Test_TC_IDM_8_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101618,10 +102357,11 @@ class Test_TC_IDM_6_4Suite : public TestCommand } }; -class Test_TC_IDM_7_1Suite : public TestCommand +class Test_TC_LOWPOWER_2_2Suite : public TestCommand { public: - Test_TC_IDM_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_7_1", 0, credsIssuerConfig) + Test_TC_LOWPOWER_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_LOWPOWER_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101629,118 +102369,7 @@ class Test_TC_IDM_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_7_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_IDM_8_1Suite : public TestCommand -{ -public: - Test_TC_IDM_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_8_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_IDM_8_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_LOWPOWER_2_2Suite : public TestCommand -{ -public: - Test_TC_LOWPOWER_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_LOWPOWER_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_LOWPOWER_2_2Suite() {} + ~Test_TC_LOWPOWER_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -103014,6 +103643,61 @@ class Test_TC_ALOGIN_12_2Suite : public TestCommand } }; +class Test_TC_TGTNAV_8_2Suite : public TestCommand +{ +public: + Test_TC_TGTNAV_8_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_8_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TGTNAV_8_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_CADMIN_1_1Suite : public TestCommand { public: @@ -103469,7 +104153,6 @@ class Test_TC_CADMIN_1_16Suite : public TestCommand AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("payload", &mPayload); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } @@ -103487,7 +104170,6 @@ class Test_TC_CADMIN_1_16Suite : public TestCommand chip::Optional mNodeId3; chip::Optional mEndpoint; chip::Optional mWaitAfterCommissioning; - chip::Optional mDiscriminator; chip::Optional mPayload; chip::Optional mTimeout; @@ -104159,181 +104841,179 @@ class Test_TC_CADMIN_1_21Suite : public TestCommand AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); } ~Test_TC_CADMIN_1_21Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(950)); } +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; + return FactoryReset(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = + chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE using BCM"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 900U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 4: { + LogStep(4, "Wait for commissioning Window to 901 seconds"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 901000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 901U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 7: { + LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_22Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_22Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_22", 10, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); + AddArgument("PakeVerifier", &mPakeVerifier); + } + + ~Test_TC_CADMIN_1_22Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(950)); } + private: chip::Optional mNodeId; chip::Optional mTimeout; chip::Optional mEndpoint; chip::Optional mDiscriminator; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; - return FactoryReset(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = - chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 2: { - LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE using BCM"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 900U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 4: { - LogStep(4, "Wait for commissioning Window to 901 seconds"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 901000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 5: { - LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - case 6: { - LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 901U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 7: { - LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CADMIN_1_22Suite : public TestCommand -{ -public: - Test_TC_CADMIN_1_22Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_22", 10, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); - AddArgument("PakeVerifier", &mPakeVerifier); - } - - ~Test_TC_CADMIN_1_22Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(950)); } - -private: - chip::Optional mNodeId; - chip::Optional mTimeout; - chip::Optional mEndpoint; - chip::Optional mDiscriminator; - chip::Optional mPakeVerifier; + chip::Optional mPakeVerifier; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -104590,7 +105270,6 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("payload", &mPayload); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); } @@ -104604,7 +105283,6 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand chip::Optional mTimeout; chip::Optional mNodeId2; chip::Optional mEndpoint; - chip::Optional mDiscriminator; chip::Optional mPayload; chip::Optional mWaitAfterCommissioning; @@ -105110,7 +105788,6 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("payload", &mPayload); } @@ -105126,7 +105803,6 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand chip::Optional mNodeId3; chip::Optional mEndpoint; chip::Optional mWaitAfterCommissioning; - chip::Optional mDiscriminator; chip::Optional mPayload; uint8_t TH2FabricIndex; @@ -105542,7 +106218,6 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("correctPayload", &mCorrectPayload); AddArgument("incorrectSetupCodePayload", &mIncorrectSetupCodePayload); } @@ -105559,7 +106234,6 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand chip::Optional mNodeId3; chip::Optional mEndpoint; chip::Optional mWaitAfterCommissioning; - chip::Optional mDiscriminator; chip::Optional mCorrectPayload; chip::Optional mIncorrectSetupCodePayload; @@ -106085,181 +106759,179 @@ class Test_TC_CADMIN_1_23Suite : public TestCommand AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); } ~Test_TC_CADMIN_1_23Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; + return FactoryReset(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = + chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 180U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 4: { + LogStep(4, "Wait for commissioning Window to 181 seconds"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 181000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 179U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 7: { + LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_24Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_24Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_24", 10, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); + AddArgument("PakeVerifier", &mPakeVerifier); + } + + ~Test_TC_CADMIN_1_24Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } + private: chip::Optional mNodeId; chip::Optional mTimeout; chip::Optional mEndpoint; chip::Optional mDiscriminator; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; - return FactoryReset(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = - chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 2: { - LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 180U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 4: { - LogStep(4, "Wait for commissioning Window to 181 seconds"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 181000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 5: { - LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - case 6: { - LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 179U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 7: { - LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CADMIN_1_24Suite : public TestCommand -{ -public: - Test_TC_CADMIN_1_24Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_24", 10, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); - AddArgument("PakeVerifier", &mPakeVerifier); - } - - ~Test_TC_CADMIN_1_24Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } - -private: - chip::Optional mNodeId; - chip::Optional mTimeout; - chip::Optional mEndpoint; - chip::Optional mDiscriminator; - chip::Optional mPakeVerifier; + chip::Optional mPakeVerifier; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -107277,835 +107949,10 @@ class Test_TC_SU_2_6Suite : public TestCommand } }; -class Test_TC_SU_2_7Suite : public TestCommand -{ -public: - Test_TC_SU_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_7", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_2_7Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_2_8Suite : public TestCommand -{ -public: - Test_TC_SU_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_8", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_2_8Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_1Suite : public TestCommand -{ -public: - Test_TC_SU_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_2Suite : public TestCommand -{ -public: - Test_TC_SU_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_3Suite : public TestCommand -{ -public: - Test_TC_SU_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_4Suite : public TestCommand -{ -public: - Test_TC_SU_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_4_1Suite : public TestCommand -{ -public: - Test_TC_SU_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_4_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_4_2Suite : public TestCommand -{ -public: - Test_TC_SU_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_4_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_PSCFG_2_2Suite : public TestCommand -{ -public: - Test_TC_PSCFG_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_PSCFG_2_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_1Suite : public TestCommand -{ -public: - Test_TC_SC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_2Suite : public TestCommand -{ -public: - Test_TC_SC_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_3Suite : public TestCommand -{ -public: - Test_TC_SC_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_4Suite : public TestCommand -{ -public: - Test_TC_SC_1_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_2_1Suite : public TestCommand -{ -public: - Test_TC_SC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_2_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_2_2Suite : public TestCommand -{ -public: - Test_TC_SC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_2_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_2_3Suite : public TestCommand +class Test_TC_SU_2_7Suite : public TestCommand { public: - Test_TC_SC_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_3", 0, credsIssuerConfig) + Test_TC_SU_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_7", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108113,7 +107960,7 @@ class Test_TC_SC_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_2_3Suite() {} + ~Test_TC_SU_2_7Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108157,10 +108004,10 @@ class Test_TC_SC_2_3Suite : public TestCommand } }; -class Test_TC_SC_2_4Suite : public TestCommand +class Test_TC_SU_2_8Suite : public TestCommand { public: - Test_TC_SC_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_4", 0, credsIssuerConfig) + Test_TC_SU_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_8", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108168,7 +108015,7 @@ class Test_TC_SC_2_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_2_4Suite() {} + ~Test_TC_SU_2_8Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108212,10 +108059,10 @@ class Test_TC_SC_2_4Suite : public TestCommand } }; -class Test_TC_SC_3_1Suite : public TestCommand +class Test_TC_SU_3_1Suite : public TestCommand { public: - Test_TC_SC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_1", 0, credsIssuerConfig) + Test_TC_SU_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108223,7 +108070,7 @@ class Test_TC_SC_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_1Suite() {} + ~Test_TC_SU_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108267,10 +108114,10 @@ class Test_TC_SC_3_1Suite : public TestCommand } }; -class Test_TC_SC_3_2Suite : public TestCommand +class Test_TC_SU_3_2Suite : public TestCommand { public: - Test_TC_SC_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_2", 0, credsIssuerConfig) + Test_TC_SU_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108278,7 +108125,7 @@ class Test_TC_SC_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_2Suite() {} + ~Test_TC_SU_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108322,10 +108169,10 @@ class Test_TC_SC_3_2Suite : public TestCommand } }; -class Test_TC_SC_3_3Suite : public TestCommand +class Test_TC_SU_3_3Suite : public TestCommand { public: - Test_TC_SC_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_3", 0, credsIssuerConfig) + Test_TC_SU_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108333,7 +108180,7 @@ class Test_TC_SC_3_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_3Suite() {} + ~Test_TC_SU_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108377,10 +108224,10 @@ class Test_TC_SC_3_3Suite : public TestCommand } }; -class Test_TC_SC_3_4Suite : public TestCommand +class Test_TC_SU_3_4Suite : public TestCommand { public: - Test_TC_SC_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_4", 0, credsIssuerConfig) + Test_TC_SU_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108388,7 +108235,7 @@ class Test_TC_SC_3_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_4Suite() {} + ~Test_TC_SU_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108432,10 +108279,10 @@ class Test_TC_SC_3_4Suite : public TestCommand } }; -class Test_TC_SC_4_1Suite : public TestCommand +class Test_TC_SU_4_1Suite : public TestCommand { public: - Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 0, credsIssuerConfig) + Test_TC_SU_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108443,7 +108290,7 @@ class Test_TC_SC_4_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_1Suite() {} + ~Test_TC_SU_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108487,10 +108334,10 @@ class Test_TC_SC_4_1Suite : public TestCommand } }; -class Test_TC_SC_4_2Suite : public TestCommand +class Test_TC_SU_4_2Suite : public TestCommand { public: - Test_TC_SC_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_2", 0, credsIssuerConfig) + Test_TC_SU_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108498,7 +108345,7 @@ class Test_TC_SC_4_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_2Suite() {} + ~Test_TC_SU_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108542,10 +108389,10 @@ class Test_TC_SC_4_2Suite : public TestCommand } }; -class Test_TC_SC_4_3Suite : public TestCommand +class Test_TC_PSCFG_2_2Suite : public TestCommand { public: - Test_TC_SC_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_3", 0, credsIssuerConfig) + Test_TC_PSCFG_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108553,7 +108400,7 @@ class Test_TC_SC_4_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_3Suite() {} + ~Test_TC_PSCFG_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108597,10 +108444,10 @@ class Test_TC_SC_4_3Suite : public TestCommand } }; -class Test_TC_SC_4_4Suite : public TestCommand +class Test_TC_SC_1_1Suite : public TestCommand { public: - Test_TC_SC_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_4", 0, credsIssuerConfig) + Test_TC_SC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108608,7 +108455,7 @@ class Test_TC_SC_4_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_4Suite() {} + ~Test_TC_SC_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108652,10 +108499,10 @@ class Test_TC_SC_4_4Suite : public TestCommand } }; -class Test_TC_SC_4_5Suite : public TestCommand +class Test_TC_SC_1_2Suite : public TestCommand { public: - Test_TC_SC_4_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_5", 0, credsIssuerConfig) + Test_TC_SC_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108663,7 +108510,7 @@ class Test_TC_SC_4_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_5Suite() {} + ~Test_TC_SC_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108707,10 +108554,10 @@ class Test_TC_SC_4_5Suite : public TestCommand } }; -class Test_TC_SC_4_6Suite : public TestCommand +class Test_TC_SC_1_3Suite : public TestCommand { public: - Test_TC_SC_4_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_6", 0, credsIssuerConfig) + Test_TC_SC_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108718,7 +108565,7 @@ class Test_TC_SC_4_6Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_6Suite() {} + ~Test_TC_SC_1_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108762,10 +108609,10 @@ class Test_TC_SC_4_6Suite : public TestCommand } }; -class Test_TC_SC_4_7Suite : public TestCommand +class Test_TC_SC_1_4Suite : public TestCommand { public: - Test_TC_SC_4_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_7", 0, credsIssuerConfig) + Test_TC_SC_1_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108773,7 +108620,7 @@ class Test_TC_SC_4_7Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_7Suite() {} + ~Test_TC_SC_1_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108817,10 +108664,10 @@ class Test_TC_SC_4_7Suite : public TestCommand } }; -class Test_TC_SC_4_8Suite : public TestCommand +class Test_TC_SC_2_1Suite : public TestCommand { public: - Test_TC_SC_4_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_8", 0, credsIssuerConfig) + Test_TC_SC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108828,7 +108675,7 @@ class Test_TC_SC_4_8Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_8Suite() {} + ~Test_TC_SC_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108872,10 +108719,10 @@ class Test_TC_SC_4_8Suite : public TestCommand } }; -class Test_TC_SC_4_9Suite : public TestCommand +class Test_TC_SC_2_2Suite : public TestCommand { public: - Test_TC_SC_4_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_9", 0, credsIssuerConfig) + Test_TC_SC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108883,7 +108730,227 @@ class Test_TC_SC_4_9Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_9Suite() {} + ~Test_TC_SC_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_2_3Suite : public TestCommand +{ +public: + Test_TC_SC_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_2_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_2_4Suite : public TestCommand +{ +public: + Test_TC_SC_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_4", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_2_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_3_1Suite : public TestCommand +{ +public: + Test_TC_SC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_3_2Suite : public TestCommand +{ +public: + Test_TC_SC_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108927,10 +108994,10 @@ class Test_TC_SC_4_9Suite : public TestCommand } }; -class Test_TC_SC_4_10Suite : public TestCommand +class Test_TC_SC_3_3Suite : public TestCommand { public: - Test_TC_SC_4_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_10", 0, credsIssuerConfig) + Test_TC_SC_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108938,7 +109005,7 @@ class Test_TC_SC_4_10Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_10Suite() {} + ~Test_TC_SC_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108982,10 +109049,10 @@ class Test_TC_SC_4_10Suite : public TestCommand } }; -class Test_TC_SC_5_3Suite : public TestCommand +class Test_TC_SC_3_4Suite : public TestCommand { public: - Test_TC_SC_5_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_3", 0, credsIssuerConfig) + Test_TC_SC_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108993,7 +109060,7 @@ class Test_TC_SC_5_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_5_3Suite() {} + ~Test_TC_SC_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109037,10 +109104,10 @@ class Test_TC_SC_5_3Suite : public TestCommand } }; -class Test_TC_SC_6_1Suite : public TestCommand +class Test_TC_SC_4_1Suite : public TestCommand { public: - Test_TC_SC_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_6_1", 0, credsIssuerConfig) + Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109048,7 +109115,7 @@ class Test_TC_SC_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_6_1Suite() {} + ~Test_TC_SC_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109092,10 +109159,10 @@ class Test_TC_SC_6_1Suite : public TestCommand } }; -class Test_TC_DGSW_2_1Suite : public TestCommand +class Test_TC_SC_4_2Suite : public TestCommand { public: - Test_TC_DGSW_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_1", 0, credsIssuerConfig) + Test_TC_SC_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109103,7 +109170,7 @@ class Test_TC_DGSW_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_2_1Suite() {} + ~Test_TC_SC_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109147,10 +109214,10 @@ class Test_TC_DGSW_2_1Suite : public TestCommand } }; -class Test_TC_DGSW_2_2Suite : public TestCommand +class Test_TC_SC_4_3Suite : public TestCommand { public: - Test_TC_DGSW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_2", 0, credsIssuerConfig) + Test_TC_SC_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109158,7 +109225,7 @@ class Test_TC_DGSW_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_2_2Suite() {} + ~Test_TC_SC_4_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109202,10 +109269,10 @@ class Test_TC_DGSW_2_2Suite : public TestCommand } }; -class Test_TC_DGSW_2_3Suite : public TestCommand +class Test_TC_SC_4_4Suite : public TestCommand { public: - Test_TC_DGSW_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_3", 0, credsIssuerConfig) + Test_TC_SC_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109213,7 +109280,7 @@ class Test_TC_DGSW_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_2_3Suite() {} + ~Test_TC_SC_4_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109257,10 +109324,10 @@ class Test_TC_DGSW_2_3Suite : public TestCommand } }; -class Test_TC_DGSW_3_2Suite : public TestCommand +class Test_TC_SC_4_5Suite : public TestCommand { public: - Test_TC_DGSW_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_3_2", 0, credsIssuerConfig) + Test_TC_SC_4_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_5", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109268,7 +109335,7 @@ class Test_TC_DGSW_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_3_2Suite() {} + ~Test_TC_SC_4_5Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109312,10 +109379,10 @@ class Test_TC_DGSW_3_2Suite : public TestCommand } }; -class Test_TC_DGWIFI_2_2Suite : public TestCommand +class Test_TC_SC_4_6Suite : public TestCommand { public: - Test_TC_DGWIFI_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_2_2", 0, credsIssuerConfig) + Test_TC_SC_4_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_6", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109323,7 +109390,7 @@ class Test_TC_DGWIFI_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGWIFI_2_2Suite() {} + ~Test_TC_SC_4_6Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109367,10 +109434,10 @@ class Test_TC_DGWIFI_2_2Suite : public TestCommand } }; -class Test_TC_DGWIFI_3_2Suite : public TestCommand +class Test_TC_SC_4_7Suite : public TestCommand { public: - Test_TC_DGWIFI_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_3_2", 0, credsIssuerConfig) + Test_TC_SC_4_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_7", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109378,7 +109445,7 @@ class Test_TC_DGWIFI_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGWIFI_3_2Suite() {} + ~Test_TC_SC_4_7Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109422,10 +109489,10 @@ class Test_TC_DGWIFI_3_2Suite : public TestCommand } }; -class Test_TC_WNCV_6_1Suite : public TestCommand +class Test_TC_SC_4_8Suite : public TestCommand { public: - Test_TC_WNCV_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_6_1", 0, credsIssuerConfig) + Test_TC_SC_4_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_8", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109433,7 +109500,7 @@ class Test_TC_WNCV_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_WNCV_6_1Suite() {} + ~Test_TC_SC_4_8Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109477,10 +109544,10 @@ class Test_TC_WNCV_6_1Suite : public TestCommand } }; -class Test_TC_WNCV_7_1Suite : public TestCommand +class Test_TC_SC_4_9Suite : public TestCommand { public: - Test_TC_WNCV_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_7_1", 0, credsIssuerConfig) + Test_TC_SC_4_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_9", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109488,7 +109555,7 @@ class Test_TC_WNCV_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_WNCV_7_1Suite() {} + ~Test_TC_SC_4_9Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109532,10 +109599,10 @@ class Test_TC_WNCV_7_1Suite : public TestCommand } }; -class Test_TC_FLW_2_2Suite : public TestCommand +class Test_TC_SC_4_10Suite : public TestCommand { public: - Test_TC_FLW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_2_2", 4, credsIssuerConfig) + Test_TC_SC_4_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_10", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109543,7 +109610,7 @@ class Test_TC_FLW_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_FLW_2_2Suite() {} + ~Test_TC_SC_4_10Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109556,8 +109623,6 @@ class Test_TC_FLW_2_2Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; - chip::app::DataModel::Nullable ValueBeforeChange; - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -109570,36 +109635,6 @@ class Test_TC_FLW_2_2Suite : public TestCommand switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - ValueBeforeChange = value; - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - VerifyOrReturn(CheckConstraintNotValue("value", value, ValueBeforeChange)); - } - break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -109614,45 +109649,15 @@ class Test_TC_FLW_2_2Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - { - case 0: { - LogStep(0, "Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Read the mandatory attribute: MeasuredValue"); - VerifyOrDo(!ShouldSkip("FLW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - case 2: { - LogStep(2, "operate on DUT to change the flow significantly"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "Read the mandatory attribute: MeasuredValue"); - VerifyOrDo(!ShouldSkip("FLW.S.A0000 && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - } + {} return CHIP_NO_ERROR; } }; -class Test_TC_OCC_3_1Suite : public TestCommand +class Test_TC_SC_5_3Suite : public TestCommand { public: - Test_TC_OCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_3_1", 4, credsIssuerConfig) + Test_TC_SC_5_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109660,7 +109665,7 @@ class Test_TC_OCC_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_OCC_3_1Suite() {} + ~Test_TC_SC_5_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109673,8 +109678,6 @@ class Test_TC_OCC_3_1Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; - chip::BitMask OccupancyValue; - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -109687,30 +109690,6 @@ class Test_TC_OCC_3_1Suite : public TestCommand switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::BitMask value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - OccupancyValue = value; - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::BitMask value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintNotValue("value", value, OccupancyValue)); - } - break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -109725,45 +109704,70 @@ class Test_TC_OCC_3_1Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_6_1Suite : public TestCommand +{ +public: + Test_TC_SC_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_6_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_6_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) { - case 0: { - LogStep(0, "Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Reads Occupancy attribute from DUT"); - VerifyOrDo(!ShouldSkip("OCC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, - true, chip::NullOptional); - } - case 2: { - LogStep(2, "Operate on DUT to change the occupancy status"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "Reads back Occupancy attribute from DUT after few seconds"); - VerifyOrDo(!ShouldSkip("OCC.S.A0000 && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, - true, chip::NullOptional); + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} return CHIP_NO_ERROR; } }; -class Test_TC_PS_2_2Suite : public TestCommand +class Test_TC_DGSW_2_1Suite : public TestCommand { public: - Test_TC_PS_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_2_2", 0, credsIssuerConfig) + Test_TC_DGSW_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109771,7 +109775,7 @@ class Test_TC_PS_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_PS_2_2Suite() {} + ~Test_TC_DGSW_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109815,10 +109819,10 @@ class Test_TC_PS_2_2Suite : public TestCommand } }; -class Test_TC_BOOL_2_2Suite : public TestCommand +class Test_TC_DGSW_2_2Suite : public TestCommand { public: - Test_TC_BOOL_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_2_2", 0, credsIssuerConfig) + Test_TC_DGSW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109826,7 +109830,7 @@ class Test_TC_BOOL_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BOOL_2_2Suite() {} + ~Test_TC_DGSW_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109870,10 +109874,10 @@ class Test_TC_BOOL_2_2Suite : public TestCommand } }; -class Test_TC_CC_2_2Suite : public TestCommand +class Test_TC_DGSW_2_3Suite : public TestCommand { public: - Test_TC_CC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_2_2", 0, credsIssuerConfig) + Test_TC_DGSW_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109881,7 +109885,7 @@ class Test_TC_CC_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_2_2Suite() {} + ~Test_TC_DGSW_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109925,10 +109929,10 @@ class Test_TC_CC_2_2Suite : public TestCommand } }; -class Test_TC_CC_3_4Suite : public TestCommand +class Test_TC_DGWIFI_2_2Suite : public TestCommand { public: - Test_TC_CC_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_4", 0, credsIssuerConfig) + Test_TC_DGWIFI_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109936,7 +109940,7 @@ class Test_TC_CC_3_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_3_4Suite() {} + ~Test_TC_DGWIFI_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109980,10 +109984,10 @@ class Test_TC_CC_3_4Suite : public TestCommand } }; -class Test_TC_CC_4_5Suite : public TestCommand +class Test_TC_FLW_2_2Suite : public TestCommand { public: - Test_TC_CC_4_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_4_5", 0, credsIssuerConfig) + Test_TC_FLW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_2_2", 4, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109991,7 +109995,7 @@ class Test_TC_CC_4_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_4_5Suite() {} + ~Test_TC_FLW_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110004,6 +110008,8 @@ class Test_TC_CC_4_5Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + chip::app::DataModel::Nullable ValueBeforeChange; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -110016,6 +110022,36 @@ class Test_TC_CC_4_5Suite : public TestCommand switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + ValueBeforeChange = value; + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + VerifyOrReturn(CheckConstraintNotValue("value", value, ValueBeforeChange)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -110030,15 +110066,45 @@ class Test_TC_CC_4_5Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - {} + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read the mandatory attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "Operate on device to change the flow significantly"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "Read the mandatory attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.S.A0000 && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } + } return CHIP_NO_ERROR; } }; -class Test_TC_CC_5_4Suite : public TestCommand +class Test_TC_OCC_3_1Suite : public TestCommand { public: - Test_TC_CC_5_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_5_4", 0, credsIssuerConfig) + Test_TC_OCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_3_1", 4, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110046,7 +110112,7 @@ class Test_TC_CC_5_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_5_4Suite() {} + ~Test_TC_OCC_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110059,6 +110125,8 @@ class Test_TC_CC_5_4Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + chip::BitMask OccupancyValue; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -110071,6 +110139,30 @@ class Test_TC_CC_5_4Suite : public TestCommand switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + OccupancyValue = value; + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintNotValue("value", value, OccupancyValue)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -110085,15 +110177,45 @@ class Test_TC_CC_5_4Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - {} + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Reads Occupancy attribute from DUT"); + VerifyOrDo(!ShouldSkip("OCC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "Operate on DUT to change the occupancy status"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "Reads back Occupancy attribute from DUT after few seconds"); + VerifyOrDo(!ShouldSkip("OCC.S.A0000 && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); + } + } return CHIP_NO_ERROR; } }; -class Test_TC_CC_6_4Suite : public TestCommand +class Test_TC_PS_2_2Suite : public TestCommand { public: - Test_TC_CC_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_4", 0, credsIssuerConfig) + Test_TC_PS_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110101,7 +110223,7 @@ class Test_TC_CC_6_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_6_4Suite() {} + ~Test_TC_PS_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110145,10 +110267,10 @@ class Test_TC_CC_6_4Suite : public TestCommand } }; -class Test_TC_CC_7_5Suite : public TestCommand +class Test_TC_BOOL_2_2Suite : public TestCommand { public: - Test_TC_CC_7_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_5", 0, credsIssuerConfig) + Test_TC_BOOL_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110156,7 +110278,7 @@ class Test_TC_CC_7_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_7_5Suite() {} + ~Test_TC_BOOL_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110200,10 +110322,10 @@ class Test_TC_CC_7_5Suite : public TestCommand } }; -class Test_TC_CC_9_4Suite : public TestCommand +class Test_TC_CC_2_2Suite : public TestCommand { public: - Test_TC_CC_9_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_9_4", 0, credsIssuerConfig) + Test_TC_CC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110211,7 +110333,7 @@ class Test_TC_CC_9_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_9_4Suite() {} + ~Test_TC_CC_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -114482,61 +114604,6 @@ class Test_TC_LCFG_2_1Suite : public TestCommand } }; -class Test_TC_LVL_2_3Suite : public TestCommand -{ -public: - Test_TC_LVL_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_2_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_LVL_2_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_LVL_7_1Suite : public TestCommand { public: @@ -116478,116 +116545,6 @@ class Test_TC_OO_2_3Suite : public TestCommand } }; -class Test_TC_OO_3_1Suite : public TestCommand -{ -public: - Test_TC_OO_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OO_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_OO_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_OO_3_2Suite : public TestCommand -{ -public: - Test_TC_OO_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OO_3_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_OO_3_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_RH_2_2Suite : public TestCommand { public: @@ -116994,61 +116951,6 @@ class Test_TC_TMP_2_2Suite : public TestCommand } }; -class Test_TC_TMP_3_1Suite : public TestCommand -{ -public: - Test_TC_TMP_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TMP_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_TMP_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_TSTAT_3_1Suite : public TestCommand { public: @@ -117159,61 +117061,6 @@ class Test_TC_TSTAT_3_2Suite : public TestCommand } }; -class Test_TC_TSUIC_3_1Suite : public TestCommand -{ -public: - Test_TC_TSUIC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSUIC_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_TSUIC_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_DGTHREAD_2_5Suite : public TestCommand { public: @@ -117326,174 +117173,6 @@ class Test_TC_DGTHREAD_3_1Suite : public TestCommand } }; -class Test_TC_DGTHREAD_3_2Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGTHREAD_3_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DGTHREAD_3_3Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGTHREAD_3_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DGTHREAD_3_4Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGTHREAD_3_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_ACT_2_1Suite : public TestCommand { public: @@ -118488,61 +118167,6 @@ class Test_TC_S_3_1Suite : public TestCommand } }; -class Test_TC_PCC_3_1Suite : public TestCommand -{ -public: - Test_TC_PCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PCC_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_PCC_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_ACL_2_5Suite : public TestCommand { public: @@ -118912,7 +118536,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119159,13 +118782,11 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119207,6 +118828,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119282,22 +118904,12 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119310,25 +118922,17 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119342,7 +118946,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h index b104e9c8a0430b..0c5f225c2dd691 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -106,7 +106,6 @@ class TestList : public Command { printf("Test_TC_MEDIAPLAYBACK_1_7\n"); printf("Test_TC_AUDIOOUTPUT_1_8\n"); printf("Test_TC_TGTNAV_1_9\n"); - printf("Test_TC_TGTNAV_8_2\n"); printf("Test_TC_APBSC_1_10\n"); printf("Test_TC_CONTENTLAUNCHER_1_11\n"); printf("Test_TC_ALOGIN_1_12\n"); @@ -8316,256 +8315,496 @@ class Test_TC_CC_1_1 : public TestCommandBridge { err = TestReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_16(); break; case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional attribute(NumberOfPrimaries) in AttributeList\n"); + if (ShouldSkip("CC.S.A0010")) { NextTest(); return; } - err = TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_17(); + err = TestReadTheOptionalAttributeNumberOfPrimariesInAttributeList_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional attribute(ColorLoopActive) in AttributeList\n"); - if (ShouldSkip("CC.S.A4002")) { + ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional attribute(Primary1X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0011")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopActiveInAttributeList_18(); + err = TestReadTheOptionalAttributePrimary1XInAttributeList_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Read the optional attribute(ColorLoopDirection) in AttributeList\n"); - if (ShouldSkip("CC.S.A4003")) { + ChipLogProgress(chipTool, " ***** Test Step 19 : Read the optional attribute(Primary1Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0012")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_19(); + err = TestReadTheOptionalAttributePrimary1YInAttributeList_19(); break; case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Read the optional attribute(ColorLoopTime) in AttributeList\n"); - if (ShouldSkip("CC.S.A4004")) { + ChipLogProgress(chipTool, " ***** Test Step 20 : Read the optional attribute(Primary1Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0013")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopTimeInAttributeList_20(); + err = TestReadTheOptionalAttributePrimary1IntensityInAttributeList_20(); break; case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : Read the optional attribute(Primary2X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0015")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary2XInAttributeList_21(); + break; + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Read the optional attribute(Primary2Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0016")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary2YInAttributeList_22(); + break; + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : Read the optional attribute(Primary2Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0017")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary2IntensityInAttributeList_23(); + break; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : Read the optional attribute(Primary3X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0019")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary3XInAttributeList_24(); + break; + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : Read the optional attribute(Primary3Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A001a")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary3YInAttributeList_25(); + break; + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : Read the optional attribute(Primary3Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A001b")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary3IntensityInAttributeList_26(); + break; + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : Read the optional attribute(Primary4X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0020")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary4XInAttributeList_27(); + break; + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Read the optional attribute(Primary4Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0021")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary4YInAttributeList_28(); + break; + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : Read the optional attribute(Primary4Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0022")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary4IntensityInAttributeList_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Read the optional attribute(Primary5X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0024")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary5XInAttributeList_30(); + break; + case 31: + ChipLogProgress(chipTool, " ***** Test Step 31 : Read the optional attribute(Primary5Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0025")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary5YInAttributeList_31(); + break; + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Read the optional attribute(Primary5Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0026")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary5IntensityInAttributeList_32(); + break; + case 33: + ChipLogProgress(chipTool, " ***** Test Step 33 : Read the optional attribute(Primary6X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0028")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary6XInAttributeList_33(); + break; + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : Read the optional attribute(Primary6Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0029")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary6YInAttributeList_34(); + break; + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Read the optional attribute(Primary6Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A002a")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary6IntensityInAttributeList_35(); + break; + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : Read the optional attribute(WhitePointX) in AttributeList\n"); + if (ShouldSkip("CC.S.A0030")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeWhitePointXInAttributeList_36(); + break; + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : Read the optional attribute(WhitePointY) in AttributeList\n"); + if (ShouldSkip("CC.S.A0031")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeWhitePointYInAttributeList_37(); + break; + case 38: + ChipLogProgress(chipTool, " ***** Test Step 38 : Read the optional attribute(ColorPointRX) in AttributeList\n"); + if (ShouldSkip("CC.S.A0032")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointRXInAttributeList_38(); + break; + case 39: + ChipLogProgress(chipTool, " ***** Test Step 39 : Read the optional attribute(ColorPointRY) in AttributeList\n"); + if (ShouldSkip("CC.S.A0033")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointRYInAttributeList_39(); + break; + case 40: + ChipLogProgress(chipTool, " ***** Test Step 40 : Read the optional attribute(ColorPointRIntensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0034")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointRIntensityInAttributeList_40(); + break; + case 41: + ChipLogProgress(chipTool, " ***** Test Step 41 : Read the optional attribute(ColorPointGX) in AttributeList\n"); + if (ShouldSkip("CC.S.A0036")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointGXInAttributeList_41(); + break; + case 42: + ChipLogProgress(chipTool, " ***** Test Step 42 : Read the optional attribute(ColorPointGY) in AttributeList\n"); + if (ShouldSkip("CC.S.A0037")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointGYInAttributeList_42(); + break; + case 43: + ChipLogProgress(chipTool, " ***** Test Step 43 : Read the optional attribute(ColorPointGIntensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0038")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointGIntensityInAttributeList_43(); + break; + case 44: + ChipLogProgress(chipTool, " ***** Test Step 44 : Read the optional attribute(ColorPointBX) in AttributeList\n"); + if (ShouldSkip("CC.S.A003a")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointBXInAttributeList_44(); + break; + case 45: + ChipLogProgress(chipTool, " ***** Test Step 45 : Read the optional attribute(ColorPointBY) in AttributeList\n"); + if (ShouldSkip("CC.S.A003b")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointBYInAttributeList_45(); + break; + case 46: + ChipLogProgress(chipTool, " ***** Test Step 46 : Read the optional attribute(ColorPointBIntensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A003c")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointBIntensityInAttributeList_46(); + break; + case 47: + ChipLogProgress(chipTool, " ***** Test Step 47 : Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); + if (ShouldSkip("CC.S.A4000")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_47(); + break; + case 48: + ChipLogProgress(chipTool, " ***** Test Step 48 : Read the optional attribute(ColorLoopActive) in AttributeList\n"); + if (ShouldSkip("CC.S.A4002")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorLoopActiveInAttributeList_48(); + break; + case 49: + ChipLogProgress(chipTool, " ***** Test Step 49 : Read the optional attribute(ColorLoopDirection) in AttributeList\n"); + if (ShouldSkip("CC.S.A4003")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_49(); + break; + case 50: + ChipLogProgress(chipTool, " ***** Test Step 50 : Read the optional attribute(ColorLoopTime) in AttributeList\n"); + if (ShouldSkip("CC.S.A4004")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorLoopTimeInAttributeList_50(); + break; + case 51: ChipLogProgress( - chipTool, " ***** Test Step 21 : Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); + chipTool, " ***** Test Step 51 : Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4005")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_21(); + err = TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_51(); break; - case 22: + case 52: ChipLogProgress( - chipTool, " ***** Test Step 22 : Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); + chipTool, " ***** Test Step 52 : Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4006")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_22(); + err = TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_52(); break; - case 23: + case 53: ChipLogProgress( - chipTool, " ***** Test Step 23 : Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); + chipTool, " ***** Test Step 53 : Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400b")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_23(); + err = TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_53(); break; - case 24: + case 54: ChipLogProgress( - chipTool, " ***** Test Step 24 : Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); + chipTool, " ***** Test Step 54 : Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400c")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_24(); + err = TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_54(); break; - case 25: + case 55: ChipLogProgress( - chipTool, " ***** Test Step 25 : Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); + chipTool, " ***** Test Step 55 : Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400d")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_25(); + err = TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_55(); break; - case 26: + case 56: ChipLogProgress( - chipTool, " ***** Test Step 26 : Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); + chipTool, " ***** Test Step 56 : Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A4010")) { NextTest(); return; } - err = TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_26(); + err = TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_56(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Read the global attribute: EventList\n"); - err = TestReadTheGlobalAttributeEventList_27(); + case 57: + ChipLogProgress(chipTool, " ***** Test Step 57 : Read the global attribute: EventList\n"); + err = TestReadTheGlobalAttributeEventList_57(); break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Read the optional command(MoveToHue) in AcceptedCommandList\n"); + case 58: + ChipLogProgress(chipTool, " ***** Test Step 58 : Read the optional command(MoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C00.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_28(); + err = TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_58(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Read the optional command(MoveHue) in AcceptedCommandList\n"); + case 59: + ChipLogProgress(chipTool, " ***** Test Step 59 : Read the optional command(MoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C01.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveHueInAcceptedCommandList_29(); + err = TestReadTheOptionalCommandMoveHueInAcceptedCommandList_59(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Read the optional command(StepHue) in AcceptedCommandList\n"); + case 60: + ChipLogProgress(chipTool, " ***** Test Step 60 : Read the optional command(StepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C02.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepHueInAcceptedCommandList_30(); + err = TestReadTheOptionalCommandStepHueInAcceptedCommandList_60(); break; - case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); + case 61: + ChipLogProgress(chipTool, " ***** Test Step 61 : Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C03.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_31(); + err = TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_61(); break; - case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Read the optional command(MoveSaturation) in AcceptedCommandList\n"); + case 62: + ChipLogProgress(chipTool, " ***** Test Step 62 : Read the optional command(MoveSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C04.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_32(); + err = TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_62(); break; - case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Read the optional command(StepSaturation) in AcceptedCommandList\n"); + case 63: + ChipLogProgress(chipTool, " ***** Test Step 63 : Read the optional command(StepSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C05.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_33(); + err = TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_63(); break; - case 34: + case 64: ChipLogProgress( - chipTool, " ***** Test Step 34 : Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 64 : Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C06.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_34(); + err = TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_64(); break; - case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Read the optional command(MoveToColor) in AcceptedCommandList\n"); + case 65: + ChipLogProgress(chipTool, " ***** Test Step 65 : Read the optional command(MoveToColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C07.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_35(); + err = TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_65(); break; - case 36: - ChipLogProgress(chipTool, " ***** Test Step 36 : Read the optional command(MoveColor) in AcceptedCommandList\n"); + case 66: + ChipLogProgress(chipTool, " ***** Test Step 66 : Read the optional command(MoveColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C08.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveColorInAcceptedCommandList_36(); + err = TestReadTheOptionalCommandMoveColorInAcceptedCommandList_66(); break; - case 37: - ChipLogProgress(chipTool, " ***** Test Step 37 : Read the optional command(StepColor) in AcceptedCommandList\n"); + case 67: + ChipLogProgress(chipTool, " ***** Test Step 67 : Read the optional command(StepColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C09.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepColorInAcceptedCommandList_37(); + err = TestReadTheOptionalCommandStepColorInAcceptedCommandList_67(); break; - case 38: + case 68: ChipLogProgress( - chipTool, " ***** Test Step 38 : Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 68 : Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C0a.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_38(); + err = TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_68(); break; - case 39: + case 69: ChipLogProgress( - chipTool, " ***** Test Step 39 : Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 69 : Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C40.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_39(); + err = TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_69(); break; - case 40: - ChipLogProgress(chipTool, " ***** Test Step 40 : Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); + case 70: + ChipLogProgress(chipTool, " ***** Test Step 70 : Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C41.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_40(); + err = TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_70(); break; - case 41: - ChipLogProgress(chipTool, " ***** Test Step 41 : Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); + case 71: + ChipLogProgress(chipTool, " ***** Test Step 71 : Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C42.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_41(); + err = TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_71(); break; - case 42: + case 72: ChipLogProgress(chipTool, - " ***** Test Step 42 : Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList\n"); + " ***** Test Step 72 : Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C43.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_42(); + err = TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_72(); break; - case 43: - ChipLogProgress(chipTool, " ***** Test Step 43 : Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); + case 73: + ChipLogProgress(chipTool, " ***** Test Step 73 : Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C44.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_43(); + err = TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_73(); break; - case 44: - ChipLogProgress(chipTool, " ***** Test Step 44 : Read the optional command(StopMoveStep) in AcceptedCommandList\n"); + case 74: + ChipLogProgress(chipTool, " ***** Test Step 74 : Read the optional command(StopMoveStep) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_44(); + err = TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_74(); break; - case 45: + case 75: ChipLogProgress( - chipTool, " ***** Test Step 45 : Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 75 : Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4b.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_45(); + err = TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_75(); break; - case 46: + case 76: ChipLogProgress( - chipTool, " ***** Test Step 46 : Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 76 : Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4c.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_46(); + err = TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_76(); break; - case 47: - ChipLogProgress(chipTool, " ***** Test Step 47 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_47(); + case 77: + ChipLogProgress(chipTool, " ***** Test Step 77 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_77(); break; } @@ -8722,6 +8961,96 @@ class Test_TC_CC_1_1 : public TestCommandBridge { case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 49: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 50: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 51: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 52: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 53: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 54: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 55: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 56: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 57: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 58: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 59: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 60: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 61: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 62: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 63: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 64: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 65: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 66: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 67: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 68: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 69: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 70: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 71: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 72: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 73: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 74: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 75: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 76: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 77: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -8735,7 +9064,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 48; + const uint16_t mTestCount = 78; chip::Optional mNodeId; chip::Optional mCluster; @@ -9091,7 +9420,637 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_17() + CHIP_ERROR TestReadTheOptionalAttributeNumberOfPrimariesInAttributeList_17() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(NumberOfPrimaries) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 16UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary1XInAttributeList_18() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary1X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary1YInAttributeList_19() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary1Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 18UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary1IntensityInAttributeList_20() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary1Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 19UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary2XInAttributeList_21() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary2X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 21UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary2YInAttributeList_22() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary2Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 22UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary2IntensityInAttributeList_23() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary2Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 23UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary3XInAttributeList_24() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary3X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 25UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary3YInAttributeList_25() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary3Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 26UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary3IntensityInAttributeList_26() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary3Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 27UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary4XInAttributeList_27() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary4X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 32UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary4YInAttributeList_28() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary4Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 33UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary4IntensityInAttributeList_29() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary4Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 34UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary5XInAttributeList_30() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary5X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 36UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary5YInAttributeList_31() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary5Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 37UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary5IntensityInAttributeList_32() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary5Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 38UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary6XInAttributeList_33() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary6X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 40UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary6YInAttributeList_34() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary6Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 41UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary6IntensityInAttributeList_35() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary6Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 42UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeWhitePointXInAttributeList_36() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(WhitePointX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 48UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeWhitePointYInAttributeList_37() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(WhitePointY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 49UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointRXInAttributeList_38() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointRX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 50UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointRYInAttributeList_39() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointRY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 51UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointRIntensityInAttributeList_40() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointRIntensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 52UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointGXInAttributeList_41() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointGX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 54UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointGYInAttributeList_42() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointGY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 55UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointGIntensityInAttributeList_43() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointGIntensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 56UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointBXInAttributeList_44() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointBX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 58UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointBYInAttributeList_45() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointBY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 59UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointBIntensityInAttributeList_46() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointBIntensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 60UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_47() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9112,7 +10071,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopActiveInAttributeList_18() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopActiveInAttributeList_48() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9133,7 +10092,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_19() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_49() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9154,7 +10113,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopTimeInAttributeList_20() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopTimeInAttributeList_50() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9175,7 +10134,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_21() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_51() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9196,7 +10155,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_22() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_52() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9217,7 +10176,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_23() + CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_53() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9238,7 +10197,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_24() + CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_54() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9259,7 +10218,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_25() + CHIP_ERROR TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_55() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9280,7 +10239,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_26() + CHIP_ERROR TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_56() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9301,7 +10260,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeEventList_27() + CHIP_ERROR TestReadTheGlobalAttributeEventList_57() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9325,7 +10284,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_28() + CHIP_ERROR TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_58() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9346,7 +10305,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveHueInAcceptedCommandList_29() + CHIP_ERROR TestReadTheOptionalCommandMoveHueInAcceptedCommandList_59() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9367,7 +10326,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepHueInAcceptedCommandList_30() + CHIP_ERROR TestReadTheOptionalCommandStepHueInAcceptedCommandList_60() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9388,7 +10347,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_31() + CHIP_ERROR TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_61() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9409,7 +10368,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_32() + CHIP_ERROR TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_62() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9430,7 +10389,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_33() + CHIP_ERROR TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_63() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9451,7 +10410,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_34() + CHIP_ERROR TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_64() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9472,7 +10431,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_35() + CHIP_ERROR TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_65() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9493,7 +10452,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveColorInAcceptedCommandList_36() + CHIP_ERROR TestReadTheOptionalCommandMoveColorInAcceptedCommandList_66() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9514,7 +10473,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepColorInAcceptedCommandList_37() + CHIP_ERROR TestReadTheOptionalCommandStepColorInAcceptedCommandList_67() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9535,7 +10494,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_38() + CHIP_ERROR TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_68() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9556,7 +10515,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_39() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_69() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9577,7 +10536,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_40() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_70() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9598,7 +10557,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_41() + CHIP_ERROR TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_71() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9619,7 +10578,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_42() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_72() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9640,7 +10599,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_43() + CHIP_ERROR TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_73() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9661,7 +10620,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_44() + CHIP_ERROR TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_74() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9682,7 +10641,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_45() + CHIP_ERROR TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_75() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9703,7 +10662,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_46() + CHIP_ERROR TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_76() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9724,7 +10683,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_47() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_77() { MTRBaseDevice * device = GetDevice("alpha"); @@ -27953,24 +28912,37 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { err = TestThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads AcceptedCommandList from DUT\n"); - if (ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9")) { + ChipLogProgress(chipTool, + " ***** Test Step 16 : TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer " + "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " + "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " + "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is " + "the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa")) { NextTest(); return; } - err = TestThReadsAcceptedCommandListFromDut_16(); + err = TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); break; case 17: ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads AcceptedCommandList from DUT\n"); - if (ShouldSkip("DGETH.S.Afff9 && !DGETH.S.F00 && !DGETH.S.F01")) { + if (ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9")) { NextTest(); return; } err = TestThReadsAcceptedCommandListFromDut_17(); break; case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads AcceptedCommandList from DUT\n"); + if (ShouldSkip("DGETH.S.Afff9 && !DGETH.S.F00 && !DGETH.S.F01")) { + NextTest(); + return; + } + err = TestThReadsAcceptedCommandListFromDut_18(); + break; + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 19 : TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -27980,11 +28952,11 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + err = TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the " + " ***** Test Step 20 : TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " @@ -27993,20 +28965,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); - break; - case 20: - ChipLogProgress(chipTool, - " ***** Test Step 20 : TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer " - "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " - "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " - "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is " - "the allowed MEI range (0x0001 - 0xFFF1)\n"); - if (ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa")) { - NextTest(); - return; - } - err = TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); + err = TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); break; } @@ -28460,7 +29419,18 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_16() + CHIP_ERROR + TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28483,7 +29453,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_17() + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28510,7 +29480,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { } CHIP_ERROR - TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -28521,18 +29491,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { } CHIP_ERROR - TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR - TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() + TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -42755,35 +43714,35 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !KEYPADINPUT.S.NV && KEYPADINPUT.S.LK && !KEYPADINPUT.S.NK ")) { + if (ShouldSkip(" !KEYPADINPUT.S.F00 && KEYPADINPUT.S.F01 && !KEYPADINPUT.S.F02 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not\n"); - if (ShouldSkip("KEYPADINPUT.S.NV")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.F00")) { NextTest(); return; } - err = TestGivenKeypadinputsnvFeatureMapBitMaskIsSetOrNot_3(); + err = TestGivenKeypadinputsf00nvFeatureMapBitMaskIsSetOrNot_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not\n"); - if (ShouldSkip("KEYPADINPUT.S.LK")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.F01")) { NextTest(); return; } - err = TestGivenKeypadinputslkFeatureMapBitMaskIsSetOrNot_4(); + err = TestGivenKeypadinputsf01lkFeatureMapBitMaskIsSetOrNot_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not\n"); - if (ShouldSkip("KEYPADINPUT.S.NK")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.F02")) { NextTest(); return; } - err = TestGivenKeypadinputsnkFeatureMapBitMaskIsSetOrNot_5(); + err = TestGivenKeypadinputsf02nkFeatureMapBitMaskIsSetOrNot_5(); break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: AttributeList\n"); @@ -42918,7 +43877,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenKeypadinputsnvFeatureMapBitMaskIsSetOrNot_3() + CHIP_ERROR TestGivenKeypadinputsf00nvFeatureMapBitMaskIsSetOrNot_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42926,7 +43885,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not Error: %@", err); + NSLog(@"Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -42937,7 +43896,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenKeypadinputslkFeatureMapBitMaskIsSetOrNot_4() + CHIP_ERROR TestGivenKeypadinputsf01lkFeatureMapBitMaskIsSetOrNot_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42945,7 +43904,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not Error: %@", err); + NSLog(@"Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -42956,7 +43915,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenKeypadinputsnkFeatureMapBitMaskIsSetOrNot_5() + CHIP_ERROR TestGivenKeypadinputsf02nkFeatureMapBitMaskIsSetOrNot_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42964,7 +43923,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not Error: %@", err); + NSLog(@"Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -43116,7 +44075,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("APPLAUNCHER.S.AP")) { + if (ShouldSkip("APPLAUNCHER.S.F00")) { NextTest(); return; } @@ -43124,7 +44083,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !APPLAUNCHER.S.AP ")) { + if (ShouldSkip(" !APPLAUNCHER.S.F00 ")) { NextTest(); return; } @@ -43506,19 +44465,20 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !MEDIAINPUT.S.NU ")) { + if (ShouldSkip(" !MEDIAINPUT.S.F00 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set\n"); - if (ShouldSkip("MEDIAINPUT.S.NU")) { + ChipLogProgress( + chipTool, " ***** Test Step 3 : Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAINPUT.S.F00")) { NextTest(); return; } - err = TestGivenMediainputsnuEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenMediainputsf00nuEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); @@ -43669,7 +44629,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenMediainputsnuEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenMediainputsf00nuEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -43677,7 +44637,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -44182,27 +45142,27 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )")) { + if (ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given CHANNEL.S.CL ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CHANNEL.S.CL")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CHANNEL.S.F00")) { NextTest(); return; } - err = TestGivenChannelsclEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenCchannelsf00clEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Given CHANNEL.S.LI ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CHANNEL.S.LI")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CHANNEL.S.F01")) { NextTest(); return; } - err = TestGivenChannelsliEnsureFeaturemapHasTheCorrectBitSet_4(); + err = TestGivenChannelsf01liEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); @@ -44259,7 +45219,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : Read the global attribute: GeneratedCommandList\n"); - if (ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )")) { + if (ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )")) { NextTest(); return; } @@ -44267,7 +45227,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { break; case 13: ChipLogProgress(chipTool, " ***** Test Step 13 : Read the global attribute: GeneratedCommandList\n"); - if (ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI")) { + if (ShouldSkip("CHANNEL.S.F00 || CHANNEL.S.F01")) { NextTest(); return; } @@ -44409,7 +45369,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenChannelsclEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenCchannelsf00clEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44417,7 +45377,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CHANNEL.S.CL ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -44428,7 +45388,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenChannelsliEnsureFeaturemapHasTheCorrectBitSet_4() + CHIP_ERROR TestGivenChannelsf01liEnsureFeaturemapHasTheCorrectBitSet_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44436,7 +45396,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CHANNEL.S.LI ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -44717,27 +45677,29 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !MEDIAPLAYBACK.S.AS && !MEDIAPLAYBACK.S.VS ")) { + if (ShouldSkip(" !MEDIAPLAYBACK.S.F00 && !MEDIAPLAYBACK.S.F01 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.AS")) { + ChipLogProgress( + chipTool, " ***** Test Step 3 : Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.F00")) { NextTest(); return; } - err = TestGivenMediaplaybacksasEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenMediaplaybacksf00asEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.VS")) { + ChipLogProgress( + chipTool, " ***** Test Step 4 : Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.F01")) { NextTest(); return; } - err = TestGivenMediaplaybacksvsEnsureFeaturemapHasTheCorrectBitSet_4(); + err = TestGivenMediaplaybacksf01vsEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); @@ -45023,7 +45985,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenMediaplaybacksasEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenMediaplaybacksf00asEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45031,7 +45993,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -45042,7 +46004,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenMediaplaybacksvsEnsureFeaturemapHasTheCorrectBitSet_4() + CHIP_ERROR TestGivenMediaplaybacksf01vsEnsureFeaturemapHasTheCorrectBitSet_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45050,7 +46012,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -45499,23 +46461,35 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); + if (ShouldSkip("AUDIOOUTPUT.S.F00")) { + NextTest(); + return; + } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); + if (ShouldSkip(" !AUDIOOUTPUT.S.F00 ")) { + NextTest(); + return; + } + err = TestReadTheGlobalAttributeFeatureMap_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: EventList\n"); - err = TestReadTheGlobalAttributeEventList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: EventList\n"); + err = TestReadTheGlobalAttributeEventList_7(); break; } @@ -45549,6 +46523,9 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -45562,7 +46539,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; @@ -45614,16 +46591,32 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 3UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAudioOutput alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_3() + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45651,7 +46644,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45672,7 +46665,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_5() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45696,7 +46689,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeEventList_6() + CHIP_ERROR TestReadTheGlobalAttributeEventList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46021,76 +47014,6 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { } }; -class Test_TC_TGTNAV_8_2 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_TGTNAV_8_2() - : TestCommandBridge("Test_TC_TGTNAV_8_2") - , mTestIndex(0) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_TGTNAV_8_2() {} - - /////////// TestCommand Interface ///////// - void NextTest() override - { - CHIP_ERROR err = CHIP_NO_ERROR; - - if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_TGTNAV_8_2\n"); - } - - if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_TGTNAV_8_2\n"); - SetCommandExitStatus(CHIP_NO_ERROR); - return; - } - - Wait(); - - // Ensure we increment mTestIndex before we start running the relevant - // command. That way if we lose the timeslice after we send the message - // but before our function call returns, we won't end up with an - // incorrect mTestIndex value observed when we get the response. - switch (mTestIndex++) { - } - - if (CHIP_NO_ERROR != err) { - ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); - SetCommandExitStatus(err); - } - } - - void OnStatusUpdate(const chip::app::StatusIB & status) override - { - switch (mTestIndex - 1) { - } - - // Go on to the next test. - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 0; - - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; -}; - class Test_TC_APBSC_1_10 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced @@ -46513,7 +47436,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("( !CONTENTLAUNCHER.S.CS && !CONTENTLAUNCHER.S.UP )")) { + if (ShouldSkip("( !CONTENTLAUNCHER.S.F00 && !CONTENTLAUNCHER.S.F01 )")) { NextTest(); return; } @@ -46521,21 +47444,21 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { break; case 3: ChipLogProgress( - chipTool, " ***** Test Step 3 : Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.CS")) { + chipTool, " ***** Test Step 3 : Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.F00")) { NextTest(); return; } - err = TestGivenContentlauncherscsEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenContentlaunchersf00CsEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: ChipLogProgress( - chipTool, " ***** Test Step 4 : Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.UP")) { + chipTool, " ***** Test Step 4 : Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.F01")) { NextTest(); return; } - err = TestGivenContentlaunchersupEnsureFeaturemapHasTheCorrectBitSet_4(); + err = TestGivenContentlaunchersf01upEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); @@ -46707,7 +47630,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenContentlauncherscsEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenContentlaunchersf00CsEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46715,7 +47638,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46726,7 +47649,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenContentlaunchersupEnsureFeaturemapHasTheCorrectBitSet_4() + CHIP_ERROR TestGivenContentlaunchersf01upEnsureFeaturemapHasTheCorrectBitSet_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46734,7 +47657,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -47328,7 +48251,7 @@ class Test_TC_KEYPADINPUT_3_2 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, " ***** Test Step 1 : TH sends CEC Settings Keys(0x0A) to DUT\n"); - if (ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp")) { + if (ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp")) { NextTest(); return; } @@ -47336,7 +48259,7 @@ class Test_TC_KEYPADINPUT_3_2 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH sends CEC Home Keys(0x09) to DUT\n"); - if (ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp")) { + if (ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp")) { NextTest(); return; } @@ -47487,7 +48410,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, " ***** Test Step 1 : Send Numbers1\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47495,7 +48418,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Send Numbers2\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47503,7 +48426,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Send Numbers3\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47511,7 +48434,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Send Numbers4\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47519,7 +48442,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Send Numbers5\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47527,7 +48450,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Send Numbers6\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47535,7 +48458,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 7: ChipLogProgress(chipTool, " ***** Test Step 7 : Send Numbers7\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47543,7 +48466,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Send Numbers8\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47551,7 +48474,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Send Numbers9\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -53086,12 +54009,16 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { err = TestThReadsTheOptionalAttributeOnModeInAttributeListFromTheDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: EventList\n"); + err = TestReadTheGlobalAttributeEventList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_9(); break; } @@ -53131,6 +54058,9 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -53144,7 +54074,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 10; chip::Optional mNodeId; chip::Optional mCluster; @@ -53303,7 +54233,31 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_7() + CHIP_ERROR TestReadTheGlobalAttributeEventList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterModeSelect alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: EventList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("EventList", [actualValue count], static_cast(0))); + } + + VerifyOrReturn(CheckConstraintType("eventList", "list", "list")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -53324,7 +54278,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_8() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65285,15 +66239,15 @@ class Test_TC_SC_5_1 : public TestCommandBridge { ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySecurityPolicy = [NSNumber numberWithUnsignedChar:0U]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey0 = - [[NSData alloc] initWithBytes:"0x00000000000000000000000000000001" length:34]; + [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime0 = [NSNumber numberWithUnsignedLongLong:111ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey1 = - [[NSData alloc] initWithBytes:"0x00000000000000000000000000000002" length:34]; + [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime1 = [NSNumber numberWithUnsignedLongLong:222ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey2 = - [[NSData alloc] initWithBytes:"0x00000000000000000000000000000003" length:34]; + [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:333ULL]; @@ -65335,15 +66289,15 @@ class Test_TC_SC_5_1 : public TestCommandBridge { ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySecurityPolicy = [NSNumber numberWithUnsignedChar:0U]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey0 = - [[NSData alloc] initWithBytes:"0xd0d1d2d3d4d5d6d7d8d9dadbdcdddedf" length:34]; + [[NSData alloc] initWithBytes:"\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime0 = [NSNumber numberWithUnsignedLongLong:2220000ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey1 = - [[NSData alloc] initWithBytes:"0xd1d1d2d3d4d5d6d7d8d9dadbdcdddedf" length:34]; + [[NSData alloc] initWithBytes:"\xd1\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime1 = [NSNumber numberWithUnsignedLongLong:2220001ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey2 = - [[NSData alloc] initWithBytes:"0xd2d1d2d3d4d5d6d7d8d9dadbdcdddedf" length:34]; + [[NSData alloc] initWithBytes:"\xd2\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2220002ULL]; @@ -75841,7 +76795,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : 3a: TH reads OperationalStatus attribute's bit 0..1\n"); - if (ShouldSkip("WNCV.S.A000a")) { + if (ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75850,7 +76804,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 15: ChipLogProgress( chipTool, " ***** Test Step 15 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75859,7 +76813,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 16: ChipLogProgress( chipTool, " ***** Test Step 16 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75868,7 +76822,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 17: ChipLogProgress( chipTool, " ***** Test Step 17 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75877,95 +76831,103 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 18: ChipLogProgress( chipTool, " ***** Test Step 18 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : 3a2: DUT updates its attributes\n"); - err = Test3a2DutUpdatesItsAttributes_19(); + ChipLogProgress(chipTool, " ***** Test Step 19 : 3a: TH reads OperationalStatus attribute from DUT\n"); + if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3aThReadsOperationalStatusAttributeFromDut_19(); break; case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : 3a2: DUT updates its attributes\n"); + err = Test3a2DutUpdatesItsAttributes_20(); + break; + case 21: ChipLogProgress( - chipTool, " ***** Test Step 20 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 21 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e")) { NextTest(); return; } - err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20(); + err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); + " ***** Test Step 22 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008")) { NextTest(); return; } - err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21(); + err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22(); break; - case 22: + case 23: ChipLogProgress( - chipTool, " ***** Test Step 22 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 23 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f")) { NextTest(); return; } - err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22(); + err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); + " ***** Test Step 24 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009")) { NextTest(); return; } - err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23(); + err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : 4a: TH sends a StopMotion command to DUT\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : 4a: TH sends a StopMotion command to DUT\n"); if (ShouldSkip("WNCV.S.C02.Rsp")) { NextTest(); return; } - err = Test4aThSendsAStopMotionCommandToDut_24(); + err = Test4aThSendsAStopMotionCommandToDut_25(); break; - case 25: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 25 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); - err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25(); + chipTool, " ***** Test Step 26 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); + err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26(); break; - case 26: + case 27: ChipLogProgress( - chipTool, " ***** Test Step 26 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); + chipTool, " ***** Test Step 27 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : 5a: TH waits for x seconds attributes update on the device\n"); - err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27(); + err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : 5a: TH waits for x seconds attributes update on the device\n"); + err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28(); + break; + case 29: ChipLogProgress( - chipTool, " ***** Test Step 28 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 29 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b")) { NextTest(); return; } - err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28(); + err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29(); break; - case 29: + case 30: ChipLogProgress( - chipTool, " ***** Test Step 29 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 30 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c")) { NextTest(); return; } - err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29(); + err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30(); break; } @@ -76068,6 +77030,9 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -76081,7 +77046,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 30; + const uint16_t mTestCount = 31; chip::Optional mNodeId; chip::Optional mCluster; @@ -76464,7 +77429,17 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3a2DutUpdatesItsAttributes_19() + CHIP_ERROR Test3aThReadsOperationalStatusAttributeFromDut_19() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR Test3a2DutUpdatesItsAttributes_20() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -76472,7 +77447,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20() + CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76500,7 +77475,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21() + CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76527,7 +77502,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22() + CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76555,7 +77530,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23() + CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76582,7 +77557,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_24() + CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76600,7 +77575,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25() + CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -76608,7 +77583,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26() + CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76631,7 +77606,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27() + CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -76639,7 +77614,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28() + CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76666,7 +77641,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29() + CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76829,7 +77804,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : 3a: TH reads OperationalStatus attribute's bit 0..1\n"); - if (ShouldSkip("WNCV.S.A000a")) { + if (ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76838,7 +77813,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 15: ChipLogProgress( chipTool, " ***** Test Step 15 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76847,7 +77822,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 16: ChipLogProgress( chipTool, " ***** Test Step 16 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76856,7 +77831,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 17: ChipLogProgress( chipTool, " ***** Test Step 17 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76865,95 +77840,103 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 18: ChipLogProgress( chipTool, " ***** Test Step 18 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : 3a2: DUT updates its attributes\n"); - err = Test3a2DutUpdatesItsAttributes_19(); + ChipLogProgress(chipTool, " ***** Test Step 19 : 3a: TH reads OperationalStatus attribute from DUT\n"); + if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3aThReadsOperationalStatusAttributeFromDut_19(); break; case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : 3a2: DUT updates its attributes\n"); + err = Test3a2DutUpdatesItsAttributes_20(); + break; + case 21: ChipLogProgress( - chipTool, " ***** Test Step 20 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 21 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e")) { NextTest(); return; } - err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20(); + err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); + " ***** Test Step 22 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008")) { NextTest(); return; } - err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21(); + err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22(); break; - case 22: + case 23: ChipLogProgress( - chipTool, " ***** Test Step 22 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 23 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f")) { NextTest(); return; } - err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22(); + err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); + " ***** Test Step 24 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009")) { NextTest(); return; } - err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23(); + err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : 4a: TH sends a StopMotion command to DUT\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : 4a: TH sends a StopMotion command to DUT\n"); if (ShouldSkip("WNCV.S.C02.Rsp")) { NextTest(); return; } - err = Test4aThSendsAStopMotionCommandToDut_24(); + err = Test4aThSendsAStopMotionCommandToDut_25(); break; - case 25: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 25 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); - err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25(); + chipTool, " ***** Test Step 26 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); + err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26(); break; - case 26: + case 27: ChipLogProgress( - chipTool, " ***** Test Step 26 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); + chipTool, " ***** Test Step 27 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : 5a: TH waits for x seconds attributes update on the device\n"); - err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27(); + err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : 5a: TH waits for x seconds attributes update on the device\n"); + err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28(); + break; + case 29: ChipLogProgress( - chipTool, " ***** Test Step 28 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 29 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b")) { NextTest(); return; } - err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28(); + err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29(); break; - case 29: + case 30: ChipLogProgress( - chipTool, " ***** Test Step 29 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 30 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c")) { NextTest(); return; } - err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29(); + err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30(); break; } @@ -77056,6 +78039,9 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -77069,7 +78055,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 30; + const uint16_t mTestCount = 31; chip::Optional mNodeId; chip::Optional mCluster; @@ -77452,7 +78438,17 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3a2DutUpdatesItsAttributes_19() + CHIP_ERROR Test3aThReadsOperationalStatusAttributeFromDut_19() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR Test3a2DutUpdatesItsAttributes_20() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -77460,7 +78456,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20() + CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77488,7 +78484,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21() + CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77515,7 +78511,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22() + CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77543,7 +78539,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23() + CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77570,7 +78566,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_24() + CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77588,7 +78584,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25() + CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -77596,7 +78592,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26() + CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77619,7 +78615,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27() + CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -77627,7 +78623,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28() + CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77654,7 +78650,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29() + CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -144914,7 +145910,6 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), - make_unique(), make_unique(), make_unique(), make_unique(), diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index 9cfbd2002d3332..39a1b1b91f1eaa 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -2420,6 +2420,2804 @@ class Test_TC_LTIME_1_1_SimulatedSuite : public TestCommand } }; +class Test_TC_ILL_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_ILL_3_1_SimulatedSuite() : TestCommand("Test_TC_ILL_3_1_Simulated", 8) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ILL_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, "Read attribute: LightSensorType"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::LightSensorType::Id); + } + case 5: { + LogStep(5, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_2_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetWatermarks to TH"); + VerifyOrDo(!ShouldSkip("DGSW.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Commands::ResetWatermarks::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_2_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts to TH"); + VerifyOrDo(!ShouldSkip("DGETH.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGWIFI_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_2_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_6_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_6_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_6_1_Simulated", 3) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_6_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends UpOrOpen command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id); + } + case 1: { + LogStep(1, "DUT sends DownOrClose command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id); + } + case 2: { + LogStep(2, "DUT sends StopMotion command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_7_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_7_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_7_1_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_7_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C05.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id); + } + case 1: { + LogStep(1, "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C08.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_3_4_SimulatedSuite() : TestCommand("Test_TC_CC_3_4_Simulated", 16) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToHue command to TH an Hue with _TransitionTime 300"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 14: { + LogStep(14, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 15: { + LogStep(15, "Over TransitionTime, DUT reads CurrentHue attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_4_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_4_5_SimulatedSuite() : TestCommand("Test_TC_CC_4_5_Simulated", 22) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_4_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToSaturation::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 5: { + LogStep(5, "DUT sends MoveSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 9: { + LogStep(9, "DUT sends StepSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 13: { + LogStep(13, "DUT sends MoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 21: { + LogStep(21, "Over TransitionTime, DUT reads CurrentSaturation attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_5_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_5_4_SimulatedSuite() : TestCommand("Test_TC_CC_5_4_Simulated", 25) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_5_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColor::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 3: { + LogStep(3, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 4: { + LogStep(4, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 9: { + LogStep(9, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 10: { + LogStep(10, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 13: { + LogStep(13, "DUT sends StepColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColor::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 21: { + LogStep(21, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 22: { + LogStep(22, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 23: { + LogStep(23, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 24: { + LogStep( + 24, + "DUT reads CurrentY attribute from ConfiguredTime: type: int16u defaultValue: 30000TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_6_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_6_4_SimulatedSuite() : TestCommand("Test_TC_CC_6_4_Simulated", 18) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_6_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMinMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400b && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMinMireds::Id); + } + case 2: { + LogStep(2, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMaxMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400c && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id); + } + case 3: { + LogStep(3, "DUT sends MoveToColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColorTemperature::Id); + } + case 4: { + LogStep(4, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 5: { + LogStep(5, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColorTemperatureMireds command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 9: { + LogStep(9, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 11: { + LogStep(11, "DUT sends StepColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 13: { + LogStep(13, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 15: { + LogStep(15, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_7_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_7_5_SimulatedSuite() : TestCommand("Test_TC_CC_7_5_Simulated", 23) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_7_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToEnhancedHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveEnhanced Hue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepEnhanced command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends EnhancedMoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 21: { + LogStep(21, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_9_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_9_4_SimulatedSuite() : TestCommand("Test_TC_CC_9_4_Simulated", 19) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + } + + ~Test_TC_CC_9_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mCluster; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends ColorLoopSet command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C44.Tx && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id); + } + case 2: { + LogStep(2, "DUT reads ColorLoopActive attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4002 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + } + case 3: { + LogStep(3, "DUT reads ColorLoopDirection attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4003 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id); + } + case 4: { + LogStep(4, "DUT reads ColorLoopTime attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4004 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + } + case 5: { + LogStep(5, "DUT reads ColorLoopStartEnhancedHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4005 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 16: { + LogStep(16, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 17: { + LogStep(17, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 18: { + LogStep(18, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_2_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_2_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 1: { + LogStep(1, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads TxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads TxAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id); + } + case 4: { + LogStep(4, "DUT reads TxAckedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id); + } + case 5: { + LogStep(5, "DUT reads TxNoAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id); + } + case 6: { + LogStep(6, "DUT reads TxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataCount::Id); + } + case 7: { + LogStep(7, "DUT reads TxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id); + } + case 8: { + LogStep(8, "DUT reads TxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id); + } + case 9: { + LogStep(9, "DUT reads TxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id); + } + case 10: { + LogStep(10, "DUT reads TxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id); + } + case 11: { + LogStep(11, "DUT reads TxRetryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id); + } + case 12: { + LogStep(12, "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id); + } + case 13: { + LogStep(13, "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id); + } + case 14: { + LogStep(14, "DUT reads TxErrCcaCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id); + } + case 15: { + LogStep(15, "DUT reads TxErrAbortCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id); + } + case 16: { + LogStep(16, "DUT reads TxErrBusyChannelCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_3_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_3_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads RxTotalCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id); + } + case 1: { + LogStep(1, "DUT reads RxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads RxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads RxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataCount::Id); + } + case 4: { + LogStep(4, "DUT reads RxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id); + } + case 5: { + LogStep(5, "DUT reads RxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id); + } + case 6: { + LogStep(6, "DUT reads RxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id); + } + case 7: { + LogStep(7, "DUT reads RxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id); + } + case 8: { + LogStep(8, "DUT reads RxAddressFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id); + } + case 9: { + LogStep(9, "DUT reads RxDestAddrFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id); + } + case 10: { + LogStep(10, "DUT reads RxDuplicatedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id); + } + case 11: { + LogStep(11, "DUT reads RxErrNoFrameCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id); + } + case 12: { + LogStep(12, "DUT reads RxErrUnknownNeighborCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id); + } + case 13: { + LogStep(13, "DUT reads RxErrInvalidSrcAddrCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id); + } + case 14: { + LogStep(14, "DUT reads RxErrSecCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0035"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id); + } + case 15: { + LogStep(15, "DUT reads RxErrFcsCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id); + } + case 16: { + LogStep(16, "DUT reads RxErrOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_4_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_4_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Commands::ResetCounts::Id); + } + case 1: { + LogStep(1, "DUT reads OverrunCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::OverrunCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LVL_2_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_LVL_2_3_SimulatedSuite() : TestCommand("Test_TC_LVL_2_3_Simulated", 24) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LVL_2_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read mandatory attribute CurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + } + case 1: { + LogStep(1, "Read mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 2: { + LogStep(2, "Read mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 3: { + LogStep(3, "Read optional attribute RemainingTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::RemainingTime::Id); + } + case 4: { + LogStep(4, "Read optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 5: { + LogStep(5, "Read optional attribute CurrentFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id); + } + case 6: { + LogStep(6, "Read optional attribute MinFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinFrequency::Id); + } + case 7: { + LogStep(7, "Read optional attribute MaxFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxFrequency::Id); + } + case 8: { + LogStep(8, "Read optional attribute MinLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id); + } + case 9: { + LogStep(9, "Read optional attribute MaxLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id); + } + case 10: { + LogStep(10, "Read optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 11: { + LogStep(11, "Read optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 12: { + LogStep(12, "Read optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 13: { + LogStep(13, "Read optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 14: { + LogStep(14, "Write mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 15: { + LogStep(15, "Write mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 16: { + LogStep(16, "Write optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 17: { + LogStep(17, "Write optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 18: { + LogStep(18, "Write optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 19: { + LogStep(19, "Write optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 20: { + LogStep(20, "Write optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 21: { + LogStep(21, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 23: { + LogStep(23, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_1_SimulatedSuite() : TestCommand("Test_TC_OO_3_1_Simulated", 11) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute OnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + } + case 1: { + LogStep(1, "Read attribute GlobalSceneControl"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + } + case 2: { + LogStep(2, "Read attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 3: { + LogStep(3, "Read attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 4: { + LogStep(4, "Read attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 5: { + LogStep(5, "Write attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 6: { + LogStep(6, "Write attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 7: { + LogStep(7, "Write attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 8: { + LogStep(8, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_2_SimulatedSuite() : TestCommand("Test_TC_OO_3_2_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT issues an Off command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id); + } + case 1: { + LogStep(1, "DUT issues an On command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 2: { + LogStep(2, "DUT issues an Toggle command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id); + } + case 3: { + LogStep(3, "DUT issues an OffWithEffect command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C40.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OffWithEffect::Id); + } + case 4: { + LogStep(4, "DUT issues an OnWithRecallGlobalScene command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithRecallGlobalScene::Id); + } + case 5: { + LogStep(5, "DUT issues an OnWithTimedOff command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithTimedOff::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TSUIC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TSUIC_3_1_SimulatedSuite() : TestCommand("Test_TC_TSUIC_3_1_Simulated", 9) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TSUIC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 1: { + LogStep(1, "DUT reads KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 2: { + LogStep(2, "DUT reads ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 3: { + LogStep(3, "DUT writes TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 4: { + LogStep(4, "DUT writes KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 5: { + LogStep(5, "DUT writes ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 6: { + LogStep(6, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 8: { + LogStep(8, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PCC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PCC_3_1_SimulatedSuite() : TestCommand("Test_TC_PCC_3_1_Simulated", 30) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PCC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute MaxPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxPressure::Id); + } + case 1: { + LogStep(1, "Read attribute MaxSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxSpeed::Id); + } + case 2: { + LogStep(2, "Read attribute MaxFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxFlow::Id); + } + case 3: { + LogStep(3, "Read attribute EffectiveOperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + } + case 4: { + LogStep(4, "Read attribute EffectiveControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + } + case 5: { + LogStep(5, "Read attribute Capacity"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Capacity::Id); + } + case 6: { + LogStep(6, "Read attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 7: { + LogStep(7, "Read attribute MinConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstPressure::Id); + } + case 8: { + LogStep(8, "Read attribute MaxConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstPressure::Id); + } + case 9: { + LogStep(9, "Read attribute MinCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinCompPressure::Id); + } + case 10: { + LogStep(10, "Read attribute MaxCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxCompPressure::Id); + } + case 11: { + LogStep(11, "Read attribute MinConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstSpeed::Id); + } + case 12: { + LogStep(12, "Read attribute MaxConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id); + } + case 13: { + LogStep(13, "Read attribute MinConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstFlow::Id); + } + case 14: { + LogStep(14, "Read attribute MaxConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstFlow::Id); + } + case 15: { + LogStep(15, "Read attribute MinConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstTemp::Id); + } + case 16: { + LogStep(16, "Read attribute MaxConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstTemp::Id); + } + case 17: { + LogStep(17, "Read attribute PumpStatus"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::PumpStatus::Id); + } + case 18: { + LogStep(18, "Read attribute Speed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Speed::Id); + } + case 19: { + LogStep(19, "Read attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 20: { + LogStep(20, "Read attribute Power"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Power::Id); + } + case 21: { + LogStep(21, "Read attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 22: { + LogStep(22, "Read attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 23: { + LogStep(23, "Write attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 24: { + LogStep(24, "Write attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 25: { + LogStep(25, "Write attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 26: { + LogStep(26, "Write attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 27: { + LogStep(27, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 28: { + LogStep(28, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 29: { + LogStep(29, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TMP_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TMP_3_1_SimulatedSuite() : TestCommand("Test_TC_TMP_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TMP_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + std::unique_ptr GetTestCommand(std::string testName) { if (testName == "Test_TC_BINFO_2_3_Simulated") @@ -2518,6 +5316,90 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_LTIME_1_1_SimulatedSuite()); } + if (testName == "Test_TC_ILL_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_ILL_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGETH_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_6_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_6_1_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_7_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_7_1_SimulatedSuite()); + } + if (testName == "Test_TC_CC_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_4_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_4_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_5_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_5_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_6_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_6_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_7_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_7_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_9_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_9_4_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_3_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_3_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_LVL_2_3_Simulated") + { + return std::unique_ptr(new Test_TC_LVL_2_3_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_TSUIC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TSUIC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PCC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PCC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_TMP_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TMP_3_1_SimulatedSuite()); + } return nullptr; } @@ -2549,4 +5431,25 @@ void PrintTestCommands() ChipLogError(chipTool, "\t* Test_TC_ULABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_FLABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LTIME_1_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_ILL_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGETH_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_6_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_7_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_4_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_5_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_6_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_7_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_9_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_LVL_2_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TSUIC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PCC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TMP_3_1_Simulated"); } diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index 9cfbd2002d3332..39a1b1b91f1eaa 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -2420,6 +2420,2804 @@ class Test_TC_LTIME_1_1_SimulatedSuite : public TestCommand } }; +class Test_TC_ILL_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_ILL_3_1_SimulatedSuite() : TestCommand("Test_TC_ILL_3_1_Simulated", 8) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ILL_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, "Read attribute: LightSensorType"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::LightSensorType::Id); + } + case 5: { + LogStep(5, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_2_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetWatermarks to TH"); + VerifyOrDo(!ShouldSkip("DGSW.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Commands::ResetWatermarks::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_2_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts to TH"); + VerifyOrDo(!ShouldSkip("DGETH.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGWIFI_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_2_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_6_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_6_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_6_1_Simulated", 3) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_6_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends UpOrOpen command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id); + } + case 1: { + LogStep(1, "DUT sends DownOrClose command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id); + } + case 2: { + LogStep(2, "DUT sends StopMotion command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_7_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_7_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_7_1_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_7_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C05.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id); + } + case 1: { + LogStep(1, "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C08.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_3_4_SimulatedSuite() : TestCommand("Test_TC_CC_3_4_Simulated", 16) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToHue command to TH an Hue with _TransitionTime 300"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 14: { + LogStep(14, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 15: { + LogStep(15, "Over TransitionTime, DUT reads CurrentHue attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_4_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_4_5_SimulatedSuite() : TestCommand("Test_TC_CC_4_5_Simulated", 22) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_4_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToSaturation::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 5: { + LogStep(5, "DUT sends MoveSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 9: { + LogStep(9, "DUT sends StepSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 13: { + LogStep(13, "DUT sends MoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 21: { + LogStep(21, "Over TransitionTime, DUT reads CurrentSaturation attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_5_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_5_4_SimulatedSuite() : TestCommand("Test_TC_CC_5_4_Simulated", 25) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_5_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColor::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 3: { + LogStep(3, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 4: { + LogStep(4, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 9: { + LogStep(9, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 10: { + LogStep(10, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 13: { + LogStep(13, "DUT sends StepColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColor::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 21: { + LogStep(21, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 22: { + LogStep(22, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 23: { + LogStep(23, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 24: { + LogStep( + 24, + "DUT reads CurrentY attribute from ConfiguredTime: type: int16u defaultValue: 30000TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_6_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_6_4_SimulatedSuite() : TestCommand("Test_TC_CC_6_4_Simulated", 18) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_6_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMinMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400b && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMinMireds::Id); + } + case 2: { + LogStep(2, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMaxMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400c && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id); + } + case 3: { + LogStep(3, "DUT sends MoveToColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColorTemperature::Id); + } + case 4: { + LogStep(4, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 5: { + LogStep(5, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColorTemperatureMireds command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 9: { + LogStep(9, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 11: { + LogStep(11, "DUT sends StepColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 13: { + LogStep(13, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 15: { + LogStep(15, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_7_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_7_5_SimulatedSuite() : TestCommand("Test_TC_CC_7_5_Simulated", 23) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_7_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToEnhancedHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveEnhanced Hue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepEnhanced command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends EnhancedMoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 21: { + LogStep(21, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_9_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_9_4_SimulatedSuite() : TestCommand("Test_TC_CC_9_4_Simulated", 19) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + } + + ~Test_TC_CC_9_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mCluster; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends ColorLoopSet command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C44.Tx && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id); + } + case 2: { + LogStep(2, "DUT reads ColorLoopActive attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4002 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + } + case 3: { + LogStep(3, "DUT reads ColorLoopDirection attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4003 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id); + } + case 4: { + LogStep(4, "DUT reads ColorLoopTime attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4004 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + } + case 5: { + LogStep(5, "DUT reads ColorLoopStartEnhancedHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4005 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 16: { + LogStep(16, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 17: { + LogStep(17, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 18: { + LogStep(18, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_2_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_2_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 1: { + LogStep(1, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads TxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads TxAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id); + } + case 4: { + LogStep(4, "DUT reads TxAckedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id); + } + case 5: { + LogStep(5, "DUT reads TxNoAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id); + } + case 6: { + LogStep(6, "DUT reads TxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataCount::Id); + } + case 7: { + LogStep(7, "DUT reads TxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id); + } + case 8: { + LogStep(8, "DUT reads TxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id); + } + case 9: { + LogStep(9, "DUT reads TxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id); + } + case 10: { + LogStep(10, "DUT reads TxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id); + } + case 11: { + LogStep(11, "DUT reads TxRetryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id); + } + case 12: { + LogStep(12, "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id); + } + case 13: { + LogStep(13, "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id); + } + case 14: { + LogStep(14, "DUT reads TxErrCcaCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id); + } + case 15: { + LogStep(15, "DUT reads TxErrAbortCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id); + } + case 16: { + LogStep(16, "DUT reads TxErrBusyChannelCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_3_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_3_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads RxTotalCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id); + } + case 1: { + LogStep(1, "DUT reads RxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads RxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads RxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataCount::Id); + } + case 4: { + LogStep(4, "DUT reads RxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id); + } + case 5: { + LogStep(5, "DUT reads RxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id); + } + case 6: { + LogStep(6, "DUT reads RxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id); + } + case 7: { + LogStep(7, "DUT reads RxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id); + } + case 8: { + LogStep(8, "DUT reads RxAddressFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id); + } + case 9: { + LogStep(9, "DUT reads RxDestAddrFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id); + } + case 10: { + LogStep(10, "DUT reads RxDuplicatedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id); + } + case 11: { + LogStep(11, "DUT reads RxErrNoFrameCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id); + } + case 12: { + LogStep(12, "DUT reads RxErrUnknownNeighborCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id); + } + case 13: { + LogStep(13, "DUT reads RxErrInvalidSrcAddrCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id); + } + case 14: { + LogStep(14, "DUT reads RxErrSecCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0035"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id); + } + case 15: { + LogStep(15, "DUT reads RxErrFcsCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id); + } + case 16: { + LogStep(16, "DUT reads RxErrOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_4_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_4_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Commands::ResetCounts::Id); + } + case 1: { + LogStep(1, "DUT reads OverrunCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::OverrunCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LVL_2_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_LVL_2_3_SimulatedSuite() : TestCommand("Test_TC_LVL_2_3_Simulated", 24) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LVL_2_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read mandatory attribute CurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + } + case 1: { + LogStep(1, "Read mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 2: { + LogStep(2, "Read mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 3: { + LogStep(3, "Read optional attribute RemainingTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::RemainingTime::Id); + } + case 4: { + LogStep(4, "Read optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 5: { + LogStep(5, "Read optional attribute CurrentFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id); + } + case 6: { + LogStep(6, "Read optional attribute MinFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinFrequency::Id); + } + case 7: { + LogStep(7, "Read optional attribute MaxFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxFrequency::Id); + } + case 8: { + LogStep(8, "Read optional attribute MinLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id); + } + case 9: { + LogStep(9, "Read optional attribute MaxLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id); + } + case 10: { + LogStep(10, "Read optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 11: { + LogStep(11, "Read optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 12: { + LogStep(12, "Read optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 13: { + LogStep(13, "Read optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 14: { + LogStep(14, "Write mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 15: { + LogStep(15, "Write mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 16: { + LogStep(16, "Write optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 17: { + LogStep(17, "Write optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 18: { + LogStep(18, "Write optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 19: { + LogStep(19, "Write optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 20: { + LogStep(20, "Write optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 21: { + LogStep(21, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 23: { + LogStep(23, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_1_SimulatedSuite() : TestCommand("Test_TC_OO_3_1_Simulated", 11) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute OnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + } + case 1: { + LogStep(1, "Read attribute GlobalSceneControl"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + } + case 2: { + LogStep(2, "Read attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 3: { + LogStep(3, "Read attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 4: { + LogStep(4, "Read attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 5: { + LogStep(5, "Write attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 6: { + LogStep(6, "Write attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 7: { + LogStep(7, "Write attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 8: { + LogStep(8, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_2_SimulatedSuite() : TestCommand("Test_TC_OO_3_2_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT issues an Off command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id); + } + case 1: { + LogStep(1, "DUT issues an On command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 2: { + LogStep(2, "DUT issues an Toggle command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id); + } + case 3: { + LogStep(3, "DUT issues an OffWithEffect command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C40.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OffWithEffect::Id); + } + case 4: { + LogStep(4, "DUT issues an OnWithRecallGlobalScene command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithRecallGlobalScene::Id); + } + case 5: { + LogStep(5, "DUT issues an OnWithTimedOff command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithTimedOff::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TSUIC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TSUIC_3_1_SimulatedSuite() : TestCommand("Test_TC_TSUIC_3_1_Simulated", 9) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TSUIC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 1: { + LogStep(1, "DUT reads KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 2: { + LogStep(2, "DUT reads ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 3: { + LogStep(3, "DUT writes TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 4: { + LogStep(4, "DUT writes KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 5: { + LogStep(5, "DUT writes ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 6: { + LogStep(6, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 8: { + LogStep(8, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PCC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PCC_3_1_SimulatedSuite() : TestCommand("Test_TC_PCC_3_1_Simulated", 30) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PCC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute MaxPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxPressure::Id); + } + case 1: { + LogStep(1, "Read attribute MaxSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxSpeed::Id); + } + case 2: { + LogStep(2, "Read attribute MaxFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxFlow::Id); + } + case 3: { + LogStep(3, "Read attribute EffectiveOperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + } + case 4: { + LogStep(4, "Read attribute EffectiveControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + } + case 5: { + LogStep(5, "Read attribute Capacity"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Capacity::Id); + } + case 6: { + LogStep(6, "Read attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 7: { + LogStep(7, "Read attribute MinConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstPressure::Id); + } + case 8: { + LogStep(8, "Read attribute MaxConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstPressure::Id); + } + case 9: { + LogStep(9, "Read attribute MinCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinCompPressure::Id); + } + case 10: { + LogStep(10, "Read attribute MaxCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxCompPressure::Id); + } + case 11: { + LogStep(11, "Read attribute MinConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstSpeed::Id); + } + case 12: { + LogStep(12, "Read attribute MaxConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id); + } + case 13: { + LogStep(13, "Read attribute MinConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstFlow::Id); + } + case 14: { + LogStep(14, "Read attribute MaxConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstFlow::Id); + } + case 15: { + LogStep(15, "Read attribute MinConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstTemp::Id); + } + case 16: { + LogStep(16, "Read attribute MaxConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstTemp::Id); + } + case 17: { + LogStep(17, "Read attribute PumpStatus"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::PumpStatus::Id); + } + case 18: { + LogStep(18, "Read attribute Speed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Speed::Id); + } + case 19: { + LogStep(19, "Read attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 20: { + LogStep(20, "Read attribute Power"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Power::Id); + } + case 21: { + LogStep(21, "Read attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 22: { + LogStep(22, "Read attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 23: { + LogStep(23, "Write attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 24: { + LogStep(24, "Write attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 25: { + LogStep(25, "Write attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 26: { + LogStep(26, "Write attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 27: { + LogStep(27, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 28: { + LogStep(28, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 29: { + LogStep(29, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TMP_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TMP_3_1_SimulatedSuite() : TestCommand("Test_TC_TMP_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TMP_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + std::unique_ptr GetTestCommand(std::string testName) { if (testName == "Test_TC_BINFO_2_3_Simulated") @@ -2518,6 +5316,90 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_LTIME_1_1_SimulatedSuite()); } + if (testName == "Test_TC_ILL_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_ILL_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGETH_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_6_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_6_1_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_7_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_7_1_SimulatedSuite()); + } + if (testName == "Test_TC_CC_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_4_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_4_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_5_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_5_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_6_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_6_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_7_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_7_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_9_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_9_4_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_3_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_3_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_LVL_2_3_Simulated") + { + return std::unique_ptr(new Test_TC_LVL_2_3_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_TSUIC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TSUIC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PCC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PCC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_TMP_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TMP_3_1_SimulatedSuite()); + } return nullptr; } @@ -2549,4 +5431,25 @@ void PrintTestCommands() ChipLogError(chipTool, "\t* Test_TC_ULABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_FLABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LTIME_1_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_ILL_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGETH_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_6_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_7_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_4_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_5_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_6_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_7_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_9_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_LVL_2_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TSUIC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PCC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TMP_3_1_Simulated"); } From 80bce566735d85e9da03e0d7eeac99e2d13c4cd5 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 24 May 2023 18:56:16 -0400 Subject: [PATCH 17/38] Mark a session defunct if an attempt to send a message on it fails outright. (#26778) This is most likely a "No route to host" error or something like that, which _may_ get cleared up with a new dns-sd resolve and session re-establishment. --- src/messaging/ExchangeContext.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/messaging/ExchangeContext.cpp b/src/messaging/ExchangeContext.cpp index bcdd4ea643af72..05d2b5fc026bec 100644 --- a/src/messaging/ExchangeContext.cpp +++ b/src/messaging/ExchangeContext.cpp @@ -203,6 +203,7 @@ CHIP_ERROR ExchangeContext::SendMessage(Protocols::Id protocolId, uint8_t msgTyp return CHIP_ERROR_MISSING_SECURE_SESSION; } + SessionHandle session = GetSessionHandle(); CHIP_ERROR err; #if CONFIG_BUILD_FOR_HOST_UNIT_TEST @@ -213,17 +214,29 @@ CHIP_ERROR ExchangeContext::SendMessage(Protocols::Id protocolId, uint8_t msgTyp else { #endif - err = mDispatch.SendMessage(GetExchangeMgr()->GetSessionManager(), mSession.Get().Value(), mExchangeId, IsInitiator(), + err = mDispatch.SendMessage(GetExchangeMgr()->GetSessionManager(), session, mExchangeId, IsInitiator(), GetReliableMessageContext(), reliableTransmissionRequested, protocolId, msgType, std::move(msgBuf)); #if CONFIG_BUILD_FOR_HOST_UNIT_TEST } #endif - // We should only cancel the response timer if the ExchangeContext fails to send the message that starts the response timer. - if (err != CHIP_NO_ERROR && startedResponseTimer) + if (err != CHIP_NO_ERROR) { - CancelResponseTimer(); - SetResponseExpected(false); + // We should only cancel the response timer if the ExchangeContext fails to send the message that starts the response + // timer. + if (startedResponseTimer) + { + CancelResponseTimer(); + SetResponseExpected(false); + } + + // If we can't even send a message (send failed with a non-transient + // error), mark the session as defunct, just like we would if we + // thought we sent the message and never got a response. + if (session->IsSecureSession() && session->AsSecureSession()->IsCASESession()) + { + session->AsSecureSession()->MarkAsDefunct(); + } } // Standalone acks are not application-level message sends. From 4699e199e791eb1c86339ea6862bc379d3d87c53 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Wed, 24 May 2023 20:59:48 -0400 Subject: [PATCH 18/38] Stop running prettify during regen_all for java files (#26795) * Remove run of java prettify on jinja codegen. * zap regen all * Make linter happy --- scripts/tools/zap_regen_all.py | 26 - .../devicecontroller/ClusterIDMapping.java | 27978 ++++++------ .../devicecontroller/ClusterReadMapping.java | 35341 +++++++--------- .../devicecontroller/ClusterWriteMapping.java | 7717 ++-- 4 files changed, 32719 insertions(+), 38343 deletions(-) diff --git a/scripts/tools/zap_regen_all.py b/scripts/tools/zap_regen_all.py index 67a214599d4bf1..98582761917869 100755 --- a/scripts/tools/zap_regen_all.py +++ b/scripts/tools/zap_regen_all.py @@ -24,8 +24,6 @@ import sys import tempfile import time -import traceback -import urllib.request from dataclasses import dataclass from enum import Flag, auto from pathlib import Path @@ -216,34 +214,10 @@ def __init__(self, generator: str, output_directory: str, idl_path: str): self.command = ["./scripts/codegen.py", "--output-dir", output_directory, "--generator", generator, idl_path] - def runJavaPrettifier(self): - try: - java_outputs = subprocess.check_output(["./scripts/codegen.py", "--name-only", "--generator", - self.generator, "--log-level", "fatal", self.idl_path]).decode("utf8").split("\n") - java_outputs = [os.path.join(self.output_directory, name) for name in java_outputs if name] - - logging.info("Prettifying %d java files:", len(java_outputs)) - for name in java_outputs: - logging.info(" %s" % name) - - # Keep this version in sync with what restyler uses (https://github.com/project-chip/connectedhomeip/blob/master/.restyled.yaml). - FORMAT_VERSION = "1.6" - URL_PREFIX = 'https://github.com/google/google-java-format/releases/download/google-java-format' - JAR_NAME = f"google-java-format-{FORMAT_VERSION}-all-deps.jar" - jar_url = f"{URL_PREFIX}-{FORMAT_VERSION}/{JAR_NAME}" - - path, http_message = urllib.request.urlretrieve(jar_url, Path.home().joinpath(JAR_NAME).as_posix()) - - subprocess.check_call(['java', '-jar', path, '--replace'] + java_outputs) - except Exception as err: - traceback.print_exception(err) - print('google-java-format error:', err) - def generate(self) -> TargetRunStats: generate_start = time.time() subprocess.check_call(self.command) - self.runJavaPrettifier() generate_end = time.time() diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java index a8177c5fda8ca4..6b1923486f9f85 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java @@ -17,15150 +17,12992 @@ package chip.devicecontroller; public class ClusterIDMapping { - public interface BaseCluster { - long getID(); - - String getAttributeName(long id) throws NoSuchFieldError; - - String getEventName(long id) throws NoSuchFieldError; - - String getCommandName(long id) throws NoSuchFieldError; - - long getAttributeID(String name) throws IllegalArgumentException; - - long getEventID(String name) throws IllegalArgumentException; - - long getCommandID(String name) throws IllegalArgumentException; - } - - public static BaseCluster getCluster(long clusterId) { - if (clusterId == Identify.ID) { - return new Identify(); - } - if (clusterId == Groups.ID) { - return new Groups(); - } - if (clusterId == Scenes.ID) { - return new Scenes(); - } - if (clusterId == OnOff.ID) { - return new OnOff(); - } - if (clusterId == OnOffSwitchConfiguration.ID) { - return new OnOffSwitchConfiguration(); - } - if (clusterId == LevelControl.ID) { - return new LevelControl(); - } - if (clusterId == BinaryInputBasic.ID) { - return new BinaryInputBasic(); - } - if (clusterId == PulseWidthModulation.ID) { - return new PulseWidthModulation(); - } - if (clusterId == Descriptor.ID) { - return new Descriptor(); - } - if (clusterId == Binding.ID) { - return new Binding(); - } - if (clusterId == AccessControl.ID) { - return new AccessControl(); - } - if (clusterId == Actions.ID) { - return new Actions(); - } - if (clusterId == BasicInformation.ID) { - return new BasicInformation(); - } - if (clusterId == OtaSoftwareUpdateProvider.ID) { - return new OtaSoftwareUpdateProvider(); - } - if (clusterId == OtaSoftwareUpdateRequestor.ID) { - return new OtaSoftwareUpdateRequestor(); - } - if (clusterId == LocalizationConfiguration.ID) { - return new LocalizationConfiguration(); - } - if (clusterId == TimeFormatLocalization.ID) { - return new TimeFormatLocalization(); - } - if (clusterId == UnitLocalization.ID) { - return new UnitLocalization(); - } - if (clusterId == PowerSourceConfiguration.ID) { - return new PowerSourceConfiguration(); - } - if (clusterId == PowerSource.ID) { - return new PowerSource(); - } - if (clusterId == GeneralCommissioning.ID) { - return new GeneralCommissioning(); - } - if (clusterId == NetworkCommissioning.ID) { - return new NetworkCommissioning(); - } - if (clusterId == DiagnosticLogs.ID) { - return new DiagnosticLogs(); - } - if (clusterId == GeneralDiagnostics.ID) { - return new GeneralDiagnostics(); - } - if (clusterId == SoftwareDiagnostics.ID) { - return new SoftwareDiagnostics(); - } - if (clusterId == ThreadNetworkDiagnostics.ID) { - return new ThreadNetworkDiagnostics(); - } - if (clusterId == WiFiNetworkDiagnostics.ID) { - return new WiFiNetworkDiagnostics(); - } - if (clusterId == EthernetNetworkDiagnostics.ID) { - return new EthernetNetworkDiagnostics(); - } - if (clusterId == TimeSynchronization.ID) { - return new TimeSynchronization(); - } - if (clusterId == BridgedDeviceBasicInformation.ID) { - return new BridgedDeviceBasicInformation(); - } - if (clusterId == Switch.ID) { - return new Switch(); - } - if (clusterId == AdministratorCommissioning.ID) { - return new AdministratorCommissioning(); - } - if (clusterId == OperationalCredentials.ID) { - return new OperationalCredentials(); - } - if (clusterId == GroupKeyManagement.ID) { - return new GroupKeyManagement(); - } - if (clusterId == FixedLabel.ID) { - return new FixedLabel(); - } - if (clusterId == UserLabel.ID) { - return new UserLabel(); - } - if (clusterId == ProxyConfiguration.ID) { - return new ProxyConfiguration(); - } - if (clusterId == ProxyDiscovery.ID) { - return new ProxyDiscovery(); - } - if (clusterId == ProxyValid.ID) { - return new ProxyValid(); - } - if (clusterId == BooleanState.ID) { - return new BooleanState(); - } - if (clusterId == IcdManagement.ID) { - return new IcdManagement(); - } - if (clusterId == ModeSelect.ID) { - return new ModeSelect(); - } - if (clusterId == TemperatureControl.ID) { - return new TemperatureControl(); - } - if (clusterId == RefrigeratorAlarm.ID) { - return new RefrigeratorAlarm(); - } - if (clusterId == AirQuality.ID) { - return new AirQuality(); - } - if (clusterId == SmokeCoAlarm.ID) { - return new SmokeCoAlarm(); - } - if (clusterId == HepaFilterMonitoring.ID) { - return new HepaFilterMonitoring(); - } - if (clusterId == ActivatedCarbonFilterMonitoring.ID) { - return new ActivatedCarbonFilterMonitoring(); - } - if (clusterId == CeramicFilterMonitoring.ID) { - return new CeramicFilterMonitoring(); - } - if (clusterId == ElectrostaticFilterMonitoring.ID) { - return new ElectrostaticFilterMonitoring(); - } - if (clusterId == UvFilterMonitoring.ID) { - return new UvFilterMonitoring(); - } - if (clusterId == IonizingFilterMonitoring.ID) { - return new IonizingFilterMonitoring(); - } - if (clusterId == ZeoliteFilterMonitoring.ID) { - return new ZeoliteFilterMonitoring(); - } - if (clusterId == OzoneFilterMonitoring.ID) { - return new OzoneFilterMonitoring(); - } - if (clusterId == WaterTankMonitoring.ID) { - return new WaterTankMonitoring(); - } - if (clusterId == FuelTankMonitoring.ID) { - return new FuelTankMonitoring(); - } - if (clusterId == InkCartridgeMonitoring.ID) { - return new InkCartridgeMonitoring(); - } - if (clusterId == TonerCartridgeMonitoring.ID) { - return new TonerCartridgeMonitoring(); + public interface BaseCluster { + long getID(); + String getAttributeName(long id) throws NoSuchFieldError; + String getEventName(long id) throws NoSuchFieldError; + String getCommandName(long id) throws NoSuchFieldError; + long getAttributeID(String name) throws IllegalArgumentException; + long getEventID(String name) throws IllegalArgumentException; + long getCommandID(String name) throws IllegalArgumentException; } - if (clusterId == DoorLock.ID) { - return new DoorLock(); - } - if (clusterId == WindowCovering.ID) { - return new WindowCovering(); - } - if (clusterId == BarrierControl.ID) { - return new BarrierControl(); - } - if (clusterId == PumpConfigurationAndControl.ID) { - return new PumpConfigurationAndControl(); - } - if (clusterId == Thermostat.ID) { - return new Thermostat(); - } - if (clusterId == FanControl.ID) { - return new FanControl(); - } - if (clusterId == ThermostatUserInterfaceConfiguration.ID) { - return new ThermostatUserInterfaceConfiguration(); - } - if (clusterId == ColorControl.ID) { - return new ColorControl(); - } - if (clusterId == BallastConfiguration.ID) { - return new BallastConfiguration(); - } - if (clusterId == IlluminanceMeasurement.ID) { - return new IlluminanceMeasurement(); - } - if (clusterId == TemperatureMeasurement.ID) { - return new TemperatureMeasurement(); - } - if (clusterId == PressureMeasurement.ID) { - return new PressureMeasurement(); - } - if (clusterId == FlowMeasurement.ID) { - return new FlowMeasurement(); - } - if (clusterId == RelativeHumidityMeasurement.ID) { - return new RelativeHumidityMeasurement(); - } - if (clusterId == OccupancySensing.ID) { - return new OccupancySensing(); - } - if (clusterId == WakeOnLan.ID) { - return new WakeOnLan(); - } - if (clusterId == Channel.ID) { - return new Channel(); - } - if (clusterId == TargetNavigator.ID) { - return new TargetNavigator(); - } - if (clusterId == MediaPlayback.ID) { - return new MediaPlayback(); - } - if (clusterId == MediaInput.ID) { - return new MediaInput(); - } - if (clusterId == LowPower.ID) { - return new LowPower(); - } - if (clusterId == KeypadInput.ID) { - return new KeypadInput(); - } - if (clusterId == ContentLauncher.ID) { - return new ContentLauncher(); - } - if (clusterId == AudioOutput.ID) { - return new AudioOutput(); - } - if (clusterId == ApplicationLauncher.ID) { - return new ApplicationLauncher(); - } - if (clusterId == ApplicationBasic.ID) { - return new ApplicationBasic(); - } - if (clusterId == AccountLogin.ID) { - return new AccountLogin(); - } - if (clusterId == ElectricalMeasurement.ID) { - return new ElectricalMeasurement(); - } - if (clusterId == UnitTesting.ID) { - return new UnitTesting(); - } - if (clusterId == FaultInjection.ID) { - return new FaultInjection(); - } - return null; - } - - public static class Identify implements BaseCluster { - public static final long ID = 3L; - - public long getID() { - return ID; - } - - public enum Attribute { - IdentifyTime(0L), - IdentifyType(1L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + public static BaseCluster getCluster(long clusterId) { + if (clusterId == Identify.ID) { + return new Identify(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - Identify(0L), - TriggerEffect(64L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == Groups.ID) { + return new Groups(); } - throw new NoSuchFieldError(); - } - } - - public enum IdentifyCommandField { - IdentifyTime(0), - ; - private final int id; - - IdentifyCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static IdentifyCommandField value(int id) throws NoSuchFieldError { - for (IdentifyCommandField field : IdentifyCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == Scenes.ID) { + return new Scenes(); } - throw new NoSuchFieldError(); - } - } - - public enum TriggerEffectCommandField { - EffectIdentifier(0), - EffectVariant(1), - ; - private final int id; - - TriggerEffectCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TriggerEffectCommandField value(int id) throws NoSuchFieldError { - for (TriggerEffectCommandField field : TriggerEffectCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == OnOff.ID) { + return new OnOff(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Groups implements BaseCluster { - public static final long ID = 4L; - - public long getID() { - return ID; - } - - public enum Attribute { - NameSupport(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == OnOffSwitchConfiguration.ID) { + return new OnOffSwitchConfiguration(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - AddGroup(0L), - ViewGroup(1L), - GetGroupMembership(2L), - RemoveGroup(3L), - RemoveAllGroups(4L), - AddGroupIfIdentifying(5L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AddGroupCommandField { - GroupID(0), - GroupName(1), - ; - private final int id; - - AddGroupCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AddGroupCommandField value(int id) throws NoSuchFieldError { - for (AddGroupCommandField field : AddGroupCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == LevelControl.ID) { + return new LevelControl(); } - throw new NoSuchFieldError(); - } - } - - public enum ViewGroupCommandField { - GroupID(0), - ; - private final int id; - - ViewGroupCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ViewGroupCommandField value(int id) throws NoSuchFieldError { - for (ViewGroupCommandField field : ViewGroupCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == BinaryInputBasic.ID) { + return new BinaryInputBasic(); } - throw new NoSuchFieldError(); - } - } - - public enum GetGroupMembershipCommandField { - GroupList(0), - ; - private final int id; - - GetGroupMembershipCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetGroupMembershipCommandField value(int id) throws NoSuchFieldError { - for (GetGroupMembershipCommandField field : GetGroupMembershipCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == PulseWidthModulation.ID) { + return new PulseWidthModulation(); } - throw new NoSuchFieldError(); - } - } - - public enum RemoveGroupCommandField { - GroupID(0), - ; - private final int id; - - RemoveGroupCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RemoveGroupCommandField value(int id) throws NoSuchFieldError { - for (RemoveGroupCommandField field : RemoveGroupCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == Descriptor.ID) { + return new Descriptor(); } - throw new NoSuchFieldError(); - } - } - - public enum AddGroupIfIdentifyingCommandField { - GroupID(0), - GroupName(1), - ; - private final int id; - - AddGroupIfIdentifyingCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AddGroupIfIdentifyingCommandField value(int id) throws NoSuchFieldError { - for (AddGroupIfIdentifyingCommandField field : AddGroupIfIdentifyingCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == Binding.ID) { + return new Binding(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Scenes implements BaseCluster { - public static final long ID = 5L; - - public long getID() { - return ID; - } - - public enum Attribute { - SceneCount(0L), - CurrentScene(1L), - CurrentGroup(2L), - SceneValid(3L), - NameSupport(4L), - LastConfiguredBy(5L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == AccessControl.ID) { + return new AccessControl(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - AddScene(0L), - ViewScene(1L), - RemoveScene(2L), - RemoveAllScenes(3L), - StoreScene(4L), - RecallScene(5L), - GetSceneMembership(6L), - EnhancedAddScene(64L), - EnhancedViewScene(65L), - CopyScene(66L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AddSceneCommandField { - GroupID(0), - SceneID(1), - TransitionTime(2), - SceneName(3), - ExtensionFieldSets(4), - ; - private final int id; - - AddSceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AddSceneCommandField value(int id) throws NoSuchFieldError { - for (AddSceneCommandField field : AddSceneCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ViewSceneCommandField { - GroupID(0), - SceneID(1), - ; - private final int id; - - ViewSceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ViewSceneCommandField value(int id) throws NoSuchFieldError { - for (ViewSceneCommandField field : ViewSceneCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == Actions.ID) { + return new Actions(); } - throw new NoSuchFieldError(); - } - } - - public enum RemoveSceneCommandField { - GroupID(0), - SceneID(1), - ; - private final int id; - - RemoveSceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RemoveSceneCommandField value(int id) throws NoSuchFieldError { - for (RemoveSceneCommandField field : RemoveSceneCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == BasicInformation.ID) { + return new BasicInformation(); } - throw new NoSuchFieldError(); - } - } - - public enum RemoveAllScenesCommandField { - GroupID(0), - ; - private final int id; - - RemoveAllScenesCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RemoveAllScenesCommandField value(int id) throws NoSuchFieldError { - for (RemoveAllScenesCommandField field : RemoveAllScenesCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == OtaSoftwareUpdateProvider.ID) { + return new OtaSoftwareUpdateProvider(); } - throw new NoSuchFieldError(); - } - } - - public enum StoreSceneCommandField { - GroupID(0), - SceneID(1), - ; - private final int id; - - StoreSceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StoreSceneCommandField value(int id) throws NoSuchFieldError { - for (StoreSceneCommandField field : StoreSceneCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == OtaSoftwareUpdateRequestor.ID) { + return new OtaSoftwareUpdateRequestor(); } - throw new NoSuchFieldError(); - } - } - - public enum RecallSceneCommandField { - GroupID(0), - SceneID(1), - TransitionTime(2), - ; - private final int id; - - RecallSceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RecallSceneCommandField value(int id) throws NoSuchFieldError { - for (RecallSceneCommandField field : RecallSceneCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetSceneMembershipCommandField { - GroupID(0), - ; - private final int id; - - GetSceneMembershipCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetSceneMembershipCommandField value(int id) throws NoSuchFieldError { - for (GetSceneMembershipCommandField field : GetSceneMembershipCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == LocalizationConfiguration.ID) { + return new LocalizationConfiguration(); } - throw new NoSuchFieldError(); - } - } - - public enum EnhancedAddSceneCommandField { - GroupID(0), - SceneID(1), - TransitionTime(2), - SceneName(3), - ExtensionFieldSets(4), - ; - private final int id; - - EnhancedAddSceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnhancedAddSceneCommandField value(int id) throws NoSuchFieldError { - for (EnhancedAddSceneCommandField field : EnhancedAddSceneCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum EnhancedViewSceneCommandField { - GroupID(0), - SceneID(1), - ; - private final int id; - - EnhancedViewSceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnhancedViewSceneCommandField value(int id) throws NoSuchFieldError { - for (EnhancedViewSceneCommandField field : EnhancedViewSceneCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == TimeFormatLocalization.ID) { + return new TimeFormatLocalization(); } - throw new NoSuchFieldError(); - } - } - - public enum CopySceneCommandField { - Mode(0), - GroupIdentifierFrom(1), - SceneIdentifierFrom(2), - GroupIdentifierTo(3), - SceneIdentifierTo(4), - ; - private final int id; - - CopySceneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static CopySceneCommandField value(int id) throws NoSuchFieldError { - for (CopySceneCommandField field : CopySceneCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class OnOff implements BaseCluster { - public static final long ID = 6L; - - public long getID() { - return ID; - } - - public enum Attribute { - OnOff(0L), - GlobalSceneControl(16384L), - OnTime(16385L), - OffWaitTime(16386L), - StartUpOnOff(16387L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == UnitLocalization.ID) { + return new UnitLocalization(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - Off(0L), - On(1L), - Toggle(2L), - OffWithEffect(64L), - OnWithRecallGlobalScene(65L), - OnWithTimedOff(66L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum OffWithEffectCommandField { - EffectIdentifier(0), - EffectVariant(1), - ; - private final int id; - - OffWithEffectCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static OffWithEffectCommandField value(int id) throws NoSuchFieldError { - for (OffWithEffectCommandField field : OffWithEffectCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum OnWithTimedOffCommandField { - OnOffControl(0), - OnTime(1), - OffWaitTime(2), - ; - private final int id; - - OnWithTimedOffCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static OnWithTimedOffCommandField value(int id) throws NoSuchFieldError { - for (OnWithTimedOffCommandField field : OnWithTimedOffCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class OnOffSwitchConfiguration implements BaseCluster { - public static final long ID = 7L; - - public long getID() { - return ID; - } - - public enum Attribute { - SwitchType(0L), - SwitchActions(16L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class LevelControl implements BaseCluster { - public static final long ID = 8L; - - public long getID() { - return ID; - } - - public enum Attribute { - CurrentLevel(0L), - RemainingTime(1L), - MinLevel(2L), - MaxLevel(3L), - CurrentFrequency(4L), - MinFrequency(5L), - MaxFrequency(6L), - Options(15L), - OnOffTransitionTime(16L), - OnLevel(17L), - OnTransitionTime(18L), - OffTransitionTime(19L), - DefaultMoveRate(20L), - StartUpCurrentLevel(16384L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - MoveToLevel(0L), - Move(1L), - Step(2L), - Stop(3L), - MoveToLevelWithOnOff(4L), - MoveWithOnOff(5L), - StepWithOnOff(6L), - StopWithOnOff(7L), - MoveToClosestFrequency(8L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToLevelCommandField { - Level(0), - TransitionTime(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveToLevelCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToLevelCommandField value(int id) throws NoSuchFieldError { - for (MoveToLevelCommandField field : MoveToLevelCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveCommandField { - MoveMode(0), - Rate(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveCommandField value(int id) throws NoSuchFieldError { - for (MoveCommandField field : MoveCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StepCommandField { - StepMode(0), - StepSize(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - StepCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StepCommandField value(int id) throws NoSuchFieldError { - for (StepCommandField field : StepCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StopCommandField { - OptionsMask(0), - OptionsOverride(1), - ; - private final int id; - - StopCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StopCommandField value(int id) throws NoSuchFieldError { - for (StopCommandField field : StopCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToLevelWithOnOffCommandField { - Level(0), - TransitionTime(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveToLevelWithOnOffCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToLevelWithOnOffCommandField value(int id) throws NoSuchFieldError { - for (MoveToLevelWithOnOffCommandField field : MoveToLevelWithOnOffCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveWithOnOffCommandField { - MoveMode(0), - Rate(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveWithOnOffCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveWithOnOffCommandField value(int id) throws NoSuchFieldError { - for (MoveWithOnOffCommandField field : MoveWithOnOffCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StepWithOnOffCommandField { - StepMode(0), - StepSize(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - StepWithOnOffCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StepWithOnOffCommandField value(int id) throws NoSuchFieldError { - for (StepWithOnOffCommandField field : StepWithOnOffCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StopWithOnOffCommandField { - OptionsMask(0), - OptionsOverride(1), - ; - private final int id; - - StopWithOnOffCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StopWithOnOffCommandField value(int id) throws NoSuchFieldError { - for (StopWithOnOffCommandField field : StopWithOnOffCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToClosestFrequencyCommandField { - Frequency(0), - ; - private final int id; - - MoveToClosestFrequencyCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToClosestFrequencyCommandField value(int id) throws NoSuchFieldError { - for (MoveToClosestFrequencyCommandField field : - MoveToClosestFrequencyCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class BinaryInputBasic implements BaseCluster { - public static final long ID = 15L; - - public long getID() { - return ID; - } - - public enum Attribute { - ActiveText(4L), - Description(28L), - InactiveText(46L), - OutOfService(81L), - Polarity(84L), - PresentValue(85L), - Reliability(103L), - StatusFlags(111L), - ApplicationType(256L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class PulseWidthModulation implements BaseCluster { - public static final long ID = 28L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Descriptor implements BaseCluster { - public static final long ID = 29L; - - public long getID() { - return ID; - } - - public enum Attribute { - DeviceTypeList(0L), - ServerList(1L), - ClientList(2L), - PartsList(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Binding implements BaseCluster { - public static final long ID = 30L; - - public long getID() { - return ID; - } - - public enum Attribute { - Binding(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class AccessControl implements BaseCluster { - public static final long ID = 31L; - - public long getID() { - return ID; - } - - public enum Attribute { - Acl(0L), - Extension(1L), - SubjectsPerAccessControlEntry(2L), - TargetsPerAccessControlEntry(3L), - AccessControlEntriesPerFabric(4L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - AccessControlEntryChanged(0L), - AccessControlExtensionChanged(1L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Actions implements BaseCluster { - public static final long ID = 37L; - - public long getID() { - return ID; - } - - public enum Attribute { - ActionList(0L), - EndpointLists(1L), - SetupURL(2L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - StateChanged(0L), - ActionFailed(1L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - InstantAction(0L), - InstantActionWithTransition(1L), - StartAction(2L), - StartActionWithDuration(3L), - StopAction(4L), - PauseAction(5L), - PauseActionWithDuration(6L), - ResumeAction(7L), - EnableAction(8L), - EnableActionWithDuration(9L), - DisableAction(10L), - DisableActionWithDuration(11L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum InstantActionCommandField { - ActionID(0), - InvokeID(1), - ; - private final int id; - - InstantActionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static InstantActionCommandField value(int id) throws NoSuchFieldError { - for (InstantActionCommandField field : InstantActionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum InstantActionWithTransitionCommandField { - ActionID(0), - InvokeID(1), - TransitionTime(2), - ; - private final int id; - - InstantActionWithTransitionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static InstantActionWithTransitionCommandField value(int id) throws NoSuchFieldError { - for (InstantActionWithTransitionCommandField field : - InstantActionWithTransitionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StartActionCommandField { - ActionID(0), - InvokeID(1), - ; - private final int id; - - StartActionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StartActionCommandField value(int id) throws NoSuchFieldError { - for (StartActionCommandField field : StartActionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StartActionWithDurationCommandField { - ActionID(0), - InvokeID(1), - Duration(2), - ; - private final int id; - - StartActionWithDurationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StartActionWithDurationCommandField value(int id) throws NoSuchFieldError { - for (StartActionWithDurationCommandField field : - StartActionWithDurationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StopActionCommandField { - ActionID(0), - InvokeID(1), - ; - private final int id; - - StopActionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StopActionCommandField value(int id) throws NoSuchFieldError { - for (StopActionCommandField field : StopActionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum PauseActionCommandField { - ActionID(0), - InvokeID(1), - ; - private final int id; - - PauseActionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static PauseActionCommandField value(int id) throws NoSuchFieldError { - for (PauseActionCommandField field : PauseActionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum PauseActionWithDurationCommandField { - ActionID(0), - InvokeID(1), - Duration(2), - ; - private final int id; - - PauseActionWithDurationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static PauseActionWithDurationCommandField value(int id) throws NoSuchFieldError { - for (PauseActionWithDurationCommandField field : - PauseActionWithDurationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ResumeActionCommandField { - ActionID(0), - InvokeID(1), - ; - private final int id; - - ResumeActionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ResumeActionCommandField value(int id) throws NoSuchFieldError { - for (ResumeActionCommandField field : ResumeActionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum EnableActionCommandField { - ActionID(0), - InvokeID(1), - ; - private final int id; - - EnableActionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnableActionCommandField value(int id) throws NoSuchFieldError { - for (EnableActionCommandField field : EnableActionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum EnableActionWithDurationCommandField { - ActionID(0), - InvokeID(1), - Duration(2), - ; - private final int id; - - EnableActionWithDurationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnableActionWithDurationCommandField value(int id) throws NoSuchFieldError { - for (EnableActionWithDurationCommandField field : - EnableActionWithDurationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum DisableActionCommandField { - ActionID(0), - InvokeID(1), - ; - private final int id; - - DisableActionCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static DisableActionCommandField value(int id) throws NoSuchFieldError { - for (DisableActionCommandField field : DisableActionCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum DisableActionWithDurationCommandField { - ActionID(0), - InvokeID(1), - Duration(2), - ; - private final int id; - - DisableActionWithDurationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static DisableActionWithDurationCommandField value(int id) throws NoSuchFieldError { - for (DisableActionWithDurationCommandField field : - DisableActionWithDurationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class BasicInformation implements BaseCluster { - public static final long ID = 40L; - - public long getID() { - return ID; - } - - public enum Attribute { - DataModelRevision(0L), - VendorName(1L), - VendorID(2L), - ProductName(3L), - ProductID(4L), - NodeLabel(5L), - Location(6L), - HardwareVersion(7L), - HardwareVersionString(8L), - SoftwareVersion(9L), - SoftwareVersionString(10L), - ManufacturingDate(11L), - PartNumber(12L), - ProductURL(13L), - ProductLabel(14L), - SerialNumber(15L), - LocalConfigDisabled(16L), - Reachable(17L), - UniqueID(18L), - CapabilityMinima(19L), - ProductAppearance(20L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - StartUp(0L), - ShutDown(1L), - Leave(2L), - ReachableChanged(3L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - MfgSpecificPing(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class OtaSoftwareUpdateProvider implements BaseCluster { - public static final long ID = 41L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - QueryImage(0L), - ApplyUpdateRequest(2L), - NotifyUpdateApplied(4L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum QueryImageCommandField { - VendorID(0), - ProductID(1), - SoftwareVersion(2), - ProtocolsSupported(3), - HardwareVersion(4), - Location(5), - RequestorCanConsent(6), - MetadataForProvider(7), - ; - private final int id; - - QueryImageCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static QueryImageCommandField value(int id) throws NoSuchFieldError { - for (QueryImageCommandField field : QueryImageCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ApplyUpdateRequestCommandField { - UpdateToken(0), - NewVersion(1), - ; - private final int id; - - ApplyUpdateRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ApplyUpdateRequestCommandField value(int id) throws NoSuchFieldError { - for (ApplyUpdateRequestCommandField field : ApplyUpdateRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum NotifyUpdateAppliedCommandField { - UpdateToken(0), - SoftwareVersion(1), - ; - private final int id; - - NotifyUpdateAppliedCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static NotifyUpdateAppliedCommandField value(int id) throws NoSuchFieldError { - for (NotifyUpdateAppliedCommandField field : NotifyUpdateAppliedCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class OtaSoftwareUpdateRequestor implements BaseCluster { - public static final long ID = 42L; - - public long getID() { - return ID; - } - - public enum Attribute { - DefaultOTAProviders(0L), - UpdatePossible(1L), - UpdateState(2L), - UpdateStateProgress(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - StateTransition(0L), - VersionApplied(1L), - DownloadError(2L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - AnnounceOTAProvider(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AnnounceOTAProviderCommandField { - ProviderNodeID(0), - VendorID(1), - AnnouncementReason(2), - MetadataForNode(3), - Endpoint(4), - ; - private final int id; - - AnnounceOTAProviderCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AnnounceOTAProviderCommandField value(int id) throws NoSuchFieldError { - for (AnnounceOTAProviderCommandField field : AnnounceOTAProviderCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class LocalizationConfiguration implements BaseCluster { - public static final long ID = 43L; - - public long getID() { - return ID; - } - - public enum Attribute { - ActiveLocale(0L), - SupportedLocales(1L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class TimeFormatLocalization implements BaseCluster { - public static final long ID = 44L; - - public long getID() { - return ID; - } - - public enum Attribute { - HourFormat(0L), - ActiveCalendarType(1L), - SupportedCalendarTypes(2L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class UnitLocalization implements BaseCluster { - public static final long ID = 45L; - - public long getID() { - return ID; - } - - public enum Attribute { - TemperatureUnit(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class PowerSourceConfiguration implements BaseCluster { - public static final long ID = 46L; - - public long getID() { - return ID; - } - - public enum Attribute { - Sources(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class PowerSource implements BaseCluster { - public static final long ID = 47L; - - public long getID() { - return ID; - } - - public enum Attribute { - Status(0L), - Order(1L), - Description(2L), - WiredAssessedInputVoltage(3L), - WiredAssessedInputFrequency(4L), - WiredCurrentType(5L), - WiredAssessedCurrent(6L), - WiredNominalVoltage(7L), - WiredMaximumCurrent(8L), - WiredPresent(9L), - ActiveWiredFaults(10L), - BatVoltage(11L), - BatPercentRemaining(12L), - BatTimeRemaining(13L), - BatChargeLevel(14L), - BatReplacementNeeded(15L), - BatReplaceability(16L), - BatPresent(17L), - ActiveBatFaults(18L), - BatReplacementDescription(19L), - BatCommonDesignation(20L), - BatANSIDesignation(21L), - BatIECDesignation(22L), - BatApprovedChemistry(23L), - BatCapacity(24L), - BatQuantity(25L), - BatChargeState(26L), - BatTimeToFullCharge(27L), - BatFunctionalWhileCharging(28L), - BatChargingCurrent(29L), - ActiveBatChargeFaults(30L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - WiredFaultChange(0L), - BatFaultChange(1L), - BatChargeFaultChange(2L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class GeneralCommissioning implements BaseCluster { - public static final long ID = 48L; - - public long getID() { - return ID; - } - - public enum Attribute { - Breadcrumb(0L), - BasicCommissioningInfo(1L), - RegulatoryConfig(2L), - LocationCapability(3L), - SupportsConcurrentConnection(4L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ArmFailSafe(0L), - SetRegulatoryConfig(2L), - CommissioningComplete(4L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ArmFailSafeCommandField { - ExpiryLengthSeconds(0), - Breadcrumb(1), - ; - private final int id; - - ArmFailSafeCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ArmFailSafeCommandField value(int id) throws NoSuchFieldError { - for (ArmFailSafeCommandField field : ArmFailSafeCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetRegulatoryConfigCommandField { - NewRegulatoryConfig(0), - CountryCode(1), - Breadcrumb(2), - ; - private final int id; - - SetRegulatoryConfigCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetRegulatoryConfigCommandField value(int id) throws NoSuchFieldError { - for (SetRegulatoryConfigCommandField field : SetRegulatoryConfigCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class NetworkCommissioning implements BaseCluster { - public static final long ID = 49L; - - public long getID() { - return ID; - } - - public enum Attribute { - MaxNetworks(0L), - Networks(1L), - ScanMaxTimeSeconds(2L), - ConnectMaxTimeSeconds(3L), - InterfaceEnabled(4L), - LastNetworkingStatus(5L), - LastNetworkID(6L), - LastConnectErrorValue(7L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ScanNetworks(0L), - AddOrUpdateWiFiNetwork(2L), - AddOrUpdateThreadNetwork(3L), - RemoveNetwork(4L), - ConnectNetwork(6L), - ReorderNetwork(8L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ScanNetworksCommandField { - Ssid(0), - Breadcrumb(1), - ; - private final int id; - - ScanNetworksCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ScanNetworksCommandField value(int id) throws NoSuchFieldError { - for (ScanNetworksCommandField field : ScanNetworksCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AddOrUpdateWiFiNetworkCommandField { - Ssid(0), - Credentials(1), - Breadcrumb(2), - ; - private final int id; - - AddOrUpdateWiFiNetworkCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AddOrUpdateWiFiNetworkCommandField value(int id) throws NoSuchFieldError { - for (AddOrUpdateWiFiNetworkCommandField field : - AddOrUpdateWiFiNetworkCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AddOrUpdateThreadNetworkCommandField { - OperationalDataset(0), - Breadcrumb(1), - ; - private final int id; - - AddOrUpdateThreadNetworkCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AddOrUpdateThreadNetworkCommandField value(int id) throws NoSuchFieldError { - for (AddOrUpdateThreadNetworkCommandField field : - AddOrUpdateThreadNetworkCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum RemoveNetworkCommandField { - NetworkID(0), - Breadcrumb(1), - ; - private final int id; - - RemoveNetworkCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RemoveNetworkCommandField value(int id) throws NoSuchFieldError { - for (RemoveNetworkCommandField field : RemoveNetworkCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ConnectNetworkCommandField { - NetworkID(0), - Breadcrumb(1), - ; - private final int id; - - ConnectNetworkCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ConnectNetworkCommandField value(int id) throws NoSuchFieldError { - for (ConnectNetworkCommandField field : ConnectNetworkCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ReorderNetworkCommandField { - NetworkID(0), - NetworkIndex(1), - Breadcrumb(2), - ; - private final int id; - - ReorderNetworkCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ReorderNetworkCommandField value(int id) throws NoSuchFieldError { - for (ReorderNetworkCommandField field : ReorderNetworkCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class DiagnosticLogs implements BaseCluster { - public static final long ID = 50L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - RetrieveLogsRequest(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum RetrieveLogsRequestCommandField { - Intent(0), - RequestedProtocol(1), - TransferFileDesignator(2), - ; - private final int id; - - RetrieveLogsRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RetrieveLogsRequestCommandField value(int id) throws NoSuchFieldError { - for (RetrieveLogsRequestCommandField field : RetrieveLogsRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class GeneralDiagnostics implements BaseCluster { - public static final long ID = 51L; - - public long getID() { - return ID; - } - - public enum Attribute { - NetworkInterfaces(0L), - RebootCount(1L), - UpTime(2L), - TotalOperationalHours(3L), - BootReason(4L), - ActiveHardwareFaults(5L), - ActiveRadioFaults(6L), - ActiveNetworkFaults(7L), - TestEventTriggersEnabled(8L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - HardwareFaultChange(0L), - RadioFaultChange(1L), - NetworkFaultChange(2L), - BootReason(3L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - TestEventTrigger(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestEventTriggerCommandField { - EnableKey(0), - EventTrigger(1), - ; - private final int id; - - TestEventTriggerCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestEventTriggerCommandField value(int id) throws NoSuchFieldError { - for (TestEventTriggerCommandField field : TestEventTriggerCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class SoftwareDiagnostics implements BaseCluster { - public static final long ID = 52L; - - public long getID() { - return ID; - } - - public enum Attribute { - ThreadMetrics(0L), - CurrentHeapFree(1L), - CurrentHeapUsed(2L), - CurrentHeapHighWatermark(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - SoftwareFault(0L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetWatermarks(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ThreadNetworkDiagnostics implements BaseCluster { - public static final long ID = 53L; - - public long getID() { - return ID; - } - - public enum Attribute { - Channel(0L), - RoutingRole(1L), - NetworkName(2L), - PanId(3L), - ExtendedPanId(4L), - MeshLocalPrefix(5L), - OverrunCount(6L), - NeighborTable(7L), - RouteTable(8L), - PartitionId(9L), - Weighting(10L), - DataVersion(11L), - StableDataVersion(12L), - LeaderRouterId(13L), - DetachedRoleCount(14L), - ChildRoleCount(15L), - RouterRoleCount(16L), - LeaderRoleCount(17L), - AttachAttemptCount(18L), - PartitionIdChangeCount(19L), - BetterPartitionAttachAttemptCount(20L), - ParentChangeCount(21L), - TxTotalCount(22L), - TxUnicastCount(23L), - TxBroadcastCount(24L), - TxAckRequestedCount(25L), - TxAckedCount(26L), - TxNoAckRequestedCount(27L), - TxDataCount(28L), - TxDataPollCount(29L), - TxBeaconCount(30L), - TxBeaconRequestCount(31L), - TxOtherCount(32L), - TxRetryCount(33L), - TxDirectMaxRetryExpiryCount(34L), - TxIndirectMaxRetryExpiryCount(35L), - TxErrCcaCount(36L), - TxErrAbortCount(37L), - TxErrBusyChannelCount(38L), - RxTotalCount(39L), - RxUnicastCount(40L), - RxBroadcastCount(41L), - RxDataCount(42L), - RxDataPollCount(43L), - RxBeaconCount(44L), - RxBeaconRequestCount(45L), - RxOtherCount(46L), - RxAddressFilteredCount(47L), - RxDestAddrFilteredCount(48L), - RxDuplicatedCount(49L), - RxErrNoFrameCount(50L), - RxErrUnknownNeighborCount(51L), - RxErrInvalidSrcAddrCount(52L), - RxErrSecCount(53L), - RxErrFcsCount(54L), - RxErrOtherCount(55L), - ActiveTimestamp(56L), - PendingTimestamp(57L), - Delay(58L), - SecurityPolicy(59L), - ChannelPage0Mask(60L), - OperationalDatasetComponents(61L), - ActiveNetworkFaultsList(62L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ConnectionStatus(0L), - NetworkFaultChange(1L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCounts(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class WiFiNetworkDiagnostics implements BaseCluster { - public static final long ID = 54L; - - public long getID() { - return ID; - } - - public enum Attribute { - Bssid(0L), - SecurityType(1L), - WiFiVersion(2L), - ChannelNumber(3L), - Rssi(4L), - BeaconLostCount(5L), - BeaconRxCount(6L), - PacketMulticastRxCount(7L), - PacketMulticastTxCount(8L), - PacketUnicastRxCount(9L), - PacketUnicastTxCount(10L), - CurrentMaxRate(11L), - OverrunCount(12L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - Disconnection(0L), - AssociationFailure(1L), - ConnectionStatus(2L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCounts(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class EthernetNetworkDiagnostics implements BaseCluster { - public static final long ID = 55L; - - public long getID() { - return ID; - } - - public enum Attribute { - PHYRate(0L), - FullDuplex(1L), - PacketRxCount(2L), - PacketTxCount(3L), - TxErrCount(4L), - CollisionCount(5L), - OverrunCount(6L), - CarrierDetect(7L), - TimeSinceReset(8L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCounts(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class TimeSynchronization implements BaseCluster { - public static final long ID = 56L; - - public long getID() { - return ID; - } - - public enum Attribute { - UTCTime(0L), - Granularity(1L), - TimeSource(2L), - TrustedTimeSource(3L), - DefaultNTP(4L), - TimeZone(5L), - DSTOffset(6L), - LocalTime(7L), - TimeZoneDatabase(8L), - NTPServerAvailable(9L), - TimeZoneListMaxSize(10L), - DSTOffsetListMaxSize(11L), - SupportsDNSResolve(12L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - DSTTableEmpty(0L), - DSTStatus(1L), - TimeZoneStatus(2L), - TimeFailure(3L), - MissingTrustedTimeSource(4L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - SetUTCTime(0L), - SetTrustedTimeSource(1L), - SetTimeZone(2L), - SetDSTOffset(4L), - SetDefaultNTP(5L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetUTCTimeCommandField { - UTCTime(0), - Granularity(1), - TimeSource(2), - ; - private final int id; - - SetUTCTimeCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetUTCTimeCommandField value(int id) throws NoSuchFieldError { - for (SetUTCTimeCommandField field : SetUTCTimeCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetTrustedTimeSourceCommandField { - TrustedTimeSource(0), - ; - private final int id; - - SetTrustedTimeSourceCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetTrustedTimeSourceCommandField value(int id) throws NoSuchFieldError { - for (SetTrustedTimeSourceCommandField field : SetTrustedTimeSourceCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetTimeZoneCommandField { - TimeZone(0), - ; - private final int id; - - SetTimeZoneCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetTimeZoneCommandField value(int id) throws NoSuchFieldError { - for (SetTimeZoneCommandField field : SetTimeZoneCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetDSTOffsetCommandField { - DSTOffset(0), - ; - private final int id; - - SetDSTOffsetCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetDSTOffsetCommandField value(int id) throws NoSuchFieldError { - for (SetDSTOffsetCommandField field : SetDSTOffsetCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetDefaultNTPCommandField { - DefaultNTP(0), - ; - private final int id; - - SetDefaultNTPCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetDefaultNTPCommandField value(int id) throws NoSuchFieldError { - for (SetDefaultNTPCommandField field : SetDefaultNTPCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class BridgedDeviceBasicInformation implements BaseCluster { - public static final long ID = 57L; - - public long getID() { - return ID; - } - - public enum Attribute { - VendorName(1L), - VendorID(2L), - ProductName(3L), - NodeLabel(5L), - HardwareVersion(7L), - HardwareVersionString(8L), - SoftwareVersion(9L), - SoftwareVersionString(10L), - ManufacturingDate(11L), - PartNumber(12L), - ProductURL(13L), - ProductLabel(14L), - SerialNumber(15L), - Reachable(17L), - UniqueID(18L), - ProductAppearance(20L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - StartUp(0L), - ShutDown(1L), - Leave(2L), - ReachableChanged(3L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Switch implements BaseCluster { - public static final long ID = 59L; - - public long getID() { - return ID; - } - - public enum Attribute { - NumberOfPositions(0L), - CurrentPosition(1L), - MultiPressMax(2L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - SwitchLatched(0L), - InitialPress(1L), - LongPress(2L), - ShortRelease(3L), - LongRelease(4L), - MultiPressOngoing(5L), - MultiPressComplete(6L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class AdministratorCommissioning implements BaseCluster { - public static final long ID = 60L; - - public long getID() { - return ID; - } - - public enum Attribute { - WindowStatus(0L), - AdminFabricIndex(1L), - AdminVendorId(2L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - OpenCommissioningWindow(0L), - OpenBasicCommissioningWindow(1L), - RevokeCommissioning(2L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum OpenCommissioningWindowCommandField { - CommissioningTimeout(0), - PAKEPasscodeVerifier(1), - Discriminator(2), - Iterations(3), - Salt(4), - ; - private final int id; - - OpenCommissioningWindowCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static OpenCommissioningWindowCommandField value(int id) throws NoSuchFieldError { - for (OpenCommissioningWindowCommandField field : - OpenCommissioningWindowCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum OpenBasicCommissioningWindowCommandField { - CommissioningTimeout(0), - ; - private final int id; - - OpenBasicCommissioningWindowCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static OpenBasicCommissioningWindowCommandField value(int id) throws NoSuchFieldError { - for (OpenBasicCommissioningWindowCommandField field : - OpenBasicCommissioningWindowCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class OperationalCredentials implements BaseCluster { - public static final long ID = 62L; - - public long getID() { - return ID; - } - - public enum Attribute { - NOCs(0L), - Fabrics(1L), - SupportedFabrics(2L), - CommissionedFabrics(3L), - TrustedRootCertificates(4L), - CurrentFabricIndex(5L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - AttestationRequest(0L), - CertificateChainRequest(2L), - CSRRequest(4L), - AddNOC(6L), - UpdateNOC(7L), - UpdateFabricLabel(9L), - RemoveFabric(10L), - AddTrustedRootCertificate(11L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AttestationRequestCommandField { - AttestationNonce(0), - ; - private final int id; - - AttestationRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AttestationRequestCommandField value(int id) throws NoSuchFieldError { - for (AttestationRequestCommandField field : AttestationRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum CertificateChainRequestCommandField { - CertificateType(0), - ; - private final int id; - - CertificateChainRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static CertificateChainRequestCommandField value(int id) throws NoSuchFieldError { - for (CertificateChainRequestCommandField field : - CertificateChainRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum CSRRequestCommandField { - CSRNonce(0), - IsForUpdateNOC(1), - ; - private final int id; - - CSRRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static CSRRequestCommandField value(int id) throws NoSuchFieldError { - for (CSRRequestCommandField field : CSRRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AddNOCCommandField { - NOCValue(0), - ICACValue(1), - IPKValue(2), - CaseAdminSubject(3), - AdminVendorId(4), - ; - private final int id; - - AddNOCCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AddNOCCommandField value(int id) throws NoSuchFieldError { - for (AddNOCCommandField field : AddNOCCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum UpdateNOCCommandField { - NOCValue(0), - ICACValue(1), - ; - private final int id; - - UpdateNOCCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static UpdateNOCCommandField value(int id) throws NoSuchFieldError { - for (UpdateNOCCommandField field : UpdateNOCCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum UpdateFabricLabelCommandField { - Label(0), - ; - private final int id; - - UpdateFabricLabelCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static UpdateFabricLabelCommandField value(int id) throws NoSuchFieldError { - for (UpdateFabricLabelCommandField field : UpdateFabricLabelCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum RemoveFabricCommandField { - FabricIndex(0), - ; - private final int id; - - RemoveFabricCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RemoveFabricCommandField value(int id) throws NoSuchFieldError { - for (RemoveFabricCommandField field : RemoveFabricCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum AddTrustedRootCertificateCommandField { - RootCACertificate(0), - ; - private final int id; - - AddTrustedRootCertificateCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static AddTrustedRootCertificateCommandField value(int id) throws NoSuchFieldError { - for (AddTrustedRootCertificateCommandField field : - AddTrustedRootCertificateCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class GroupKeyManagement implements BaseCluster { - public static final long ID = 63L; - - public long getID() { - return ID; - } - - public enum Attribute { - GroupKeyMap(0L), - GroupTable(1L), - MaxGroupsPerFabric(2L), - MaxGroupKeysPerFabric(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - KeySetWrite(0L), - KeySetRead(1L), - KeySetRemove(3L), - KeySetReadAllIndices(4L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum KeySetWriteCommandField { - GroupKeySet(0), - ; - private final int id; - - KeySetWriteCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static KeySetWriteCommandField value(int id) throws NoSuchFieldError { - for (KeySetWriteCommandField field : KeySetWriteCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum KeySetReadCommandField { - GroupKeySetID(0), - ; - private final int id; - - KeySetReadCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static KeySetReadCommandField value(int id) throws NoSuchFieldError { - for (KeySetReadCommandField field : KeySetReadCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum KeySetRemoveCommandField { - GroupKeySetID(0), - ; - private final int id; - - KeySetRemoveCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static KeySetRemoveCommandField value(int id) throws NoSuchFieldError { - for (KeySetRemoveCommandField field : KeySetRemoveCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum KeySetReadAllIndicesCommandField { - GroupKeySetIDs(0), - ; - private final int id; - - KeySetReadAllIndicesCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static KeySetReadAllIndicesCommandField value(int id) throws NoSuchFieldError { - for (KeySetReadAllIndicesCommandField field : KeySetReadAllIndicesCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class FixedLabel implements BaseCluster { - public static final long ID = 64L; - - public long getID() { - return ID; - } - - public enum Attribute { - LabelList(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class UserLabel implements BaseCluster { - public static final long ID = 65L; - - public long getID() { - return ID; - } - - public enum Attribute { - LabelList(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ProxyConfiguration implements BaseCluster { - public static final long ID = 66L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ProxyDiscovery implements BaseCluster { - public static final long ID = 67L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ProxyValid implements BaseCluster { - public static final long ID = 68L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class BooleanState implements BaseCluster { - public static final long ID = 69L; - - public long getID() { - return ID; - } - - public enum Attribute { - StateValue(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - StateChange(0L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class IcdManagement implements BaseCluster { - public static final long ID = 70L; - - public long getID() { - return ID; - } - - public enum Attribute { - IdleModeInterval(0L), - ActiveModeInterval(1L), - ActiveModeThreshold(2L), - RegisteredClients(3L), - ICDCounter(4L), - ClientsSupportedPerFabric(5L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - RegisterClient(0L), - UnregisterClient(2L), - StayActiveRequest(3L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum RegisterClientCommandField { - CheckInNodeID(0), - MonitoredSubject(1), - Key(2), - VerificationKey(3), - ; - private final int id; - - RegisterClientCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RegisterClientCommandField value(int id) throws NoSuchFieldError { - for (RegisterClientCommandField field : RegisterClientCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum UnregisterClientCommandField { - CheckInNodeID(0), - Key(1), - ; - private final int id; - - UnregisterClientCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static UnregisterClientCommandField value(int id) throws NoSuchFieldError { - for (UnregisterClientCommandField field : UnregisterClientCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ModeSelect implements BaseCluster { - public static final long ID = 80L; - - public long getID() { - return ID; - } - - public enum Attribute { - Description(0L), - StandardNamespace(1L), - SupportedModes(2L), - CurrentMode(3L), - StartUpMode(4L), - OnMode(5L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ChangeToMode(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ChangeToModeCommandField { - NewMode(0), - ; - private final int id; - - ChangeToModeCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ChangeToModeCommandField value(int id) throws NoSuchFieldError { - for (ChangeToModeCommandField field : ChangeToModeCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class TemperatureControl implements BaseCluster { - public static final long ID = 86L; - - public long getID() { - return ID; - } - - public enum Attribute { - TemperatureSetpoint(0L), - MinTemperature(1L), - MaxTemperature(2L), - Step(3L), - CurrentTemperatureLevelIndex(4L), - SupportedTemperatureLevels(5L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - SetTemperature(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetTemperatureCommandField { - TargetTemperature(0), - TargetTemperatureLevel(1), - ; - private final int id; - - SetTemperatureCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetTemperatureCommandField value(int id) throws NoSuchFieldError { - for (SetTemperatureCommandField field : SetTemperatureCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class RefrigeratorAlarm implements BaseCluster { - public static final long ID = 87L; - - public long getID() { - return ID; - } - - public enum Attribute { - Mask(0L), - Latch(1L), - State(2L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - Notify(0L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - Reset(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ResetCommandField { - Alarms(0), - Mask(1), - ; - private final int id; - - ResetCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ResetCommandField value(int id) throws NoSuchFieldError { - for (ResetCommandField field : ResetCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class AirQuality implements BaseCluster { - public static final long ID = 91L; - - public long getID() { - return ID; - } - - public enum Attribute { - AirQuality(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class SmokeCoAlarm implements BaseCluster { - public static final long ID = 92L; - - public long getID() { - return ID; - } - - public enum Attribute { - ExpressedState(0L), - SmokeState(1L), - COState(2L), - BatteryAlert(3L), - DeviceMuted(4L), - TestInProgress(5L), - HardwareFaultAlert(6L), - EndOfServiceAlert(7L), - InterconnectSmokeAlarm(8L), - InterconnectCOAlarm(9L), - ContaminationState(10L), - SensitivityLevel(11L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - SmokeAlarm(0L), - COAlarm(1L), - LowBattery(2L), - HardwareFault(3L), - EndOfService(4L), - SelfTestComplete(5L), - AlarmMuted(6L), - MuteEnded(7L), - InterconnectSmokeAlarm(8L), - InterconnectCOAlarm(9L), - AllClear(10L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - SelfTestRequest(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class HepaFilterMonitoring implements BaseCluster { - public static final long ID = 113L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ActivatedCarbonFilterMonitoring implements BaseCluster { - public static final long ID = 114L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class CeramicFilterMonitoring implements BaseCluster { - public static final long ID = 115L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ElectrostaticFilterMonitoring implements BaseCluster { - public static final long ID = 116L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class UvFilterMonitoring implements BaseCluster { - public static final long ID = 117L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class IonizingFilterMonitoring implements BaseCluster { - public static final long ID = 118L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ZeoliteFilterMonitoring implements BaseCluster { - public static final long ID = 119L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class OzoneFilterMonitoring implements BaseCluster { - public static final long ID = 120L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class WaterTankMonitoring implements BaseCluster { - public static final long ID = 121L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class FuelTankMonitoring implements BaseCluster { - public static final long ID = 122L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class InkCartridgeMonitoring implements BaseCluster { - public static final long ID = 123L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class TonerCartridgeMonitoring implements BaseCluster { - public static final long ID = 124L; - - public long getID() { - return ID; - } - - public enum Attribute { - Condition(0L), - DegradationDirection(1L), - ChangeIndication(2L), - InPlaceIndicator(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ResetCondition(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class DoorLock implements BaseCluster { - public static final long ID = 257L; - - public long getID() { - return ID; - } - - public enum Attribute { - LockState(0L), - LockType(1L), - ActuatorEnabled(2L), - DoorState(3L), - DoorOpenEvents(4L), - DoorClosedEvents(5L), - OpenPeriod(6L), - NumberOfTotalUsersSupported(17L), - NumberOfPINUsersSupported(18L), - NumberOfRFIDUsersSupported(19L), - NumberOfWeekDaySchedulesSupportedPerUser(20L), - NumberOfYearDaySchedulesSupportedPerUser(21L), - NumberOfHolidaySchedulesSupported(22L), - MaxPINCodeLength(23L), - MinPINCodeLength(24L), - MaxRFIDCodeLength(25L), - MinRFIDCodeLength(26L), - CredentialRulesSupport(27L), - NumberOfCredentialsSupportedPerUser(28L), - Language(33L), - LEDSettings(34L), - AutoRelockTime(35L), - SoundVolume(36L), - OperatingMode(37L), - SupportedOperatingModes(38L), - DefaultConfigurationRegister(39L), - EnableLocalProgramming(40L), - EnableOneTouchLocking(41L), - EnableInsideStatusLED(42L), - EnablePrivacyModeButton(43L), - LocalProgrammingFeatures(44L), - WrongCodeEntryLimit(48L), - UserCodeTemporaryDisableTime(49L), - SendPINOverTheAir(50L), - RequirePINforRemoteOperation(51L), - ExpiringUserTimeout(53L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - DoorLockAlarm(0L), - DoorStateChange(1L), - LockOperation(2L), - LockOperationError(3L), - LockUserChange(4L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - LockDoor(0L), - UnlockDoor(1L), - UnlockWithTimeout(3L), - SetWeekDaySchedule(11L), - GetWeekDaySchedule(12L), - ClearWeekDaySchedule(13L), - SetYearDaySchedule(14L), - GetYearDaySchedule(15L), - ClearYearDaySchedule(16L), - SetHolidaySchedule(17L), - GetHolidaySchedule(18L), - ClearHolidaySchedule(19L), - SetUser(26L), - GetUser(27L), - ClearUser(29L), - SetCredential(34L), - GetCredentialStatus(36L), - ClearCredential(38L), - UnboltDoor(39L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum LockDoorCommandField { - PINCode(0), - ; - private final int id; - - LockDoorCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static LockDoorCommandField value(int id) throws NoSuchFieldError { - for (LockDoorCommandField field : LockDoorCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum UnlockDoorCommandField { - PINCode(0), - ; - private final int id; - - UnlockDoorCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static UnlockDoorCommandField value(int id) throws NoSuchFieldError { - for (UnlockDoorCommandField field : UnlockDoorCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum UnlockWithTimeoutCommandField { - Timeout(0), - PINCode(1), - ; - private final int id; - - UnlockWithTimeoutCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static UnlockWithTimeoutCommandField value(int id) throws NoSuchFieldError { - for (UnlockWithTimeoutCommandField field : UnlockWithTimeoutCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetWeekDayScheduleCommandField { - WeekDayIndex(0), - UserIndex(1), - DaysMask(2), - StartHour(3), - StartMinute(4), - EndHour(5), - EndMinute(6), - ; - private final int id; - - SetWeekDayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetWeekDayScheduleCommandField value(int id) throws NoSuchFieldError { - for (SetWeekDayScheduleCommandField field : SetWeekDayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetWeekDayScheduleCommandField { - WeekDayIndex(0), - UserIndex(1), - ; - private final int id; - - GetWeekDayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetWeekDayScheduleCommandField value(int id) throws NoSuchFieldError { - for (GetWeekDayScheduleCommandField field : GetWeekDayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ClearWeekDayScheduleCommandField { - WeekDayIndex(0), - UserIndex(1), - ; - private final int id; - - ClearWeekDayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ClearWeekDayScheduleCommandField value(int id) throws NoSuchFieldError { - for (ClearWeekDayScheduleCommandField field : ClearWeekDayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetYearDayScheduleCommandField { - YearDayIndex(0), - UserIndex(1), - LocalStartTime(2), - LocalEndTime(3), - ; - private final int id; - - SetYearDayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetYearDayScheduleCommandField value(int id) throws NoSuchFieldError { - for (SetYearDayScheduleCommandField field : SetYearDayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetYearDayScheduleCommandField { - YearDayIndex(0), - UserIndex(1), - ; - private final int id; - - GetYearDayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetYearDayScheduleCommandField value(int id) throws NoSuchFieldError { - for (GetYearDayScheduleCommandField field : GetYearDayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ClearYearDayScheduleCommandField { - YearDayIndex(0), - UserIndex(1), - ; - private final int id; - - ClearYearDayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ClearYearDayScheduleCommandField value(int id) throws NoSuchFieldError { - for (ClearYearDayScheduleCommandField field : ClearYearDayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetHolidayScheduleCommandField { - HolidayIndex(0), - LocalStartTime(1), - LocalEndTime(2), - OperatingMode(3), - ; - private final int id; - - SetHolidayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetHolidayScheduleCommandField value(int id) throws NoSuchFieldError { - for (SetHolidayScheduleCommandField field : SetHolidayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetHolidayScheduleCommandField { - HolidayIndex(0), - ; - private final int id; - - GetHolidayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetHolidayScheduleCommandField value(int id) throws NoSuchFieldError { - for (GetHolidayScheduleCommandField field : GetHolidayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ClearHolidayScheduleCommandField { - HolidayIndex(0), - ; - private final int id; - - ClearHolidayScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ClearHolidayScheduleCommandField value(int id) throws NoSuchFieldError { - for (ClearHolidayScheduleCommandField field : ClearHolidayScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetUserCommandField { - OperationType(0), - UserIndex(1), - UserName(2), - UserUniqueID(3), - UserStatus(4), - UserType(5), - CredentialRule(6), - ; - private final int id; - - SetUserCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetUserCommandField value(int id) throws NoSuchFieldError { - for (SetUserCommandField field : SetUserCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetUserCommandField { - UserIndex(0), - ; - private final int id; - - GetUserCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetUserCommandField value(int id) throws NoSuchFieldError { - for (GetUserCommandField field : GetUserCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ClearUserCommandField { - UserIndex(0), - ; - private final int id; - - ClearUserCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ClearUserCommandField value(int id) throws NoSuchFieldError { - for (ClearUserCommandField field : ClearUserCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetCredentialCommandField { - OperationType(0), - Credential(1), - CredentialData(2), - UserIndex(3), - UserStatus(4), - UserType(5), - ; - private final int id; - - SetCredentialCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetCredentialCommandField value(int id) throws NoSuchFieldError { - for (SetCredentialCommandField field : SetCredentialCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetCredentialStatusCommandField { - Credential(0), - ; - private final int id; - - GetCredentialStatusCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetCredentialStatusCommandField value(int id) throws NoSuchFieldError { - for (GetCredentialStatusCommandField field : GetCredentialStatusCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ClearCredentialCommandField { - Credential(0), - ; - private final int id; - - ClearCredentialCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ClearCredentialCommandField value(int id) throws NoSuchFieldError { - for (ClearCredentialCommandField field : ClearCredentialCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum UnboltDoorCommandField { - PINCode(0), - ; - private final int id; - - UnboltDoorCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static UnboltDoorCommandField value(int id) throws NoSuchFieldError { - for (UnboltDoorCommandField field : UnboltDoorCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class WindowCovering implements BaseCluster { - public static final long ID = 258L; - - public long getID() { - return ID; - } - - public enum Attribute { - Type(0L), - PhysicalClosedLimitLift(1L), - PhysicalClosedLimitTilt(2L), - CurrentPositionLift(3L), - CurrentPositionTilt(4L), - NumberOfActuationsLift(5L), - NumberOfActuationsTilt(6L), - ConfigStatus(7L), - CurrentPositionLiftPercentage(8L), - CurrentPositionTiltPercentage(9L), - OperationalStatus(10L), - TargetPositionLiftPercent100ths(11L), - TargetPositionTiltPercent100ths(12L), - EndProductType(13L), - CurrentPositionLiftPercent100ths(14L), - CurrentPositionTiltPercent100ths(15L), - InstalledOpenLimitLift(16L), - InstalledClosedLimitLift(17L), - InstalledOpenLimitTilt(18L), - InstalledClosedLimitTilt(19L), - Mode(23L), - SafetyStatus(26L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - UpOrOpen(0L), - DownOrClose(1L), - StopMotion(2L), - GoToLiftValue(4L), - GoToLiftPercentage(5L), - GoToTiltValue(7L), - GoToTiltPercentage(8L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GoToLiftValueCommandField { - LiftValue(0), - ; - private final int id; - - GoToLiftValueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GoToLiftValueCommandField value(int id) throws NoSuchFieldError { - for (GoToLiftValueCommandField field : GoToLiftValueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GoToLiftPercentageCommandField { - LiftPercent100thsValue(0), - ; - private final int id; - - GoToLiftPercentageCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GoToLiftPercentageCommandField value(int id) throws NoSuchFieldError { - for (GoToLiftPercentageCommandField field : GoToLiftPercentageCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GoToTiltValueCommandField { - TiltValue(0), - ; - private final int id; - - GoToTiltValueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GoToTiltValueCommandField value(int id) throws NoSuchFieldError { - for (GoToTiltValueCommandField field : GoToTiltValueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GoToTiltPercentageCommandField { - TiltPercent100thsValue(0), - ; - private final int id; - - GoToTiltPercentageCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GoToTiltPercentageCommandField value(int id) throws NoSuchFieldError { - for (GoToTiltPercentageCommandField field : GoToTiltPercentageCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class BarrierControl implements BaseCluster { - public static final long ID = 259L; - - public long getID() { - return ID; - } - - public enum Attribute { - BarrierMovingState(1L), - BarrierSafetyStatus(2L), - BarrierCapabilities(3L), - BarrierOpenEvents(4L), - BarrierCloseEvents(5L), - BarrierCommandOpenEvents(6L), - BarrierCommandCloseEvents(7L), - BarrierOpenPeriod(8L), - BarrierClosePeriod(9L), - BarrierPosition(10L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - BarrierControlGoToPercent(0L), - BarrierControlStop(1L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum BarrierControlGoToPercentCommandField { - PercentOpen(0), - ; - private final int id; - - BarrierControlGoToPercentCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static BarrierControlGoToPercentCommandField value(int id) throws NoSuchFieldError { - for (BarrierControlGoToPercentCommandField field : - BarrierControlGoToPercentCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class PumpConfigurationAndControl implements BaseCluster { - public static final long ID = 512L; - - public long getID() { - return ID; - } - - public enum Attribute { - MaxPressure(0L), - MaxSpeed(1L), - MaxFlow(2L), - MinConstPressure(3L), - MaxConstPressure(4L), - MinCompPressure(5L), - MaxCompPressure(6L), - MinConstSpeed(7L), - MaxConstSpeed(8L), - MinConstFlow(9L), - MaxConstFlow(10L), - MinConstTemp(11L), - MaxConstTemp(12L), - PumpStatus(16L), - EffectiveOperationMode(17L), - EffectiveControlMode(18L), - Capacity(19L), - Speed(20L), - LifetimeRunningHours(21L), - Power(22L), - LifetimeEnergyConsumed(23L), - OperationMode(32L), - ControlMode(33L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - SupplyVoltageLow(0L), - SupplyVoltageHigh(1L), - PowerMissingPhase(2L), - SystemPressureLow(3L), - SystemPressureHigh(4L), - DryRunning(5L), - MotorTemperatureHigh(6L), - PumpMotorFatalFailure(7L), - ElectronicTemperatureHigh(8L), - PumpBlocked(9L), - SensorFailure(10L), - ElectronicNonFatalFailure(11L), - ElectronicFatalFailure(12L), - GeneralFault(13L), - Leakage(14L), - AirDetection(15L), - TurbineOperation(16L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Thermostat implements BaseCluster { - public static final long ID = 513L; - - public long getID() { - return ID; - } - - public enum Attribute { - LocalTemperature(0L), - OutdoorTemperature(1L), - Occupancy(2L), - AbsMinHeatSetpointLimit(3L), - AbsMaxHeatSetpointLimit(4L), - AbsMinCoolSetpointLimit(5L), - AbsMaxCoolSetpointLimit(6L), - PICoolingDemand(7L), - PIHeatingDemand(8L), - HVACSystemTypeConfiguration(9L), - LocalTemperatureCalibration(16L), - OccupiedCoolingSetpoint(17L), - OccupiedHeatingSetpoint(18L), - UnoccupiedCoolingSetpoint(19L), - UnoccupiedHeatingSetpoint(20L), - MinHeatSetpointLimit(21L), - MaxHeatSetpointLimit(22L), - MinCoolSetpointLimit(23L), - MaxCoolSetpointLimit(24L), - MinSetpointDeadBand(25L), - RemoteSensing(26L), - ControlSequenceOfOperation(27L), - SystemMode(28L), - ThermostatRunningMode(30L), - StartOfWeek(32L), - NumberOfWeeklyTransitions(33L), - NumberOfDailyTransitions(34L), - TemperatureSetpointHold(35L), - TemperatureSetpointHoldDuration(36L), - ThermostatProgrammingOperationMode(37L), - ThermostatRunningState(41L), - SetpointChangeSource(48L), - SetpointChangeAmount(49L), - SetpointChangeSourceTimestamp(50L), - OccupiedSetback(52L), - OccupiedSetbackMin(53L), - OccupiedSetbackMax(54L), - UnoccupiedSetback(55L), - UnoccupiedSetbackMin(56L), - UnoccupiedSetbackMax(57L), - EmergencyHeatDelta(58L), - ACType(64L), - ACCapacity(65L), - ACRefrigerantType(66L), - ACCompressorType(67L), - ACErrorCode(68L), - ACLouverPosition(69L), - ACCoilTemperature(70L), - ACCapacityformat(71L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - SetpointRaiseLower(0L), - SetWeeklySchedule(1L), - GetWeeklySchedule(2L), - ClearWeeklySchedule(3L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetpointRaiseLowerCommandField { - Mode(0), - Amount(1), - ; - private final int id; - - SetpointRaiseLowerCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetpointRaiseLowerCommandField value(int id) throws NoSuchFieldError { - for (SetpointRaiseLowerCommandField field : SetpointRaiseLowerCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SetWeeklyScheduleCommandField { - NumberOfTransitionsForSequence(0), - DayOfWeekForSequence(1), - ModeForSequence(2), - Transitions(3), - ; - private final int id; - - SetWeeklyScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SetWeeklyScheduleCommandField value(int id) throws NoSuchFieldError { - for (SetWeeklyScheduleCommandField field : SetWeeklyScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetWeeklyScheduleCommandField { - DaysToReturn(0), - ModeToReturn(1), - ; - private final int id; - - GetWeeklyScheduleCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetWeeklyScheduleCommandField value(int id) throws NoSuchFieldError { - for (GetWeeklyScheduleCommandField field : GetWeeklyScheduleCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class FanControl implements BaseCluster { - public static final long ID = 514L; - - public long getID() { - return ID; - } - - public enum Attribute { - FanMode(0L), - FanModeSequence(1L), - PercentSetting(2L), - PercentCurrent(3L), - SpeedMax(4L), - SpeedSetting(5L), - SpeedCurrent(6L), - RockSupport(7L), - RockSetting(8L), - WindSupport(9L), - WindSetting(10L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ThermostatUserInterfaceConfiguration implements BaseCluster { - public static final long ID = 516L; - - public long getID() { - return ID; - } - - public enum Attribute { - TemperatureDisplayMode(0L), - KeypadLockout(1L), - ScheduleProgrammingVisibility(2L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ColorControl implements BaseCluster { - public static final long ID = 768L; - - public long getID() { - return ID; - } - - public enum Attribute { - CurrentHue(0L), - CurrentSaturation(1L), - RemainingTime(2L), - CurrentX(3L), - CurrentY(4L), - DriftCompensation(5L), - CompensationText(6L), - ColorTemperatureMireds(7L), - ColorMode(8L), - Options(15L), - NumberOfPrimaries(16L), - Primary1X(17L), - Primary1Y(18L), - Primary1Intensity(19L), - Primary2X(21L), - Primary2Y(22L), - Primary2Intensity(23L), - Primary3X(25L), - Primary3Y(26L), - Primary3Intensity(27L), - Primary4X(32L), - Primary4Y(33L), - Primary4Intensity(34L), - Primary5X(36L), - Primary5Y(37L), - Primary5Intensity(38L), - Primary6X(40L), - Primary6Y(41L), - Primary6Intensity(42L), - WhitePointX(48L), - WhitePointY(49L), - ColorPointRX(50L), - ColorPointRY(51L), - ColorPointRIntensity(52L), - ColorPointGX(54L), - ColorPointGY(55L), - ColorPointGIntensity(56L), - ColorPointBX(58L), - ColorPointBY(59L), - ColorPointBIntensity(60L), - EnhancedCurrentHue(16384L), - EnhancedColorMode(16385L), - ColorLoopActive(16386L), - ColorLoopDirection(16387L), - ColorLoopTime(16388L), - ColorLoopStartEnhancedHue(16389L), - ColorLoopStoredEnhancedHue(16390L), - ColorCapabilities(16394L), - ColorTempPhysicalMinMireds(16395L), - ColorTempPhysicalMaxMireds(16396L), - CoupleColorTempToLevelMinMireds(16397L), - StartUpColorTemperatureMireds(16400L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - MoveToHue(0L), - MoveHue(1L), - StepHue(2L), - MoveToSaturation(3L), - MoveSaturation(4L), - StepSaturation(5L), - MoveToHueAndSaturation(6L), - MoveToColor(7L), - MoveColor(8L), - StepColor(9L), - MoveToColorTemperature(10L), - EnhancedMoveToHue(64L), - EnhancedMoveHue(65L), - EnhancedStepHue(66L), - EnhancedMoveToHueAndSaturation(67L), - ColorLoopSet(68L), - StopMoveStep(71L), - MoveColorTemperature(75L), - StepColorTemperature(76L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToHueCommandField { - Hue(0), - Direction(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - MoveToHueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToHueCommandField value(int id) throws NoSuchFieldError { - for (MoveToHueCommandField field : MoveToHueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveHueCommandField { - MoveMode(0), - Rate(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveHueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveHueCommandField value(int id) throws NoSuchFieldError { - for (MoveHueCommandField field : MoveHueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StepHueCommandField { - StepMode(0), - StepSize(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - StepHueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StepHueCommandField value(int id) throws NoSuchFieldError { - for (StepHueCommandField field : StepHueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToSaturationCommandField { - Saturation(0), - TransitionTime(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveToSaturationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToSaturationCommandField value(int id) throws NoSuchFieldError { - for (MoveToSaturationCommandField field : MoveToSaturationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveSaturationCommandField { - MoveMode(0), - Rate(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveSaturationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveSaturationCommandField value(int id) throws NoSuchFieldError { - for (MoveSaturationCommandField field : MoveSaturationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StepSaturationCommandField { - StepMode(0), - StepSize(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - StepSaturationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StepSaturationCommandField value(int id) throws NoSuchFieldError { - for (StepSaturationCommandField field : StepSaturationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToHueAndSaturationCommandField { - Hue(0), - Saturation(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - MoveToHueAndSaturationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToHueAndSaturationCommandField value(int id) throws NoSuchFieldError { - for (MoveToHueAndSaturationCommandField field : - MoveToHueAndSaturationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToColorCommandField { - ColorX(0), - ColorY(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - MoveToColorCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToColorCommandField value(int id) throws NoSuchFieldError { - for (MoveToColorCommandField field : MoveToColorCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveColorCommandField { - RateX(0), - RateY(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveColorCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveColorCommandField value(int id) throws NoSuchFieldError { - for (MoveColorCommandField field : MoveColorCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StepColorCommandField { - StepX(0), - StepY(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - StepColorCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StepColorCommandField value(int id) throws NoSuchFieldError { - for (StepColorCommandField field : StepColorCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveToColorTemperatureCommandField { - ColorTemperatureMireds(0), - TransitionTime(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - MoveToColorTemperatureCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveToColorTemperatureCommandField value(int id) throws NoSuchFieldError { - for (MoveToColorTemperatureCommandField field : - MoveToColorTemperatureCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum EnhancedMoveToHueCommandField { - EnhancedHue(0), - Direction(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - EnhancedMoveToHueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnhancedMoveToHueCommandField value(int id) throws NoSuchFieldError { - for (EnhancedMoveToHueCommandField field : EnhancedMoveToHueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum EnhancedMoveHueCommandField { - MoveMode(0), - Rate(1), - OptionsMask(2), - OptionsOverride(3), - ; - private final int id; - - EnhancedMoveHueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnhancedMoveHueCommandField value(int id) throws NoSuchFieldError { - for (EnhancedMoveHueCommandField field : EnhancedMoveHueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum EnhancedStepHueCommandField { - StepMode(0), - StepSize(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - EnhancedStepHueCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnhancedStepHueCommandField value(int id) throws NoSuchFieldError { - for (EnhancedStepHueCommandField field : EnhancedStepHueCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum EnhancedMoveToHueAndSaturationCommandField { - EnhancedHue(0), - Saturation(1), - TransitionTime(2), - OptionsMask(3), - OptionsOverride(4), - ; - private final int id; - - EnhancedMoveToHueAndSaturationCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static EnhancedMoveToHueAndSaturationCommandField value(int id) - throws NoSuchFieldError { - for (EnhancedMoveToHueAndSaturationCommandField field : - EnhancedMoveToHueAndSaturationCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ColorLoopSetCommandField { - UpdateFlags(0), - Action(1), - Direction(2), - Time(3), - StartHue(4), - OptionsMask(5), - OptionsOverride(6), - ; - private final int id; - - ColorLoopSetCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ColorLoopSetCommandField value(int id) throws NoSuchFieldError { - for (ColorLoopSetCommandField field : ColorLoopSetCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StopMoveStepCommandField { - OptionsMask(0), - OptionsOverride(1), - ; - private final int id; - - StopMoveStepCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StopMoveStepCommandField value(int id) throws NoSuchFieldError { - for (StopMoveStepCommandField field : StopMoveStepCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum MoveColorTemperatureCommandField { - MoveMode(0), - Rate(1), - ColorTemperatureMinimumMireds(2), - ColorTemperatureMaximumMireds(3), - OptionsMask(4), - OptionsOverride(5), - ; - private final int id; - - MoveColorTemperatureCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static MoveColorTemperatureCommandField value(int id) throws NoSuchFieldError { - for (MoveColorTemperatureCommandField field : MoveColorTemperatureCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum StepColorTemperatureCommandField { - StepMode(0), - StepSize(1), - TransitionTime(2), - ColorTemperatureMinimumMireds(3), - ColorTemperatureMaximumMireds(4), - OptionsMask(5), - OptionsOverride(6), - ; - private final int id; - - StepColorTemperatureCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StepColorTemperatureCommandField value(int id) throws NoSuchFieldError { - for (StepColorTemperatureCommandField field : StepColorTemperatureCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class BallastConfiguration implements BaseCluster { - public static final long ID = 769L; - - public long getID() { - return ID; - } - - public enum Attribute { - PhysicalMinLevel(0L), - PhysicalMaxLevel(1L), - BallastStatus(2L), - MinLevel(16L), - MaxLevel(17L), - IntrinsicBallastFactor(20L), - BallastFactorAdjustment(21L), - LampQuantity(32L), - LampType(48L), - LampManufacturer(49L), - LampRatedHours(50L), - LampBurnHours(51L), - LampAlarmMode(52L), - LampBurnHoursTripPoint(53L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class IlluminanceMeasurement implements BaseCluster { - public static final long ID = 1024L; - - public long getID() { - return ID; - } - - public enum Attribute { - MeasuredValue(0L), - MinMeasuredValue(1L), - MaxMeasuredValue(2L), - Tolerance(3L), - LightSensorType(4L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class TemperatureMeasurement implements BaseCluster { - public static final long ID = 1026L; - - public long getID() { - return ID; - } - - public enum Attribute { - MeasuredValue(0L), - MinMeasuredValue(1L), - MaxMeasuredValue(2L), - Tolerance(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == PowerSourceConfiguration.ID) { + return new PowerSourceConfiguration(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == PowerSource.ID) { + return new PowerSource(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class PressureMeasurement implements BaseCluster { - public static final long ID = 1027L; - - public long getID() { - return ID; - } - - public enum Attribute { - MeasuredValue(0L), - MinMeasuredValue(1L), - MaxMeasuredValue(2L), - Tolerance(3L), - ScaledValue(16L), - MinScaledValue(17L), - MaxScaledValue(18L), - ScaledTolerance(19L), - Scale(20L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == GeneralCommissioning.ID) { + return new GeneralCommissioning(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == NetworkCommissioning.ID) { + return new NetworkCommissioning(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class FlowMeasurement implements BaseCluster { - public static final long ID = 1028L; - - public long getID() { - return ID; - } - - public enum Attribute { - MeasuredValue(0L), - MinMeasuredValue(1L), - MaxMeasuredValue(2L), - Tolerance(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == DiagnosticLogs.ID) { + return new DiagnosticLogs(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == GeneralDiagnostics.ID) { + return new GeneralDiagnostics(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class RelativeHumidityMeasurement implements BaseCluster { - public static final long ID = 1029L; - - public long getID() { - return ID; - } - - public enum Attribute { - MeasuredValue(0L), - MinMeasuredValue(1L), - MaxMeasuredValue(2L), - Tolerance(3L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == SoftwareDiagnostics.ID) { + return new SoftwareDiagnostics(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == ThreadNetworkDiagnostics.ID) { + return new ThreadNetworkDiagnostics(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class OccupancySensing implements BaseCluster { - public static final long ID = 1030L; - - public long getID() { - return ID; - } - - public enum Attribute { - Occupancy(0L), - OccupancySensorType(1L), - OccupancySensorTypeBitmap(2L), - PIROccupiedToUnoccupiedDelay(16L), - PIRUnoccupiedToOccupiedDelay(17L), - PIRUnoccupiedToOccupiedThreshold(18L), - UltrasonicOccupiedToUnoccupiedDelay(32L), - UltrasonicUnoccupiedToOccupiedDelay(33L), - UltrasonicUnoccupiedToOccupiedThreshold(34L), - PhysicalContactOccupiedToUnoccupiedDelay(48L), - PhysicalContactUnoccupiedToOccupiedDelay(49L), - PhysicalContactUnoccupiedToOccupiedThreshold(50L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == WiFiNetworkDiagnostics.ID) { + return new WiFiNetworkDiagnostics(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == EthernetNetworkDiagnostics.ID) { + return new EthernetNetworkDiagnostics(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class WakeOnLan implements BaseCluster { - public static final long ID = 1283L; - - public long getID() { - return ID; - } - - public enum Attribute { - MACAddress(0L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == TimeSynchronization.ID) { + return new TimeSynchronization(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == BridgedDeviceBasicInformation.ID) { + return new BridgedDeviceBasicInformation(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class Channel implements BaseCluster { - public static final long ID = 1284L; - - public long getID() { - return ID; - } - - public enum Attribute { - ChannelList(0L), - Lineup(1L), - CurrentChannel(2L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == Switch.ID) { + return new Switch(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ChangeChannel(0L), - ChangeChannelByNumber(2L), - SkipChannel(3L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum ChangeChannelCommandField { - Match(0), - ; - private final int id; - - ChangeChannelCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ChangeChannelCommandField value(int id) throws NoSuchFieldError { - for (ChangeChannelCommandField field : ChangeChannelCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == AdministratorCommissioning.ID) { + return new AdministratorCommissioning(); } - throw new NoSuchFieldError(); - } - } - - public enum ChangeChannelByNumberCommandField { - MajorNumber(0), - MinorNumber(1), - ; - private final int id; - - ChangeChannelByNumberCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static ChangeChannelByNumberCommandField value(int id) throws NoSuchFieldError { - for (ChangeChannelByNumberCommandField field : ChangeChannelByNumberCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == OperationalCredentials.ID) { + return new OperationalCredentials(); } - throw new NoSuchFieldError(); - } - } - - public enum SkipChannelCommandField { - Count(0), - ; - private final int id; - - SkipChannelCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SkipChannelCommandField value(int id) throws NoSuchFieldError { - for (SkipChannelCommandField field : SkipChannelCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == GroupKeyManagement.ID) { + return new GroupKeyManagement(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class TargetNavigator implements BaseCluster { - public static final long ID = 1285L; - - public long getID() { - return ID; - } - - public enum Attribute { - TargetList(0L), - CurrentTarget(1L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == FixedLabel.ID) { + return new FixedLabel(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - NavigateTarget(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == UserLabel.ID) { + return new UserLabel(); } - throw new NoSuchFieldError(); - } - } - - public enum NavigateTargetCommandField { - Target(0), - Data(1), - ; - private final int id; - - NavigateTargetCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static NavigateTargetCommandField value(int id) throws NoSuchFieldError { - for (NavigateTargetCommandField field : NavigateTargetCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == ProxyConfiguration.ID) { + return new ProxyConfiguration(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class MediaPlayback implements BaseCluster { - public static final long ID = 1286L; - - public long getID() { - return ID; - } - - public enum Attribute { - CurrentState(0L), - StartTime(1L), - Duration(2L), - SampledPosition(3L), - PlaybackSpeed(4L), - SeekRangeEnd(5L), - SeekRangeStart(6L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == ProxyDiscovery.ID) { + return new ProxyDiscovery(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - Play(0L), - Pause(1L), - Stop(2L), - StartOver(3L), - Previous(4L), - Next(5L), - Rewind(6L), - FastForward(7L), - SkipForward(8L), - SkipBackward(9L), - Seek(11L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SkipForwardCommandField { - DeltaPositionMilliseconds(0), - ; - private final int id; - - SkipForwardCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SkipForwardCommandField value(int id) throws NoSuchFieldError { - for (SkipForwardCommandField field : SkipForwardCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == ProxyValid.ID) { + return new ProxyValid(); } - throw new NoSuchFieldError(); - } - } - - public enum SkipBackwardCommandField { - DeltaPositionMilliseconds(0), - ; - private final int id; - - SkipBackwardCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SkipBackwardCommandField value(int id) throws NoSuchFieldError { - for (SkipBackwardCommandField field : SkipBackwardCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == BooleanState.ID) { + return new BooleanState(); } - throw new NoSuchFieldError(); - } - } - - public enum SeekCommandField { - Position(0), - ; - private final int id; - - SeekCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SeekCommandField value(int id) throws NoSuchFieldError { - for (SeekCommandField field : SeekCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == IcdManagement.ID) { + return new IcdManagement(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class MediaInput implements BaseCluster { - public static final long ID = 1287L; - - public long getID() { - return ID; - } - - public enum Attribute { - InputList(0L), - CurrentInput(1L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == ModeSelect.ID) { + return new ModeSelect(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - SelectInput(0L), - ShowInputStatus(1L), - HideInputStatus(2L), - RenameInput(3L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SelectInputCommandField { - Index(0), - ; - private final int id; - - SelectInputCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SelectInputCommandField value(int id) throws NoSuchFieldError { - for (SelectInputCommandField field : SelectInputCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == TemperatureControl.ID) { + return new TemperatureControl(); } - throw new NoSuchFieldError(); - } - } - - public enum RenameInputCommandField { - Index(0), - Name(1), - ; - private final int id; - - RenameInputCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RenameInputCommandField value(int id) throws NoSuchFieldError { - for (RenameInputCommandField field : RenameInputCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == RefrigeratorAlarm.ID) { + return new RefrigeratorAlarm(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class LowPower implements BaseCluster { - public static final long ID = 1288L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == AirQuality.ID) { + return new AirQuality(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - Sleep(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == SmokeCoAlarm.ID) { + return new SmokeCoAlarm(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class KeypadInput implements BaseCluster { - public static final long ID = 1289L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == HepaFilterMonitoring.ID) { + return new HepaFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - SendKey(0L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == ActivatedCarbonFilterMonitoring.ID) { + return new ActivatedCarbonFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - public enum SendKeyCommandField { - KeyCode(0), - ; - private final int id; - - SendKeyCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SendKeyCommandField value(int id) throws NoSuchFieldError { - for (SendKeyCommandField field : SendKeyCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == CeramicFilterMonitoring.ID) { + return new CeramicFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ContentLauncher implements BaseCluster { - public static final long ID = 1290L; - - public long getID() { - return ID; - } - - public enum Attribute { - AcceptHeader(0L), - SupportedStreamingProtocols(1L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == ElectrostaticFilterMonitoring.ID) { + return new ElectrostaticFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - LaunchContent(0L), - LaunchURL(1L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == UvFilterMonitoring.ID) { + return new UvFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - public enum LaunchContentCommandField { - Search(0), - AutoPlay(1), - Data(2), - ; - private final int id; - - LaunchContentCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static LaunchContentCommandField value(int id) throws NoSuchFieldError { - for (LaunchContentCommandField field : LaunchContentCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum LaunchURLCommandField { - ContentURL(0), - DisplayString(1), - BrandingInformation(2), - ; - private final int id; - - LaunchURLCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static LaunchURLCommandField value(int id) throws NoSuchFieldError { - for (LaunchURLCommandField field : LaunchURLCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class AudioOutput implements BaseCluster { - public static final long ID = 1291L; - - public long getID() { - return ID; - } - - public enum Attribute { - OutputList(0L), - CurrentOutput(1L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == IonizingFilterMonitoring.ID) { + return new IonizingFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - SelectOutput(0L), - RenameOutput(1L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == ZeoliteFilterMonitoring.ID) { + return new ZeoliteFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - public enum SelectOutputCommandField { - Index(0), - ; - private final int id; - - SelectOutputCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SelectOutputCommandField value(int id) throws NoSuchFieldError { - for (SelectOutputCommandField field : SelectOutputCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == OzoneFilterMonitoring.ID) { + return new OzoneFilterMonitoring(); } - throw new NoSuchFieldError(); - } - } - - public enum RenameOutputCommandField { - Index(0), - Name(1), - ; - private final int id; - - RenameOutputCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static RenameOutputCommandField value(int id) throws NoSuchFieldError { - for (RenameOutputCommandField field : RenameOutputCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == WaterTankMonitoring.ID) { + return new WaterTankMonitoring(); + } + if (clusterId == FuelTankMonitoring.ID) { + return new FuelTankMonitoring(); + } + if (clusterId == InkCartridgeMonitoring.ID) { + return new InkCartridgeMonitoring(); + } + if (clusterId == TonerCartridgeMonitoring.ID) { + return new TonerCartridgeMonitoring(); + } + if (clusterId == DoorLock.ID) { + return new DoorLock(); + } + if (clusterId == WindowCovering.ID) { + return new WindowCovering(); + } + if (clusterId == BarrierControl.ID) { + return new BarrierControl(); + } + if (clusterId == PumpConfigurationAndControl.ID) { + return new PumpConfigurationAndControl(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ApplicationLauncher implements BaseCluster { - public static final long ID = 1292L; - - public long getID() { - return ID; - } - - public enum Attribute { - CatalogList(0L), - CurrentApp(1L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == Thermostat.ID) { + return new Thermostat(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - LaunchApp(0L), - StopApp(1L), - HideApp(2L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum LaunchAppCommandField { - Application(0), - Data(1), - ; - private final int id; - - LaunchAppCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static LaunchAppCommandField value(int id) throws NoSuchFieldError { - for (LaunchAppCommandField field : LaunchAppCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == FanControl.ID) { + return new FanControl(); } - throw new NoSuchFieldError(); - } - } - - public enum StopAppCommandField { - Application(0), - ; - private final int id; - - StopAppCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static StopAppCommandField value(int id) throws NoSuchFieldError { - for (StopAppCommandField field : StopAppCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == ThermostatUserInterfaceConfiguration.ID) { + return new ThermostatUserInterfaceConfiguration(); } - throw new NoSuchFieldError(); - } - } - - public enum HideAppCommandField { - Application(0), - ; - private final int id; - - HideAppCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static HideAppCommandField value(int id) throws NoSuchFieldError { - for (HideAppCommandField field : HideAppCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == ColorControl.ID) { + return new ColorControl(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ApplicationBasic implements BaseCluster { - public static final long ID = 1293L; - - public long getID() { - return ID; - } - - public enum Attribute { - VendorName(0L), - VendorID(1L), - ApplicationName(2L), - ProductID(3L), - Application(4L), - Status(5L), - ApplicationVersion(6L), - AllowedVendorList(7L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == BallastConfiguration.ID) { + return new BallastConfiguration(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == IlluminanceMeasurement.ID) { + return new IlluminanceMeasurement(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class AccountLogin implements BaseCluster { - public static final long ID = 1294L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == TemperatureMeasurement.ID) { + return new TemperatureMeasurement(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - GetSetupPIN(0L), - Login(2L), - Logout(3L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum GetSetupPINCommandField { - TempAccountIdentifier(0), - ; - private final int id; - - GetSetupPINCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetSetupPINCommandField value(int id) throws NoSuchFieldError { - for (GetSetupPINCommandField field : GetSetupPINCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == PressureMeasurement.ID) { + return new PressureMeasurement(); } - throw new NoSuchFieldError(); - } - } - - public enum LoginCommandField { - TempAccountIdentifier(0), - SetupPIN(1), - ; - private final int id; - - LoginCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static LoginCommandField value(int id) throws NoSuchFieldError { - for (LoginCommandField field : LoginCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == FlowMeasurement.ID) { + return new FlowMeasurement(); } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class ElectricalMeasurement implements BaseCluster { - public static final long ID = 2820L; - - public long getID() { - return ID; - } - - public enum Attribute { - MeasurementType(0L), - DcVoltage(256L), - DcVoltageMin(257L), - DcVoltageMax(258L), - DcCurrent(259L), - DcCurrentMin(260L), - DcCurrentMax(261L), - DcPower(262L), - DcPowerMin(263L), - DcPowerMax(264L), - DcVoltageMultiplier(512L), - DcVoltageDivisor(513L), - DcCurrentMultiplier(514L), - DcCurrentDivisor(515L), - DcPowerMultiplier(516L), - DcPowerDivisor(517L), - AcFrequency(768L), - AcFrequencyMin(769L), - AcFrequencyMax(770L), - NeutralCurrent(771L), - TotalActivePower(772L), - TotalReactivePower(773L), - TotalApparentPower(774L), - Measured1stHarmonicCurrent(775L), - Measured3rdHarmonicCurrent(776L), - Measured5thHarmonicCurrent(777L), - Measured7thHarmonicCurrent(778L), - Measured9thHarmonicCurrent(779L), - Measured11thHarmonicCurrent(780L), - MeasuredPhase1stHarmonicCurrent(781L), - MeasuredPhase3rdHarmonicCurrent(782L), - MeasuredPhase5thHarmonicCurrent(783L), - MeasuredPhase7thHarmonicCurrent(784L), - MeasuredPhase9thHarmonicCurrent(785L), - MeasuredPhase11thHarmonicCurrent(786L), - AcFrequencyMultiplier(1024L), - AcFrequencyDivisor(1025L), - PowerMultiplier(1026L), - PowerDivisor(1027L), - HarmonicCurrentMultiplier(1028L), - PhaseHarmonicCurrentMultiplier(1029L), - InstantaneousVoltage(1280L), - InstantaneousLineCurrent(1281L), - InstantaneousActiveCurrent(1282L), - InstantaneousReactiveCurrent(1283L), - InstantaneousPower(1284L), - RmsVoltage(1285L), - RmsVoltageMin(1286L), - RmsVoltageMax(1287L), - RmsCurrent(1288L), - RmsCurrentMin(1289L), - RmsCurrentMax(1290L), - ActivePower(1291L), - ActivePowerMin(1292L), - ActivePowerMax(1293L), - ReactivePower(1294L), - ApparentPower(1295L), - PowerFactor(1296L), - AverageRmsVoltageMeasurementPeriod(1297L), - AverageRmsUnderVoltageCounter(1299L), - RmsExtremeOverVoltagePeriod(1300L), - RmsExtremeUnderVoltagePeriod(1301L), - RmsVoltageSagPeriod(1302L), - RmsVoltageSwellPeriod(1303L), - AcVoltageMultiplier(1536L), - AcVoltageDivisor(1537L), - AcCurrentMultiplier(1538L), - AcCurrentDivisor(1539L), - AcPowerMultiplier(1540L), - AcPowerDivisor(1541L), - OverloadAlarmsMask(1792L), - VoltageOverload(1793L), - CurrentOverload(1794L), - AcOverloadAlarmsMask(2048L), - AcVoltageOverload(2049L), - AcCurrentOverload(2050L), - AcActivePowerOverload(2051L), - AcReactivePowerOverload(2052L), - AverageRmsOverVoltage(2053L), - AverageRmsUnderVoltage(2054L), - RmsExtremeOverVoltage(2055L), - RmsExtremeUnderVoltage(2056L), - RmsVoltageSag(2057L), - RmsVoltageSwell(2058L), - LineCurrentPhaseB(2305L), - ActiveCurrentPhaseB(2306L), - ReactiveCurrentPhaseB(2307L), - RmsVoltagePhaseB(2309L), - RmsVoltageMinPhaseB(2310L), - RmsVoltageMaxPhaseB(2311L), - RmsCurrentPhaseB(2312L), - RmsCurrentMinPhaseB(2313L), - RmsCurrentMaxPhaseB(2314L), - ActivePowerPhaseB(2315L), - ActivePowerMinPhaseB(2316L), - ActivePowerMaxPhaseB(2317L), - ReactivePowerPhaseB(2318L), - ApparentPowerPhaseB(2319L), - PowerFactorPhaseB(2320L), - AverageRmsVoltageMeasurementPeriodPhaseB(2321L), - AverageRmsOverVoltageCounterPhaseB(2322L), - AverageRmsUnderVoltageCounterPhaseB(2323L), - RmsExtremeOverVoltagePeriodPhaseB(2324L), - RmsExtremeUnderVoltagePeriodPhaseB(2325L), - RmsVoltageSagPeriodPhaseB(2326L), - RmsVoltageSwellPeriodPhaseB(2327L), - LineCurrentPhaseC(2561L), - ActiveCurrentPhaseC(2562L), - ReactiveCurrentPhaseC(2563L), - RmsVoltagePhaseC(2565L), - RmsVoltageMinPhaseC(2566L), - RmsVoltageMaxPhaseC(2567L), - RmsCurrentPhaseC(2568L), - RmsCurrentMinPhaseC(2569L), - RmsCurrentMaxPhaseC(2570L), - ActivePowerPhaseC(2571L), - ActivePowerMinPhaseC(2572L), - ActivePowerMaxPhaseC(2573L), - ReactivePowerPhaseC(2574L), - ApparentPowerPhaseC(2575L), - PowerFactorPhaseC(2576L), - AverageRmsVoltageMeasurementPeriodPhaseC(2577L), - AverageRmsOverVoltageCounterPhaseC(2578L), - AverageRmsUnderVoltageCounterPhaseC(2579L), - RmsExtremeOverVoltagePeriodPhaseC(2580L), - RmsExtremeUnderVoltagePeriodPhaseC(2581L), - RmsVoltageSagPeriodPhaseC(2582L), - RmsVoltageSwellPeriodPhaseC(2583L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == RelativeHumidityMeasurement.ID) { + return new RelativeHumidityMeasurement(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - GetProfileInfoCommand(0L), - GetMeasurementProfileCommand(1L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == OccupancySensing.ID) { + return new OccupancySensing(); } - throw new NoSuchFieldError(); - } - } - - public enum GetMeasurementProfileCommandCommandField { - AttributeId(0), - StartTime(1), - NumberOfIntervals(2), - ; - private final int id; - - GetMeasurementProfileCommandCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static GetMeasurementProfileCommandCommandField value(int id) throws NoSuchFieldError { - for (GetMeasurementProfileCommandCommandField field : - GetMeasurementProfileCommandCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class UnitTesting implements BaseCluster { - public static final long ID = 4294048773L; - - public long getID() { - return ID; - } - - public enum Attribute { - Boolean(0L), - Bitmap8(1L), - Bitmap16(2L), - Bitmap32(3L), - Bitmap64(4L), - Int8u(5L), - Int16u(6L), - Int24u(7L), - Int32u(8L), - Int40u(9L), - Int48u(10L), - Int56u(11L), - Int64u(12L), - Int8s(13L), - Int16s(14L), - Int24s(15L), - Int32s(16L), - Int40s(17L), - Int48s(18L), - Int56s(19L), - Int64s(20L), - Enum8(21L), - Enum16(22L), - FloatSingle(23L), - FloatDouble(24L), - OctetString(25L), - ListInt8u(26L), - ListOctetString(27L), - ListStructOctetString(28L), - LongOctetString(29L), - CharString(30L), - LongCharString(31L), - EpochUs(32L), - EpochS(33L), - VendorId(34L), - ListNullablesAndOptionalsStruct(35L), - EnumAttr(36L), - StructAttr(37L), - RangeRestrictedInt8u(38L), - RangeRestrictedInt8s(39L), - RangeRestrictedInt16u(40L), - RangeRestrictedInt16s(41L), - ListLongOctetString(42L), - ListFabricScoped(43L), - TimedWriteBoolean(48L), - GeneralErrorBoolean(49L), - ClusterErrorBoolean(50L), - Unsupported(255L), - NullableBoolean(16384L), - NullableBitmap8(16385L), - NullableBitmap16(16386L), - NullableBitmap32(16387L), - NullableBitmap64(16388L), - NullableInt8u(16389L), - NullableInt16u(16390L), - NullableInt24u(16391L), - NullableInt32u(16392L), - NullableInt40u(16393L), - NullableInt48u(16394L), - NullableInt56u(16395L), - NullableInt64u(16396L), - NullableInt8s(16397L), - NullableInt16s(16398L), - NullableInt24s(16399L), - NullableInt32s(16400L), - NullableInt40s(16401L), - NullableInt48s(16402L), - NullableInt56s(16403L), - NullableInt64s(16404L), - NullableEnum8(16405L), - NullableEnum16(16406L), - NullableFloatSingle(16407L), - NullableFloatDouble(16408L), - NullableOctetString(16409L), - NullableCharString(16414L), - NullableEnumAttr(16420L), - NullableStruct(16421L), - NullableRangeRestrictedInt8u(16422L), - NullableRangeRestrictedInt8s(16423L), - NullableRangeRestrictedInt16u(16424L), - NullableRangeRestrictedInt16s(16425L), - WriteOnlyInt8u(16426L), - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - TestEvent(1L), - TestFabricScopedEvent(2L), - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == WakeOnLan.ID) { + return new WakeOnLan(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - Test(0L), - TestNotHandled(1L), - TestSpecific(2L), - TestUnknownCommand(3L), - TestAddArguments(4L), - TestSimpleArgumentRequest(5L), - TestStructArrayArgumentRequest(6L), - TestStructArgumentRequest(7L), - TestNestedStructArgumentRequest(8L), - TestListStructArgumentRequest(9L), - TestListInt8UArgumentRequest(10L), - TestNestedStructListArgumentRequest(11L), - TestListNestedStructListArgumentRequest(12L), - TestListInt8UReverseRequest(13L), - TestEnumsRequest(14L), - TestNullableOptionalRequest(15L), - TestComplexNullableOptionalRequest(16L), - SimpleStructEchoRequest(17L), - TimedInvokeRequest(18L), - TestSimpleOptionalArgumentRequest(19L), - TestEmitTestEventRequest(20L), - TestEmitTestFabricScopedEventRequest(21L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestAddArgumentsCommandField { - Arg1(0), - Arg2(1), - ; - private final int id; - - TestAddArgumentsCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestAddArgumentsCommandField value(int id) throws NoSuchFieldError { - for (TestAddArgumentsCommandField field : TestAddArgumentsCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == Channel.ID) { + return new Channel(); } - throw new NoSuchFieldError(); - } - } - - public enum TestSimpleArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestSimpleArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestSimpleArgumentRequestCommandField value(int id) throws NoSuchFieldError { - for (TestSimpleArgumentRequestCommandField field : - TestSimpleArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == TargetNavigator.ID) { + return new TargetNavigator(); } - throw new NoSuchFieldError(); - } - } - - public enum TestStructArrayArgumentRequestCommandField { - Arg1(0), - Arg2(1), - Arg3(2), - Arg4(3), - Arg5(4), - Arg6(5), - ; - private final int id; - - TestStructArrayArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestStructArrayArgumentRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestStructArrayArgumentRequestCommandField field : - TestStructArrayArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestStructArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestStructArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestStructArgumentRequestCommandField value(int id) throws NoSuchFieldError { - for (TestStructArgumentRequestCommandField field : - TestStructArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == MediaPlayback.ID) { + return new MediaPlayback(); } - throw new NoSuchFieldError(); - } - } - - public enum TestNestedStructArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestNestedStructArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestNestedStructArgumentRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestNestedStructArgumentRequestCommandField field : - TestNestedStructArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestListStructArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestListStructArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestListStructArgumentRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestListStructArgumentRequestCommandField field : - TestListStructArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestListInt8UArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestListInt8UArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestListInt8UArgumentRequestCommandField value(int id) throws NoSuchFieldError { - for (TestListInt8UArgumentRequestCommandField field : - TestListInt8UArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == MediaInput.ID) { + return new MediaInput(); } - throw new NoSuchFieldError(); - } - } - - public enum TestNestedStructListArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestNestedStructListArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestNestedStructListArgumentRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestNestedStructListArgumentRequestCommandField field : - TestNestedStructListArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestListNestedStructListArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestListNestedStructListArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestListNestedStructListArgumentRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestListNestedStructListArgumentRequestCommandField field : - TestListNestedStructListArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestListInt8UReverseRequestCommandField { - Arg1(0), - ; - private final int id; - - TestListInt8UReverseRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestListInt8UReverseRequestCommandField value(int id) throws NoSuchFieldError { - for (TestListInt8UReverseRequestCommandField field : - TestListInt8UReverseRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == LowPower.ID) { + return new LowPower(); } - throw new NoSuchFieldError(); - } - } - - public enum TestEnumsRequestCommandField { - Arg1(0), - Arg2(1), - ; - private final int id; - - TestEnumsRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestEnumsRequestCommandField value(int id) throws NoSuchFieldError { - for (TestEnumsRequestCommandField field : TestEnumsRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == KeypadInput.ID) { + return new KeypadInput(); } - throw new NoSuchFieldError(); - } - } - - public enum TestNullableOptionalRequestCommandField { - Arg1(0), - ; - private final int id; - - TestNullableOptionalRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestNullableOptionalRequestCommandField value(int id) throws NoSuchFieldError { - for (TestNullableOptionalRequestCommandField field : - TestNullableOptionalRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == ContentLauncher.ID) { + return new ContentLauncher(); } - throw new NoSuchFieldError(); - } - } - - public enum TestComplexNullableOptionalRequestCommandField { - NullableInt(0), - OptionalInt(1), - NullableOptionalInt(2), - NullableString(3), - OptionalString(4), - NullableOptionalString(5), - NullableStruct(6), - OptionalStruct(7), - NullableOptionalStruct(8), - NullableList(9), - OptionalList(10), - NullableOptionalList(11), - ; - private final int id; - - TestComplexNullableOptionalRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestComplexNullableOptionalRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestComplexNullableOptionalRequestCommandField field : - TestComplexNullableOptionalRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum SimpleStructEchoRequestCommandField { - Arg1(0), - ; - private final int id; - - SimpleStructEchoRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static SimpleStructEchoRequestCommandField value(int id) throws NoSuchFieldError { - for (SimpleStructEchoRequestCommandField field : - SimpleStructEchoRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } + if (clusterId == AudioOutput.ID) { + return new AudioOutput(); } - throw new NoSuchFieldError(); - } - } - - public enum TestSimpleOptionalArgumentRequestCommandField { - Arg1(0), - ; - private final int id; - - TestSimpleOptionalArgumentRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestSimpleOptionalArgumentRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestSimpleOptionalArgumentRequestCommandField field : - TestSimpleOptionalArgumentRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestEmitTestEventRequestCommandField { - Arg1(0), - Arg2(1), - Arg3(2), - ; - private final int id; - - TestEmitTestEventRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestEmitTestEventRequestCommandField value(int id) throws NoSuchFieldError { - for (TestEmitTestEventRequestCommandField field : - TestEmitTestEventRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum TestEmitTestFabricScopedEventRequestCommandField { - Arg1(0), - ; - private final int id; - - TestEmitTestFabricScopedEventRequestCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static TestEmitTestFabricScopedEventRequestCommandField value(int id) - throws NoSuchFieldError { - for (TestEmitTestFabricScopedEventRequestCommandField field : - TestEmitTestFabricScopedEventRequestCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } - - public static class FaultInjection implements BaseCluster { - public static final long ID = 4294048774L; - - public long getID() { - return ID; - } - - public enum Attribute { - GeneratedCommandList(65528L), - AcceptedCommandList(65529L), - EventList(65530L), - AttributeList(65531L), - FeatureMap(65532L), - ClusterRevision(65533L), - ; - private final long id; - - Attribute(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Attribute value(long id) throws NoSuchFieldError { - for (Attribute attribute : Attribute.values()) { - if (attribute.getID() == id) { - return attribute; - } - } - throw new NoSuchFieldError(); - } - } - - public enum Event { - ; - private final long id; - - Event(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Event value(long id) throws NoSuchFieldError { - for (Event event : Event.values()) { - if (event.getID() == id) { - return event; - } + if (clusterId == ApplicationLauncher.ID) { + return new ApplicationLauncher(); } - throw new NoSuchFieldError(); - } - } - - public enum Command { - FailAtFault(0L), - FailRandomlyAtFault(1L), - ; - private final long id; - - Command(long id) { - this.id = id; - } - - public long getID() { - return id; - } - - public static Command value(long id) throws NoSuchFieldError { - for (Command command : Command.values()) { - if (command.getID() == id) { - return command; - } + if (clusterId == ApplicationBasic.ID) { + return new ApplicationBasic(); } - throw new NoSuchFieldError(); - } - } - - public enum FailAtFaultCommandField { - Type(0), - Id(1), - NumCallsToSkip(2), - NumCallsToFail(3), - TakeMutex(4), - ; - private final int id; - - FailAtFaultCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static FailAtFaultCommandField value(int id) throws NoSuchFieldError { - for (FailAtFaultCommandField field : FailAtFaultCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - public enum FailRandomlyAtFaultCommandField { - Type(0), - Id(1), - Percentage(2), - ; - private final int id; - - FailRandomlyAtFaultCommandField(int id) { - this.id = id; - } - - public int getID() { - return id; - } - - public static FailRandomlyAtFaultCommandField value(int id) throws NoSuchFieldError { - for (FailRandomlyAtFaultCommandField field : FailRandomlyAtFaultCommandField.values()) { - if (field.getID() == id) { - return field; - } - } - throw new NoSuchFieldError(); - } - } - - @Override - public String getAttributeName(long id) throws NoSuchFieldError { - return Attribute.value(id).toString(); - } - - @Override - public String getEventName(long id) throws NoSuchFieldError { - return Event.value(id).toString(); - } - - @Override - public String getCommandName(long id) throws NoSuchFieldError { - return Command.value(id).toString(); - } - - @Override - public long getAttributeID(String name) throws IllegalArgumentException { - return Attribute.valueOf(name).getID(); - } - - @Override - public long getEventID(String name) throws IllegalArgumentException { - return Event.valueOf(name).getID(); - } - - @Override - public long getCommandID(String name) throws IllegalArgumentException { - return Command.valueOf(name).getID(); - } - } -} + if (clusterId == AccountLogin.ID) { + return new AccountLogin(); + } + if (clusterId == ElectricalMeasurement.ID) { + return new ElectricalMeasurement(); + } + if (clusterId == UnitTesting.ID) { + return new UnitTesting(); + } + if (clusterId == FaultInjection.ID) { + return new FaultInjection(); + }return null; + } + public static class Identify implements BaseCluster { + public static final long ID = 3L; + public long getID() { + return ID; + } + + public enum Attribute { + IdentifyTime(0L), + IdentifyType(1L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + Identify(0L), + TriggerEffect(64L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum IdentifyCommandField {IdentifyTime(0),; + private final int id; + IdentifyCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static IdentifyCommandField value(int id) throws NoSuchFieldError { + for (IdentifyCommandField field : IdentifyCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TriggerEffectCommandField {EffectIdentifier(0),EffectVariant(1),; + private final int id; + TriggerEffectCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TriggerEffectCommandField value(int id) throws NoSuchFieldError { + for (TriggerEffectCommandField field : TriggerEffectCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Groups implements BaseCluster { + public static final long ID = 4L; + public long getID() { + return ID; + } + + public enum Attribute { + NameSupport(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + AddGroup(0L), + ViewGroup(1L), + GetGroupMembership(2L), + RemoveGroup(3L), + RemoveAllGroups(4L), + AddGroupIfIdentifying(5L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum AddGroupCommandField {GroupID(0),GroupName(1),; + private final int id; + AddGroupCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AddGroupCommandField value(int id) throws NoSuchFieldError { + for (AddGroupCommandField field : AddGroupCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ViewGroupCommandField {GroupID(0),; + private final int id; + ViewGroupCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ViewGroupCommandField value(int id) throws NoSuchFieldError { + for (ViewGroupCommandField field : ViewGroupCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetGroupMembershipCommandField {GroupList(0),; + private final int id; + GetGroupMembershipCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetGroupMembershipCommandField value(int id) throws NoSuchFieldError { + for (GetGroupMembershipCommandField field : GetGroupMembershipCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RemoveGroupCommandField {GroupID(0),; + private final int id; + RemoveGroupCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RemoveGroupCommandField value(int id) throws NoSuchFieldError { + for (RemoveGroupCommandField field : RemoveGroupCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum AddGroupIfIdentifyingCommandField {GroupID(0),GroupName(1),; + private final int id; + AddGroupIfIdentifyingCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AddGroupIfIdentifyingCommandField value(int id) throws NoSuchFieldError { + for (AddGroupIfIdentifyingCommandField field : AddGroupIfIdentifyingCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Scenes implements BaseCluster { + public static final long ID = 5L; + public long getID() { + return ID; + } + + public enum Attribute { + SceneCount(0L), + CurrentScene(1L), + CurrentGroup(2L), + SceneValid(3L), + NameSupport(4L), + LastConfiguredBy(5L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + AddScene(0L), + ViewScene(1L), + RemoveScene(2L), + RemoveAllScenes(3L), + StoreScene(4L), + RecallScene(5L), + GetSceneMembership(6L), + EnhancedAddScene(64L), + EnhancedViewScene(65L), + CopyScene(66L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum AddSceneCommandField {GroupID(0),SceneID(1),TransitionTime(2),SceneName(3),ExtensionFieldSets(4),; + private final int id; + AddSceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AddSceneCommandField value(int id) throws NoSuchFieldError { + for (AddSceneCommandField field : AddSceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ViewSceneCommandField {GroupID(0),SceneID(1),; + private final int id; + ViewSceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ViewSceneCommandField value(int id) throws NoSuchFieldError { + for (ViewSceneCommandField field : ViewSceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RemoveSceneCommandField {GroupID(0),SceneID(1),; + private final int id; + RemoveSceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RemoveSceneCommandField value(int id) throws NoSuchFieldError { + for (RemoveSceneCommandField field : RemoveSceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RemoveAllScenesCommandField {GroupID(0),; + private final int id; + RemoveAllScenesCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RemoveAllScenesCommandField value(int id) throws NoSuchFieldError { + for (RemoveAllScenesCommandField field : RemoveAllScenesCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StoreSceneCommandField {GroupID(0),SceneID(1),; + private final int id; + StoreSceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StoreSceneCommandField value(int id) throws NoSuchFieldError { + for (StoreSceneCommandField field : StoreSceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RecallSceneCommandField {GroupID(0),SceneID(1),TransitionTime(2),; + private final int id; + RecallSceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RecallSceneCommandField value(int id) throws NoSuchFieldError { + for (RecallSceneCommandField field : RecallSceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetSceneMembershipCommandField {GroupID(0),; + private final int id; + GetSceneMembershipCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetSceneMembershipCommandField value(int id) throws NoSuchFieldError { + for (GetSceneMembershipCommandField field : GetSceneMembershipCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnhancedAddSceneCommandField {GroupID(0),SceneID(1),TransitionTime(2),SceneName(3),ExtensionFieldSets(4),; + private final int id; + EnhancedAddSceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnhancedAddSceneCommandField value(int id) throws NoSuchFieldError { + for (EnhancedAddSceneCommandField field : EnhancedAddSceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnhancedViewSceneCommandField {GroupID(0),SceneID(1),; + private final int id; + EnhancedViewSceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnhancedViewSceneCommandField value(int id) throws NoSuchFieldError { + for (EnhancedViewSceneCommandField field : EnhancedViewSceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum CopySceneCommandField {Mode(0),GroupIdentifierFrom(1),SceneIdentifierFrom(2),GroupIdentifierTo(3),SceneIdentifierTo(4),; + private final int id; + CopySceneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static CopySceneCommandField value(int id) throws NoSuchFieldError { + for (CopySceneCommandField field : CopySceneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class OnOff implements BaseCluster { + public static final long ID = 6L; + public long getID() { + return ID; + } + + public enum Attribute { + OnOff(0L), + GlobalSceneControl(16384L), + OnTime(16385L), + OffWaitTime(16386L), + StartUpOnOff(16387L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + Off(0L), + On(1L), + Toggle(2L), + OffWithEffect(64L), + OnWithRecallGlobalScene(65L), + OnWithTimedOff(66L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum OffWithEffectCommandField {EffectIdentifier(0),EffectVariant(1),; + private final int id; + OffWithEffectCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static OffWithEffectCommandField value(int id) throws NoSuchFieldError { + for (OffWithEffectCommandField field : OffWithEffectCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum OnWithTimedOffCommandField {OnOffControl(0),OnTime(1),OffWaitTime(2),; + private final int id; + OnWithTimedOffCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static OnWithTimedOffCommandField value(int id) throws NoSuchFieldError { + for (OnWithTimedOffCommandField field : OnWithTimedOffCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class OnOffSwitchConfiguration implements BaseCluster { + public static final long ID = 7L; + public long getID() { + return ID; + } + + public enum Attribute { + SwitchType(0L), + SwitchActions(16L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class LevelControl implements BaseCluster { + public static final long ID = 8L; + public long getID() { + return ID; + } + + public enum Attribute { + CurrentLevel(0L), + RemainingTime(1L), + MinLevel(2L), + MaxLevel(3L), + CurrentFrequency(4L), + MinFrequency(5L), + MaxFrequency(6L), + Options(15L), + OnOffTransitionTime(16L), + OnLevel(17L), + OnTransitionTime(18L), + OffTransitionTime(19L), + DefaultMoveRate(20L), + StartUpCurrentLevel(16384L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + MoveToLevel(0L), + Move(1L), + Step(2L), + Stop(3L), + MoveToLevelWithOnOff(4L), + MoveWithOnOff(5L), + StepWithOnOff(6L), + StopWithOnOff(7L), + MoveToClosestFrequency(8L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToLevelCommandField {Level(0),TransitionTime(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveToLevelCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToLevelCommandField value(int id) throws NoSuchFieldError { + for (MoveToLevelCommandField field : MoveToLevelCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveCommandField {MoveMode(0),Rate(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveCommandField value(int id) throws NoSuchFieldError { + for (MoveCommandField field : MoveCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StepCommandField {StepMode(0),StepSize(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + StepCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StepCommandField value(int id) throws NoSuchFieldError { + for (StepCommandField field : StepCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StopCommandField {OptionsMask(0),OptionsOverride(1),; + private final int id; + StopCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StopCommandField value(int id) throws NoSuchFieldError { + for (StopCommandField field : StopCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToLevelWithOnOffCommandField {Level(0),TransitionTime(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveToLevelWithOnOffCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToLevelWithOnOffCommandField value(int id) throws NoSuchFieldError { + for (MoveToLevelWithOnOffCommandField field : MoveToLevelWithOnOffCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveWithOnOffCommandField {MoveMode(0),Rate(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveWithOnOffCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveWithOnOffCommandField value(int id) throws NoSuchFieldError { + for (MoveWithOnOffCommandField field : MoveWithOnOffCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StepWithOnOffCommandField {StepMode(0),StepSize(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + StepWithOnOffCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StepWithOnOffCommandField value(int id) throws NoSuchFieldError { + for (StepWithOnOffCommandField field : StepWithOnOffCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StopWithOnOffCommandField {OptionsMask(0),OptionsOverride(1),; + private final int id; + StopWithOnOffCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StopWithOnOffCommandField value(int id) throws NoSuchFieldError { + for (StopWithOnOffCommandField field : StopWithOnOffCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToClosestFrequencyCommandField {Frequency(0),; + private final int id; + MoveToClosestFrequencyCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToClosestFrequencyCommandField value(int id) throws NoSuchFieldError { + for (MoveToClosestFrequencyCommandField field : MoveToClosestFrequencyCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class BinaryInputBasic implements BaseCluster { + public static final long ID = 15L; + public long getID() { + return ID; + } + + public enum Attribute { + ActiveText(4L), + Description(28L), + InactiveText(46L), + OutOfService(81L), + Polarity(84L), + PresentValue(85L), + Reliability(103L), + StatusFlags(111L), + ApplicationType(256L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class PulseWidthModulation implements BaseCluster { + public static final long ID = 28L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Descriptor implements BaseCluster { + public static final long ID = 29L; + public long getID() { + return ID; + } + + public enum Attribute { + DeviceTypeList(0L), + ServerList(1L), + ClientList(2L), + PartsList(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Binding implements BaseCluster { + public static final long ID = 30L; + public long getID() { + return ID; + } + + public enum Attribute { + Binding(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class AccessControl implements BaseCluster { + public static final long ID = 31L; + public long getID() { + return ID; + } + + public enum Attribute { + Acl(0L), + Extension(1L), + SubjectsPerAccessControlEntry(2L), + TargetsPerAccessControlEntry(3L), + AccessControlEntriesPerFabric(4L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + AccessControlEntryChanged(0L), + AccessControlExtensionChanged(1L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Actions implements BaseCluster { + public static final long ID = 37L; + public long getID() { + return ID; + } + + public enum Attribute { + ActionList(0L), + EndpointLists(1L), + SetupURL(2L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + StateChanged(0L), + ActionFailed(1L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + InstantAction(0L), + InstantActionWithTransition(1L), + StartAction(2L), + StartActionWithDuration(3L), + StopAction(4L), + PauseAction(5L), + PauseActionWithDuration(6L), + ResumeAction(7L), + EnableAction(8L), + EnableActionWithDuration(9L), + DisableAction(10L), + DisableActionWithDuration(11L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum InstantActionCommandField {ActionID(0),InvokeID(1),; + private final int id; + InstantActionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static InstantActionCommandField value(int id) throws NoSuchFieldError { + for (InstantActionCommandField field : InstantActionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum InstantActionWithTransitionCommandField {ActionID(0),InvokeID(1),TransitionTime(2),; + private final int id; + InstantActionWithTransitionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static InstantActionWithTransitionCommandField value(int id) throws NoSuchFieldError { + for (InstantActionWithTransitionCommandField field : InstantActionWithTransitionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StartActionCommandField {ActionID(0),InvokeID(1),; + private final int id; + StartActionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StartActionCommandField value(int id) throws NoSuchFieldError { + for (StartActionCommandField field : StartActionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StartActionWithDurationCommandField {ActionID(0),InvokeID(1),Duration(2),; + private final int id; + StartActionWithDurationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StartActionWithDurationCommandField value(int id) throws NoSuchFieldError { + for (StartActionWithDurationCommandField field : StartActionWithDurationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StopActionCommandField {ActionID(0),InvokeID(1),; + private final int id; + StopActionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StopActionCommandField value(int id) throws NoSuchFieldError { + for (StopActionCommandField field : StopActionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum PauseActionCommandField {ActionID(0),InvokeID(1),; + private final int id; + PauseActionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static PauseActionCommandField value(int id) throws NoSuchFieldError { + for (PauseActionCommandField field : PauseActionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum PauseActionWithDurationCommandField {ActionID(0),InvokeID(1),Duration(2),; + private final int id; + PauseActionWithDurationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static PauseActionWithDurationCommandField value(int id) throws NoSuchFieldError { + for (PauseActionWithDurationCommandField field : PauseActionWithDurationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ResumeActionCommandField {ActionID(0),InvokeID(1),; + private final int id; + ResumeActionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ResumeActionCommandField value(int id) throws NoSuchFieldError { + for (ResumeActionCommandField field : ResumeActionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnableActionCommandField {ActionID(0),InvokeID(1),; + private final int id; + EnableActionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnableActionCommandField value(int id) throws NoSuchFieldError { + for (EnableActionCommandField field : EnableActionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnableActionWithDurationCommandField {ActionID(0),InvokeID(1),Duration(2),; + private final int id; + EnableActionWithDurationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnableActionWithDurationCommandField value(int id) throws NoSuchFieldError { + for (EnableActionWithDurationCommandField field : EnableActionWithDurationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum DisableActionCommandField {ActionID(0),InvokeID(1),; + private final int id; + DisableActionCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static DisableActionCommandField value(int id) throws NoSuchFieldError { + for (DisableActionCommandField field : DisableActionCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum DisableActionWithDurationCommandField {ActionID(0),InvokeID(1),Duration(2),; + private final int id; + DisableActionWithDurationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static DisableActionWithDurationCommandField value(int id) throws NoSuchFieldError { + for (DisableActionWithDurationCommandField field : DisableActionWithDurationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class BasicInformation implements BaseCluster { + public static final long ID = 40L; + public long getID() { + return ID; + } + + public enum Attribute { + DataModelRevision(0L), + VendorName(1L), + VendorID(2L), + ProductName(3L), + ProductID(4L), + NodeLabel(5L), + Location(6L), + HardwareVersion(7L), + HardwareVersionString(8L), + SoftwareVersion(9L), + SoftwareVersionString(10L), + ManufacturingDate(11L), + PartNumber(12L), + ProductURL(13L), + ProductLabel(14L), + SerialNumber(15L), + LocalConfigDisabled(16L), + Reachable(17L), + UniqueID(18L), + CapabilityMinima(19L), + ProductAppearance(20L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + StartUp(0L), + ShutDown(1L), + Leave(2L), + ReachableChanged(3L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + MfgSpecificPing(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class OtaSoftwareUpdateProvider implements BaseCluster { + public static final long ID = 41L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + QueryImage(0L), + ApplyUpdateRequest(2L), + NotifyUpdateApplied(4L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum QueryImageCommandField {VendorID(0),ProductID(1),SoftwareVersion(2),ProtocolsSupported(3),HardwareVersion(4),Location(5),RequestorCanConsent(6),MetadataForProvider(7),; + private final int id; + QueryImageCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static QueryImageCommandField value(int id) throws NoSuchFieldError { + for (QueryImageCommandField field : QueryImageCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ApplyUpdateRequestCommandField {UpdateToken(0),NewVersion(1),; + private final int id; + ApplyUpdateRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ApplyUpdateRequestCommandField value(int id) throws NoSuchFieldError { + for (ApplyUpdateRequestCommandField field : ApplyUpdateRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum NotifyUpdateAppliedCommandField {UpdateToken(0),SoftwareVersion(1),; + private final int id; + NotifyUpdateAppliedCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static NotifyUpdateAppliedCommandField value(int id) throws NoSuchFieldError { + for (NotifyUpdateAppliedCommandField field : NotifyUpdateAppliedCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class OtaSoftwareUpdateRequestor implements BaseCluster { + public static final long ID = 42L; + public long getID() { + return ID; + } + + public enum Attribute { + DefaultOTAProviders(0L), + UpdatePossible(1L), + UpdateState(2L), + UpdateStateProgress(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + StateTransition(0L), + VersionApplied(1L), + DownloadError(2L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + AnnounceOTAProvider(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum AnnounceOTAProviderCommandField {ProviderNodeID(0),VendorID(1),AnnouncementReason(2),MetadataForNode(3),Endpoint(4),; + private final int id; + AnnounceOTAProviderCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AnnounceOTAProviderCommandField value(int id) throws NoSuchFieldError { + for (AnnounceOTAProviderCommandField field : AnnounceOTAProviderCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class LocalizationConfiguration implements BaseCluster { + public static final long ID = 43L; + public long getID() { + return ID; + } + + public enum Attribute { + ActiveLocale(0L), + SupportedLocales(1L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class TimeFormatLocalization implements BaseCluster { + public static final long ID = 44L; + public long getID() { + return ID; + } + + public enum Attribute { + HourFormat(0L), + ActiveCalendarType(1L), + SupportedCalendarTypes(2L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class UnitLocalization implements BaseCluster { + public static final long ID = 45L; + public long getID() { + return ID; + } + + public enum Attribute { + TemperatureUnit(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class PowerSourceConfiguration implements BaseCluster { + public static final long ID = 46L; + public long getID() { + return ID; + } + + public enum Attribute { + Sources(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class PowerSource implements BaseCluster { + public static final long ID = 47L; + public long getID() { + return ID; + } + + public enum Attribute { + Status(0L), + Order(1L), + Description(2L), + WiredAssessedInputVoltage(3L), + WiredAssessedInputFrequency(4L), + WiredCurrentType(5L), + WiredAssessedCurrent(6L), + WiredNominalVoltage(7L), + WiredMaximumCurrent(8L), + WiredPresent(9L), + ActiveWiredFaults(10L), + BatVoltage(11L), + BatPercentRemaining(12L), + BatTimeRemaining(13L), + BatChargeLevel(14L), + BatReplacementNeeded(15L), + BatReplaceability(16L), + BatPresent(17L), + ActiveBatFaults(18L), + BatReplacementDescription(19L), + BatCommonDesignation(20L), + BatANSIDesignation(21L), + BatIECDesignation(22L), + BatApprovedChemistry(23L), + BatCapacity(24L), + BatQuantity(25L), + BatChargeState(26L), + BatTimeToFullCharge(27L), + BatFunctionalWhileCharging(28L), + BatChargingCurrent(29L), + ActiveBatChargeFaults(30L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + WiredFaultChange(0L), + BatFaultChange(1L), + BatChargeFaultChange(2L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class GeneralCommissioning implements BaseCluster { + public static final long ID = 48L; + public long getID() { + return ID; + } + + public enum Attribute { + Breadcrumb(0L), + BasicCommissioningInfo(1L), + RegulatoryConfig(2L), + LocationCapability(3L), + SupportsConcurrentConnection(4L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ArmFailSafe(0L), + SetRegulatoryConfig(2L), + CommissioningComplete(4L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum ArmFailSafeCommandField {ExpiryLengthSeconds(0),Breadcrumb(1),; + private final int id; + ArmFailSafeCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ArmFailSafeCommandField value(int id) throws NoSuchFieldError { + for (ArmFailSafeCommandField field : ArmFailSafeCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetRegulatoryConfigCommandField {NewRegulatoryConfig(0),CountryCode(1),Breadcrumb(2),; + private final int id; + SetRegulatoryConfigCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetRegulatoryConfigCommandField value(int id) throws NoSuchFieldError { + for (SetRegulatoryConfigCommandField field : SetRegulatoryConfigCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class NetworkCommissioning implements BaseCluster { + public static final long ID = 49L; + public long getID() { + return ID; + } + + public enum Attribute { + MaxNetworks(0L), + Networks(1L), + ScanMaxTimeSeconds(2L), + ConnectMaxTimeSeconds(3L), + InterfaceEnabled(4L), + LastNetworkingStatus(5L), + LastNetworkID(6L), + LastConnectErrorValue(7L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ScanNetworks(0L), + AddOrUpdateWiFiNetwork(2L), + AddOrUpdateThreadNetwork(3L), + RemoveNetwork(4L), + ConnectNetwork(6L), + ReorderNetwork(8L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum ScanNetworksCommandField {Ssid(0),Breadcrumb(1),; + private final int id; + ScanNetworksCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ScanNetworksCommandField value(int id) throws NoSuchFieldError { + for (ScanNetworksCommandField field : ScanNetworksCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum AddOrUpdateWiFiNetworkCommandField {Ssid(0),Credentials(1),Breadcrumb(2),; + private final int id; + AddOrUpdateWiFiNetworkCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AddOrUpdateWiFiNetworkCommandField value(int id) throws NoSuchFieldError { + for (AddOrUpdateWiFiNetworkCommandField field : AddOrUpdateWiFiNetworkCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum AddOrUpdateThreadNetworkCommandField {OperationalDataset(0),Breadcrumb(1),; + private final int id; + AddOrUpdateThreadNetworkCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AddOrUpdateThreadNetworkCommandField value(int id) throws NoSuchFieldError { + for (AddOrUpdateThreadNetworkCommandField field : AddOrUpdateThreadNetworkCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RemoveNetworkCommandField {NetworkID(0),Breadcrumb(1),; + private final int id; + RemoveNetworkCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RemoveNetworkCommandField value(int id) throws NoSuchFieldError { + for (RemoveNetworkCommandField field : RemoveNetworkCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ConnectNetworkCommandField {NetworkID(0),Breadcrumb(1),; + private final int id; + ConnectNetworkCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ConnectNetworkCommandField value(int id) throws NoSuchFieldError { + for (ConnectNetworkCommandField field : ConnectNetworkCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ReorderNetworkCommandField {NetworkID(0),NetworkIndex(1),Breadcrumb(2),; + private final int id; + ReorderNetworkCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ReorderNetworkCommandField value(int id) throws NoSuchFieldError { + for (ReorderNetworkCommandField field : ReorderNetworkCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class DiagnosticLogs implements BaseCluster { + public static final long ID = 50L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + RetrieveLogsRequest(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum RetrieveLogsRequestCommandField {Intent(0),RequestedProtocol(1),TransferFileDesignator(2),; + private final int id; + RetrieveLogsRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RetrieveLogsRequestCommandField value(int id) throws NoSuchFieldError { + for (RetrieveLogsRequestCommandField field : RetrieveLogsRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class GeneralDiagnostics implements BaseCluster { + public static final long ID = 51L; + public long getID() { + return ID; + } + + public enum Attribute { + NetworkInterfaces(0L), + RebootCount(1L), + UpTime(2L), + TotalOperationalHours(3L), + BootReason(4L), + ActiveHardwareFaults(5L), + ActiveRadioFaults(6L), + ActiveNetworkFaults(7L), + TestEventTriggersEnabled(8L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + HardwareFaultChange(0L), + RadioFaultChange(1L), + NetworkFaultChange(2L), + BootReason(3L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + TestEventTrigger(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum TestEventTriggerCommandField {EnableKey(0),EventTrigger(1),; + private final int id; + TestEventTriggerCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestEventTriggerCommandField value(int id) throws NoSuchFieldError { + for (TestEventTriggerCommandField field : TestEventTriggerCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class SoftwareDiagnostics implements BaseCluster { + public static final long ID = 52L; + public long getID() { + return ID; + } + + public enum Attribute { + ThreadMetrics(0L), + CurrentHeapFree(1L), + CurrentHeapUsed(2L), + CurrentHeapHighWatermark(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + SoftwareFault(0L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetWatermarks(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ThreadNetworkDiagnostics implements BaseCluster { + public static final long ID = 53L; + public long getID() { + return ID; + } + + public enum Attribute { + Channel(0L), + RoutingRole(1L), + NetworkName(2L), + PanId(3L), + ExtendedPanId(4L), + MeshLocalPrefix(5L), + OverrunCount(6L), + NeighborTable(7L), + RouteTable(8L), + PartitionId(9L), + Weighting(10L), + DataVersion(11L), + StableDataVersion(12L), + LeaderRouterId(13L), + DetachedRoleCount(14L), + ChildRoleCount(15L), + RouterRoleCount(16L), + LeaderRoleCount(17L), + AttachAttemptCount(18L), + PartitionIdChangeCount(19L), + BetterPartitionAttachAttemptCount(20L), + ParentChangeCount(21L), + TxTotalCount(22L), + TxUnicastCount(23L), + TxBroadcastCount(24L), + TxAckRequestedCount(25L), + TxAckedCount(26L), + TxNoAckRequestedCount(27L), + TxDataCount(28L), + TxDataPollCount(29L), + TxBeaconCount(30L), + TxBeaconRequestCount(31L), + TxOtherCount(32L), + TxRetryCount(33L), + TxDirectMaxRetryExpiryCount(34L), + TxIndirectMaxRetryExpiryCount(35L), + TxErrCcaCount(36L), + TxErrAbortCount(37L), + TxErrBusyChannelCount(38L), + RxTotalCount(39L), + RxUnicastCount(40L), + RxBroadcastCount(41L), + RxDataCount(42L), + RxDataPollCount(43L), + RxBeaconCount(44L), + RxBeaconRequestCount(45L), + RxOtherCount(46L), + RxAddressFilteredCount(47L), + RxDestAddrFilteredCount(48L), + RxDuplicatedCount(49L), + RxErrNoFrameCount(50L), + RxErrUnknownNeighborCount(51L), + RxErrInvalidSrcAddrCount(52L), + RxErrSecCount(53L), + RxErrFcsCount(54L), + RxErrOtherCount(55L), + ActiveTimestamp(56L), + PendingTimestamp(57L), + Delay(58L), + SecurityPolicy(59L), + ChannelPage0Mask(60L), + OperationalDatasetComponents(61L), + ActiveNetworkFaultsList(62L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + ConnectionStatus(0L), + NetworkFaultChange(1L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCounts(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class WiFiNetworkDiagnostics implements BaseCluster { + public static final long ID = 54L; + public long getID() { + return ID; + } + + public enum Attribute { + Bssid(0L), + SecurityType(1L), + WiFiVersion(2L), + ChannelNumber(3L), + Rssi(4L), + BeaconLostCount(5L), + BeaconRxCount(6L), + PacketMulticastRxCount(7L), + PacketMulticastTxCount(8L), + PacketUnicastRxCount(9L), + PacketUnicastTxCount(10L), + CurrentMaxRate(11L), + OverrunCount(12L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + Disconnection(0L), + AssociationFailure(1L), + ConnectionStatus(2L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCounts(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class EthernetNetworkDiagnostics implements BaseCluster { + public static final long ID = 55L; + public long getID() { + return ID; + } + + public enum Attribute { + PHYRate(0L), + FullDuplex(1L), + PacketRxCount(2L), + PacketTxCount(3L), + TxErrCount(4L), + CollisionCount(5L), + OverrunCount(6L), + CarrierDetect(7L), + TimeSinceReset(8L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCounts(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class TimeSynchronization implements BaseCluster { + public static final long ID = 56L; + public long getID() { + return ID; + } + + public enum Attribute { + UTCTime(0L), + Granularity(1L), + TimeSource(2L), + TrustedTimeSource(3L), + DefaultNTP(4L), + TimeZone(5L), + DSTOffset(6L), + LocalTime(7L), + TimeZoneDatabase(8L), + NTPServerAvailable(9L), + TimeZoneListMaxSize(10L), + DSTOffsetListMaxSize(11L), + SupportsDNSResolve(12L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + DSTTableEmpty(0L), + DSTStatus(1L), + TimeZoneStatus(2L), + TimeFailure(3L), + MissingTrustedTimeSource(4L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + SetUTCTime(0L), + SetTrustedTimeSource(1L), + SetTimeZone(2L), + SetDSTOffset(4L), + SetDefaultNTP(5L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum SetUTCTimeCommandField {UTCTime(0),Granularity(1),TimeSource(2),; + private final int id; + SetUTCTimeCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetUTCTimeCommandField value(int id) throws NoSuchFieldError { + for (SetUTCTimeCommandField field : SetUTCTimeCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetTrustedTimeSourceCommandField {TrustedTimeSource(0),; + private final int id; + SetTrustedTimeSourceCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetTrustedTimeSourceCommandField value(int id) throws NoSuchFieldError { + for (SetTrustedTimeSourceCommandField field : SetTrustedTimeSourceCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetTimeZoneCommandField {TimeZone(0),; + private final int id; + SetTimeZoneCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetTimeZoneCommandField value(int id) throws NoSuchFieldError { + for (SetTimeZoneCommandField field : SetTimeZoneCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetDSTOffsetCommandField {DSTOffset(0),; + private final int id; + SetDSTOffsetCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetDSTOffsetCommandField value(int id) throws NoSuchFieldError { + for (SetDSTOffsetCommandField field : SetDSTOffsetCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetDefaultNTPCommandField {DefaultNTP(0),; + private final int id; + SetDefaultNTPCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetDefaultNTPCommandField value(int id) throws NoSuchFieldError { + for (SetDefaultNTPCommandField field : SetDefaultNTPCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class BridgedDeviceBasicInformation implements BaseCluster { + public static final long ID = 57L; + public long getID() { + return ID; + } + + public enum Attribute { + VendorName(1L), + VendorID(2L), + ProductName(3L), + NodeLabel(5L), + HardwareVersion(7L), + HardwareVersionString(8L), + SoftwareVersion(9L), + SoftwareVersionString(10L), + ManufacturingDate(11L), + PartNumber(12L), + ProductURL(13L), + ProductLabel(14L), + SerialNumber(15L), + Reachable(17L), + UniqueID(18L), + ProductAppearance(20L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + StartUp(0L), + ShutDown(1L), + Leave(2L), + ReachableChanged(3L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Switch implements BaseCluster { + public static final long ID = 59L; + public long getID() { + return ID; + } + + public enum Attribute { + NumberOfPositions(0L), + CurrentPosition(1L), + MultiPressMax(2L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + SwitchLatched(0L), + InitialPress(1L), + LongPress(2L), + ShortRelease(3L), + LongRelease(4L), + MultiPressOngoing(5L), + MultiPressComplete(6L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class AdministratorCommissioning implements BaseCluster { + public static final long ID = 60L; + public long getID() { + return ID; + } + + public enum Attribute { + WindowStatus(0L), + AdminFabricIndex(1L), + AdminVendorId(2L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + OpenCommissioningWindow(0L), + OpenBasicCommissioningWindow(1L), + RevokeCommissioning(2L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum OpenCommissioningWindowCommandField {CommissioningTimeout(0),PAKEPasscodeVerifier(1),Discriminator(2),Iterations(3),Salt(4),; + private final int id; + OpenCommissioningWindowCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static OpenCommissioningWindowCommandField value(int id) throws NoSuchFieldError { + for (OpenCommissioningWindowCommandField field : OpenCommissioningWindowCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum OpenBasicCommissioningWindowCommandField {CommissioningTimeout(0),; + private final int id; + OpenBasicCommissioningWindowCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static OpenBasicCommissioningWindowCommandField value(int id) throws NoSuchFieldError { + for (OpenBasicCommissioningWindowCommandField field : OpenBasicCommissioningWindowCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class OperationalCredentials implements BaseCluster { + public static final long ID = 62L; + public long getID() { + return ID; + } + + public enum Attribute { + NOCs(0L), + Fabrics(1L), + SupportedFabrics(2L), + CommissionedFabrics(3L), + TrustedRootCertificates(4L), + CurrentFabricIndex(5L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + AttestationRequest(0L), + CertificateChainRequest(2L), + CSRRequest(4L), + AddNOC(6L), + UpdateNOC(7L), + UpdateFabricLabel(9L), + RemoveFabric(10L), + AddTrustedRootCertificate(11L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum AttestationRequestCommandField {AttestationNonce(0),; + private final int id; + AttestationRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AttestationRequestCommandField value(int id) throws NoSuchFieldError { + for (AttestationRequestCommandField field : AttestationRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum CertificateChainRequestCommandField {CertificateType(0),; + private final int id; + CertificateChainRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static CertificateChainRequestCommandField value(int id) throws NoSuchFieldError { + for (CertificateChainRequestCommandField field : CertificateChainRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum CSRRequestCommandField {CSRNonce(0),IsForUpdateNOC(1),; + private final int id; + CSRRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static CSRRequestCommandField value(int id) throws NoSuchFieldError { + for (CSRRequestCommandField field : CSRRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum AddNOCCommandField {NOCValue(0),ICACValue(1),IPKValue(2),CaseAdminSubject(3),AdminVendorId(4),; + private final int id; + AddNOCCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AddNOCCommandField value(int id) throws NoSuchFieldError { + for (AddNOCCommandField field : AddNOCCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum UpdateNOCCommandField {NOCValue(0),ICACValue(1),; + private final int id; + UpdateNOCCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static UpdateNOCCommandField value(int id) throws NoSuchFieldError { + for (UpdateNOCCommandField field : UpdateNOCCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum UpdateFabricLabelCommandField {Label(0),; + private final int id; + UpdateFabricLabelCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static UpdateFabricLabelCommandField value(int id) throws NoSuchFieldError { + for (UpdateFabricLabelCommandField field : UpdateFabricLabelCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RemoveFabricCommandField {FabricIndex(0),; + private final int id; + RemoveFabricCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RemoveFabricCommandField value(int id) throws NoSuchFieldError { + for (RemoveFabricCommandField field : RemoveFabricCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum AddTrustedRootCertificateCommandField {RootCACertificate(0),; + private final int id; + AddTrustedRootCertificateCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static AddTrustedRootCertificateCommandField value(int id) throws NoSuchFieldError { + for (AddTrustedRootCertificateCommandField field : AddTrustedRootCertificateCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class GroupKeyManagement implements BaseCluster { + public static final long ID = 63L; + public long getID() { + return ID; + } + + public enum Attribute { + GroupKeyMap(0L), + GroupTable(1L), + MaxGroupsPerFabric(2L), + MaxGroupKeysPerFabric(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + KeySetWrite(0L), + KeySetRead(1L), + KeySetRemove(3L), + KeySetReadAllIndices(4L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum KeySetWriteCommandField {GroupKeySet(0),; + private final int id; + KeySetWriteCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static KeySetWriteCommandField value(int id) throws NoSuchFieldError { + for (KeySetWriteCommandField field : KeySetWriteCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum KeySetReadCommandField {GroupKeySetID(0),; + private final int id; + KeySetReadCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static KeySetReadCommandField value(int id) throws NoSuchFieldError { + for (KeySetReadCommandField field : KeySetReadCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum KeySetRemoveCommandField {GroupKeySetID(0),; + private final int id; + KeySetRemoveCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static KeySetRemoveCommandField value(int id) throws NoSuchFieldError { + for (KeySetRemoveCommandField field : KeySetRemoveCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum KeySetReadAllIndicesCommandField {GroupKeySetIDs(0),; + private final int id; + KeySetReadAllIndicesCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static KeySetReadAllIndicesCommandField value(int id) throws NoSuchFieldError { + for (KeySetReadAllIndicesCommandField field : KeySetReadAllIndicesCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class FixedLabel implements BaseCluster { + public static final long ID = 64L; + public long getID() { + return ID; + } + + public enum Attribute { + LabelList(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class UserLabel implements BaseCluster { + public static final long ID = 65L; + public long getID() { + return ID; + } + + public enum Attribute { + LabelList(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ProxyConfiguration implements BaseCluster { + public static final long ID = 66L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ProxyDiscovery implements BaseCluster { + public static final long ID = 67L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ProxyValid implements BaseCluster { + public static final long ID = 68L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class BooleanState implements BaseCluster { + public static final long ID = 69L; + public long getID() { + return ID; + } + + public enum Attribute { + StateValue(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + StateChange(0L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class IcdManagement implements BaseCluster { + public static final long ID = 70L; + public long getID() { + return ID; + } + + public enum Attribute { + IdleModeInterval(0L), + ActiveModeInterval(1L), + ActiveModeThreshold(2L), + RegisteredClients(3L), + ICDCounter(4L), + ClientsSupportedPerFabric(5L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + RegisterClient(0L), + UnregisterClient(2L), + StayActiveRequest(3L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum RegisterClientCommandField {CheckInNodeID(0),MonitoredSubject(1),Key(2),VerificationKey(3),; + private final int id; + RegisterClientCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RegisterClientCommandField value(int id) throws NoSuchFieldError { + for (RegisterClientCommandField field : RegisterClientCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum UnregisterClientCommandField {CheckInNodeID(0),Key(1),; + private final int id; + UnregisterClientCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static UnregisterClientCommandField value(int id) throws NoSuchFieldError { + for (UnregisterClientCommandField field : UnregisterClientCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ModeSelect implements BaseCluster { + public static final long ID = 80L; + public long getID() { + return ID; + } + + public enum Attribute { + Description(0L), + StandardNamespace(1L), + SupportedModes(2L), + CurrentMode(3L), + StartUpMode(4L), + OnMode(5L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ChangeToMode(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum ChangeToModeCommandField {NewMode(0),; + private final int id; + ChangeToModeCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ChangeToModeCommandField value(int id) throws NoSuchFieldError { + for (ChangeToModeCommandField field : ChangeToModeCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class TemperatureControl implements BaseCluster { + public static final long ID = 86L; + public long getID() { + return ID; + } + + public enum Attribute { + TemperatureSetpoint(0L), + MinTemperature(1L), + MaxTemperature(2L), + Step(3L), + CurrentTemperatureLevelIndex(4L), + SupportedTemperatureLevels(5L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + SetTemperature(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum SetTemperatureCommandField {TargetTemperature(0),TargetTemperatureLevel(1),; + private final int id; + SetTemperatureCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetTemperatureCommandField value(int id) throws NoSuchFieldError { + for (SetTemperatureCommandField field : SetTemperatureCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class RefrigeratorAlarm implements BaseCluster { + public static final long ID = 87L; + public long getID() { + return ID; + } + + public enum Attribute { + Mask(0L), + Latch(1L), + State(2L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + Notify(0L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + Reset(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum ResetCommandField {Alarms(0),Mask(1),; + private final int id; + ResetCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ResetCommandField value(int id) throws NoSuchFieldError { + for (ResetCommandField field : ResetCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class AirQuality implements BaseCluster { + public static final long ID = 91L; + public long getID() { + return ID; + } + + public enum Attribute { + AirQuality(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class SmokeCoAlarm implements BaseCluster { + public static final long ID = 92L; + public long getID() { + return ID; + } + + public enum Attribute { + ExpressedState(0L), + SmokeState(1L), + COState(2L), + BatteryAlert(3L), + DeviceMuted(4L), + TestInProgress(5L), + HardwareFaultAlert(6L), + EndOfServiceAlert(7L), + InterconnectSmokeAlarm(8L), + InterconnectCOAlarm(9L), + ContaminationState(10L), + SensitivityLevel(11L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + SmokeAlarm(0L), + COAlarm(1L), + LowBattery(2L), + HardwareFault(3L), + EndOfService(4L), + SelfTestComplete(5L), + AlarmMuted(6L), + MuteEnded(7L), + InterconnectSmokeAlarm(8L), + InterconnectCOAlarm(9L), + AllClear(10L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + SelfTestRequest(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class HepaFilterMonitoring implements BaseCluster { + public static final long ID = 113L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ActivatedCarbonFilterMonitoring implements BaseCluster { + public static final long ID = 114L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class CeramicFilterMonitoring implements BaseCluster { + public static final long ID = 115L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ElectrostaticFilterMonitoring implements BaseCluster { + public static final long ID = 116L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class UvFilterMonitoring implements BaseCluster { + public static final long ID = 117L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class IonizingFilterMonitoring implements BaseCluster { + public static final long ID = 118L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ZeoliteFilterMonitoring implements BaseCluster { + public static final long ID = 119L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class OzoneFilterMonitoring implements BaseCluster { + public static final long ID = 120L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class WaterTankMonitoring implements BaseCluster { + public static final long ID = 121L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class FuelTankMonitoring implements BaseCluster { + public static final long ID = 122L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class InkCartridgeMonitoring implements BaseCluster { + public static final long ID = 123L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class TonerCartridgeMonitoring implements BaseCluster { + public static final long ID = 124L; + public long getID() { + return ID; + } + + public enum Attribute { + Condition(0L), + DegradationDirection(1L), + ChangeIndication(2L), + InPlaceIndicator(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ResetCondition(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class DoorLock implements BaseCluster { + public static final long ID = 257L; + public long getID() { + return ID; + } + + public enum Attribute { + LockState(0L), + LockType(1L), + ActuatorEnabled(2L), + DoorState(3L), + DoorOpenEvents(4L), + DoorClosedEvents(5L), + OpenPeriod(6L), + NumberOfTotalUsersSupported(17L), + NumberOfPINUsersSupported(18L), + NumberOfRFIDUsersSupported(19L), + NumberOfWeekDaySchedulesSupportedPerUser(20L), + NumberOfYearDaySchedulesSupportedPerUser(21L), + NumberOfHolidaySchedulesSupported(22L), + MaxPINCodeLength(23L), + MinPINCodeLength(24L), + MaxRFIDCodeLength(25L), + MinRFIDCodeLength(26L), + CredentialRulesSupport(27L), + NumberOfCredentialsSupportedPerUser(28L), + Language(33L), + LEDSettings(34L), + AutoRelockTime(35L), + SoundVolume(36L), + OperatingMode(37L), + SupportedOperatingModes(38L), + DefaultConfigurationRegister(39L), + EnableLocalProgramming(40L), + EnableOneTouchLocking(41L), + EnableInsideStatusLED(42L), + EnablePrivacyModeButton(43L), + LocalProgrammingFeatures(44L), + WrongCodeEntryLimit(48L), + UserCodeTemporaryDisableTime(49L), + SendPINOverTheAir(50L), + RequirePINforRemoteOperation(51L), + ExpiringUserTimeout(53L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + DoorLockAlarm(0L), + DoorStateChange(1L), + LockOperation(2L), + LockOperationError(3L), + LockUserChange(4L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + LockDoor(0L), + UnlockDoor(1L), + UnlockWithTimeout(3L), + SetWeekDaySchedule(11L), + GetWeekDaySchedule(12L), + ClearWeekDaySchedule(13L), + SetYearDaySchedule(14L), + GetYearDaySchedule(15L), + ClearYearDaySchedule(16L), + SetHolidaySchedule(17L), + GetHolidaySchedule(18L), + ClearHolidaySchedule(19L), + SetUser(26L), + GetUser(27L), + ClearUser(29L), + SetCredential(34L), + GetCredentialStatus(36L), + ClearCredential(38L), + UnboltDoor(39L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum LockDoorCommandField {PINCode(0),; + private final int id; + LockDoorCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static LockDoorCommandField value(int id) throws NoSuchFieldError { + for (LockDoorCommandField field : LockDoorCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum UnlockDoorCommandField {PINCode(0),; + private final int id; + UnlockDoorCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static UnlockDoorCommandField value(int id) throws NoSuchFieldError { + for (UnlockDoorCommandField field : UnlockDoorCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum UnlockWithTimeoutCommandField {Timeout(0),PINCode(1),; + private final int id; + UnlockWithTimeoutCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static UnlockWithTimeoutCommandField value(int id) throws NoSuchFieldError { + for (UnlockWithTimeoutCommandField field : UnlockWithTimeoutCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetWeekDayScheduleCommandField {WeekDayIndex(0),UserIndex(1),DaysMask(2),StartHour(3),StartMinute(4),EndHour(5),EndMinute(6),; + private final int id; + SetWeekDayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetWeekDayScheduleCommandField value(int id) throws NoSuchFieldError { + for (SetWeekDayScheduleCommandField field : SetWeekDayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetWeekDayScheduleCommandField {WeekDayIndex(0),UserIndex(1),; + private final int id; + GetWeekDayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetWeekDayScheduleCommandField value(int id) throws NoSuchFieldError { + for (GetWeekDayScheduleCommandField field : GetWeekDayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ClearWeekDayScheduleCommandField {WeekDayIndex(0),UserIndex(1),; + private final int id; + ClearWeekDayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ClearWeekDayScheduleCommandField value(int id) throws NoSuchFieldError { + for (ClearWeekDayScheduleCommandField field : ClearWeekDayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetYearDayScheduleCommandField {YearDayIndex(0),UserIndex(1),LocalStartTime(2),LocalEndTime(3),; + private final int id; + SetYearDayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetYearDayScheduleCommandField value(int id) throws NoSuchFieldError { + for (SetYearDayScheduleCommandField field : SetYearDayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetYearDayScheduleCommandField {YearDayIndex(0),UserIndex(1),; + private final int id; + GetYearDayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetYearDayScheduleCommandField value(int id) throws NoSuchFieldError { + for (GetYearDayScheduleCommandField field : GetYearDayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ClearYearDayScheduleCommandField {YearDayIndex(0),UserIndex(1),; + private final int id; + ClearYearDayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ClearYearDayScheduleCommandField value(int id) throws NoSuchFieldError { + for (ClearYearDayScheduleCommandField field : ClearYearDayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetHolidayScheduleCommandField {HolidayIndex(0),LocalStartTime(1),LocalEndTime(2),OperatingMode(3),; + private final int id; + SetHolidayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetHolidayScheduleCommandField value(int id) throws NoSuchFieldError { + for (SetHolidayScheduleCommandField field : SetHolidayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetHolidayScheduleCommandField {HolidayIndex(0),; + private final int id; + GetHolidayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetHolidayScheduleCommandField value(int id) throws NoSuchFieldError { + for (GetHolidayScheduleCommandField field : GetHolidayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ClearHolidayScheduleCommandField {HolidayIndex(0),; + private final int id; + ClearHolidayScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ClearHolidayScheduleCommandField value(int id) throws NoSuchFieldError { + for (ClearHolidayScheduleCommandField field : ClearHolidayScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetUserCommandField {OperationType(0),UserIndex(1),UserName(2),UserUniqueID(3),UserStatus(4),UserType(5),CredentialRule(6),; + private final int id; + SetUserCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetUserCommandField value(int id) throws NoSuchFieldError { + for (SetUserCommandField field : SetUserCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetUserCommandField {UserIndex(0),; + private final int id; + GetUserCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetUserCommandField value(int id) throws NoSuchFieldError { + for (GetUserCommandField field : GetUserCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ClearUserCommandField {UserIndex(0),; + private final int id; + ClearUserCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ClearUserCommandField value(int id) throws NoSuchFieldError { + for (ClearUserCommandField field : ClearUserCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetCredentialCommandField {OperationType(0),Credential(1),CredentialData(2),UserIndex(3),UserStatus(4),UserType(5),; + private final int id; + SetCredentialCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetCredentialCommandField value(int id) throws NoSuchFieldError { + for (SetCredentialCommandField field : SetCredentialCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetCredentialStatusCommandField {Credential(0),; + private final int id; + GetCredentialStatusCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetCredentialStatusCommandField value(int id) throws NoSuchFieldError { + for (GetCredentialStatusCommandField field : GetCredentialStatusCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ClearCredentialCommandField {Credential(0),; + private final int id; + ClearCredentialCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ClearCredentialCommandField value(int id) throws NoSuchFieldError { + for (ClearCredentialCommandField field : ClearCredentialCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum UnboltDoorCommandField {PINCode(0),; + private final int id; + UnboltDoorCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static UnboltDoorCommandField value(int id) throws NoSuchFieldError { + for (UnboltDoorCommandField field : UnboltDoorCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class WindowCovering implements BaseCluster { + public static final long ID = 258L; + public long getID() { + return ID; + } + + public enum Attribute { + Type(0L), + PhysicalClosedLimitLift(1L), + PhysicalClosedLimitTilt(2L), + CurrentPositionLift(3L), + CurrentPositionTilt(4L), + NumberOfActuationsLift(5L), + NumberOfActuationsTilt(6L), + ConfigStatus(7L), + CurrentPositionLiftPercentage(8L), + CurrentPositionTiltPercentage(9L), + OperationalStatus(10L), + TargetPositionLiftPercent100ths(11L), + TargetPositionTiltPercent100ths(12L), + EndProductType(13L), + CurrentPositionLiftPercent100ths(14L), + CurrentPositionTiltPercent100ths(15L), + InstalledOpenLimitLift(16L), + InstalledClosedLimitLift(17L), + InstalledOpenLimitTilt(18L), + InstalledClosedLimitTilt(19L), + Mode(23L), + SafetyStatus(26L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + UpOrOpen(0L), + DownOrClose(1L), + StopMotion(2L), + GoToLiftValue(4L), + GoToLiftPercentage(5L), + GoToTiltValue(7L), + GoToTiltPercentage(8L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum GoToLiftValueCommandField {LiftValue(0),; + private final int id; + GoToLiftValueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GoToLiftValueCommandField value(int id) throws NoSuchFieldError { + for (GoToLiftValueCommandField field : GoToLiftValueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GoToLiftPercentageCommandField {LiftPercent100thsValue(0),; + private final int id; + GoToLiftPercentageCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GoToLiftPercentageCommandField value(int id) throws NoSuchFieldError { + for (GoToLiftPercentageCommandField field : GoToLiftPercentageCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GoToTiltValueCommandField {TiltValue(0),; + private final int id; + GoToTiltValueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GoToTiltValueCommandField value(int id) throws NoSuchFieldError { + for (GoToTiltValueCommandField field : GoToTiltValueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GoToTiltPercentageCommandField {TiltPercent100thsValue(0),; + private final int id; + GoToTiltPercentageCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GoToTiltPercentageCommandField value(int id) throws NoSuchFieldError { + for (GoToTiltPercentageCommandField field : GoToTiltPercentageCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class BarrierControl implements BaseCluster { + public static final long ID = 259L; + public long getID() { + return ID; + } + + public enum Attribute { + BarrierMovingState(1L), + BarrierSafetyStatus(2L), + BarrierCapabilities(3L), + BarrierOpenEvents(4L), + BarrierCloseEvents(5L), + BarrierCommandOpenEvents(6L), + BarrierCommandCloseEvents(7L), + BarrierOpenPeriod(8L), + BarrierClosePeriod(9L), + BarrierPosition(10L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + BarrierControlGoToPercent(0L), + BarrierControlStop(1L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum BarrierControlGoToPercentCommandField {PercentOpen(0),; + private final int id; + BarrierControlGoToPercentCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static BarrierControlGoToPercentCommandField value(int id) throws NoSuchFieldError { + for (BarrierControlGoToPercentCommandField field : BarrierControlGoToPercentCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class PumpConfigurationAndControl implements BaseCluster { + public static final long ID = 512L; + public long getID() { + return ID; + } + + public enum Attribute { + MaxPressure(0L), + MaxSpeed(1L), + MaxFlow(2L), + MinConstPressure(3L), + MaxConstPressure(4L), + MinCompPressure(5L), + MaxCompPressure(6L), + MinConstSpeed(7L), + MaxConstSpeed(8L), + MinConstFlow(9L), + MaxConstFlow(10L), + MinConstTemp(11L), + MaxConstTemp(12L), + PumpStatus(16L), + EffectiveOperationMode(17L), + EffectiveControlMode(18L), + Capacity(19L), + Speed(20L), + LifetimeRunningHours(21L), + Power(22L), + LifetimeEnergyConsumed(23L), + OperationMode(32L), + ControlMode(33L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + SupplyVoltageLow(0L), + SupplyVoltageHigh(1L), + PowerMissingPhase(2L), + SystemPressureLow(3L), + SystemPressureHigh(4L), + DryRunning(5L), + MotorTemperatureHigh(6L), + PumpMotorFatalFailure(7L), + ElectronicTemperatureHigh(8L), + PumpBlocked(9L), + SensorFailure(10L), + ElectronicNonFatalFailure(11L), + ElectronicFatalFailure(12L), + GeneralFault(13L), + Leakage(14L), + AirDetection(15L), + TurbineOperation(16L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Thermostat implements BaseCluster { + public static final long ID = 513L; + public long getID() { + return ID; + } + + public enum Attribute { + LocalTemperature(0L), + OutdoorTemperature(1L), + Occupancy(2L), + AbsMinHeatSetpointLimit(3L), + AbsMaxHeatSetpointLimit(4L), + AbsMinCoolSetpointLimit(5L), + AbsMaxCoolSetpointLimit(6L), + PICoolingDemand(7L), + PIHeatingDemand(8L), + HVACSystemTypeConfiguration(9L), + LocalTemperatureCalibration(16L), + OccupiedCoolingSetpoint(17L), + OccupiedHeatingSetpoint(18L), + UnoccupiedCoolingSetpoint(19L), + UnoccupiedHeatingSetpoint(20L), + MinHeatSetpointLimit(21L), + MaxHeatSetpointLimit(22L), + MinCoolSetpointLimit(23L), + MaxCoolSetpointLimit(24L), + MinSetpointDeadBand(25L), + RemoteSensing(26L), + ControlSequenceOfOperation(27L), + SystemMode(28L), + ThermostatRunningMode(30L), + StartOfWeek(32L), + NumberOfWeeklyTransitions(33L), + NumberOfDailyTransitions(34L), + TemperatureSetpointHold(35L), + TemperatureSetpointHoldDuration(36L), + ThermostatProgrammingOperationMode(37L), + ThermostatRunningState(41L), + SetpointChangeSource(48L), + SetpointChangeAmount(49L), + SetpointChangeSourceTimestamp(50L), + OccupiedSetback(52L), + OccupiedSetbackMin(53L), + OccupiedSetbackMax(54L), + UnoccupiedSetback(55L), + UnoccupiedSetbackMin(56L), + UnoccupiedSetbackMax(57L), + EmergencyHeatDelta(58L), + ACType(64L), + ACCapacity(65L), + ACRefrigerantType(66L), + ACCompressorType(67L), + ACErrorCode(68L), + ACLouverPosition(69L), + ACCoilTemperature(70L), + ACCapacityformat(71L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + SetpointRaiseLower(0L), + SetWeeklySchedule(1L), + GetWeeklySchedule(2L), + ClearWeeklySchedule(3L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum SetpointRaiseLowerCommandField {Mode(0),Amount(1),; + private final int id; + SetpointRaiseLowerCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetpointRaiseLowerCommandField value(int id) throws NoSuchFieldError { + for (SetpointRaiseLowerCommandField field : SetpointRaiseLowerCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SetWeeklyScheduleCommandField {NumberOfTransitionsForSequence(0),DayOfWeekForSequence(1),ModeForSequence(2),Transitions(3),; + private final int id; + SetWeeklyScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SetWeeklyScheduleCommandField value(int id) throws NoSuchFieldError { + for (SetWeeklyScheduleCommandField field : SetWeeklyScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum GetWeeklyScheduleCommandField {DaysToReturn(0),ModeToReturn(1),; + private final int id; + GetWeeklyScheduleCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetWeeklyScheduleCommandField value(int id) throws NoSuchFieldError { + for (GetWeeklyScheduleCommandField field : GetWeeklyScheduleCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class FanControl implements BaseCluster { + public static final long ID = 514L; + public long getID() { + return ID; + } + + public enum Attribute { + FanMode(0L), + FanModeSequence(1L), + PercentSetting(2L), + PercentCurrent(3L), + SpeedMax(4L), + SpeedSetting(5L), + SpeedCurrent(6L), + RockSupport(7L), + RockSetting(8L), + WindSupport(9L), + WindSetting(10L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ThermostatUserInterfaceConfiguration implements BaseCluster { + public static final long ID = 516L; + public long getID() { + return ID; + } + + public enum Attribute { + TemperatureDisplayMode(0L), + KeypadLockout(1L), + ScheduleProgrammingVisibility(2L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ColorControl implements BaseCluster { + public static final long ID = 768L; + public long getID() { + return ID; + } + + public enum Attribute { + CurrentHue(0L), + CurrentSaturation(1L), + RemainingTime(2L), + CurrentX(3L), + CurrentY(4L), + DriftCompensation(5L), + CompensationText(6L), + ColorTemperatureMireds(7L), + ColorMode(8L), + Options(15L), + NumberOfPrimaries(16L), + Primary1X(17L), + Primary1Y(18L), + Primary1Intensity(19L), + Primary2X(21L), + Primary2Y(22L), + Primary2Intensity(23L), + Primary3X(25L), + Primary3Y(26L), + Primary3Intensity(27L), + Primary4X(32L), + Primary4Y(33L), + Primary4Intensity(34L), + Primary5X(36L), + Primary5Y(37L), + Primary5Intensity(38L), + Primary6X(40L), + Primary6Y(41L), + Primary6Intensity(42L), + WhitePointX(48L), + WhitePointY(49L), + ColorPointRX(50L), + ColorPointRY(51L), + ColorPointRIntensity(52L), + ColorPointGX(54L), + ColorPointGY(55L), + ColorPointGIntensity(56L), + ColorPointBX(58L), + ColorPointBY(59L), + ColorPointBIntensity(60L), + EnhancedCurrentHue(16384L), + EnhancedColorMode(16385L), + ColorLoopActive(16386L), + ColorLoopDirection(16387L), + ColorLoopTime(16388L), + ColorLoopStartEnhancedHue(16389L), + ColorLoopStoredEnhancedHue(16390L), + ColorCapabilities(16394L), + ColorTempPhysicalMinMireds(16395L), + ColorTempPhysicalMaxMireds(16396L), + CoupleColorTempToLevelMinMireds(16397L), + StartUpColorTemperatureMireds(16400L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + MoveToHue(0L), + MoveHue(1L), + StepHue(2L), + MoveToSaturation(3L), + MoveSaturation(4L), + StepSaturation(5L), + MoveToHueAndSaturation(6L), + MoveToColor(7L), + MoveColor(8L), + StepColor(9L), + MoveToColorTemperature(10L), + EnhancedMoveToHue(64L), + EnhancedMoveHue(65L), + EnhancedStepHue(66L), + EnhancedMoveToHueAndSaturation(67L), + ColorLoopSet(68L), + StopMoveStep(71L), + MoveColorTemperature(75L), + StepColorTemperature(76L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToHueCommandField {Hue(0),Direction(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + MoveToHueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToHueCommandField value(int id) throws NoSuchFieldError { + for (MoveToHueCommandField field : MoveToHueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveHueCommandField {MoveMode(0),Rate(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveHueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveHueCommandField value(int id) throws NoSuchFieldError { + for (MoveHueCommandField field : MoveHueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StepHueCommandField {StepMode(0),StepSize(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + StepHueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StepHueCommandField value(int id) throws NoSuchFieldError { + for (StepHueCommandField field : StepHueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToSaturationCommandField {Saturation(0),TransitionTime(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveToSaturationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToSaturationCommandField value(int id) throws NoSuchFieldError { + for (MoveToSaturationCommandField field : MoveToSaturationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveSaturationCommandField {MoveMode(0),Rate(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveSaturationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveSaturationCommandField value(int id) throws NoSuchFieldError { + for (MoveSaturationCommandField field : MoveSaturationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StepSaturationCommandField {StepMode(0),StepSize(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + StepSaturationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StepSaturationCommandField value(int id) throws NoSuchFieldError { + for (StepSaturationCommandField field : StepSaturationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToHueAndSaturationCommandField {Hue(0),Saturation(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + MoveToHueAndSaturationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToHueAndSaturationCommandField value(int id) throws NoSuchFieldError { + for (MoveToHueAndSaturationCommandField field : MoveToHueAndSaturationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToColorCommandField {ColorX(0),ColorY(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + MoveToColorCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToColorCommandField value(int id) throws NoSuchFieldError { + for (MoveToColorCommandField field : MoveToColorCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveColorCommandField {RateX(0),RateY(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveColorCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveColorCommandField value(int id) throws NoSuchFieldError { + for (MoveColorCommandField field : MoveColorCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StepColorCommandField {StepX(0),StepY(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + StepColorCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StepColorCommandField value(int id) throws NoSuchFieldError { + for (StepColorCommandField field : StepColorCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveToColorTemperatureCommandField {ColorTemperatureMireds(0),TransitionTime(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + MoveToColorTemperatureCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveToColorTemperatureCommandField value(int id) throws NoSuchFieldError { + for (MoveToColorTemperatureCommandField field : MoveToColorTemperatureCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnhancedMoveToHueCommandField {EnhancedHue(0),Direction(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + EnhancedMoveToHueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnhancedMoveToHueCommandField value(int id) throws NoSuchFieldError { + for (EnhancedMoveToHueCommandField field : EnhancedMoveToHueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnhancedMoveHueCommandField {MoveMode(0),Rate(1),OptionsMask(2),OptionsOverride(3),; + private final int id; + EnhancedMoveHueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnhancedMoveHueCommandField value(int id) throws NoSuchFieldError { + for (EnhancedMoveHueCommandField field : EnhancedMoveHueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnhancedStepHueCommandField {StepMode(0),StepSize(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + EnhancedStepHueCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnhancedStepHueCommandField value(int id) throws NoSuchFieldError { + for (EnhancedStepHueCommandField field : EnhancedStepHueCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum EnhancedMoveToHueAndSaturationCommandField {EnhancedHue(0),Saturation(1),TransitionTime(2),OptionsMask(3),OptionsOverride(4),; + private final int id; + EnhancedMoveToHueAndSaturationCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static EnhancedMoveToHueAndSaturationCommandField value(int id) throws NoSuchFieldError { + for (EnhancedMoveToHueAndSaturationCommandField field : EnhancedMoveToHueAndSaturationCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ColorLoopSetCommandField {UpdateFlags(0),Action(1),Direction(2),Time(3),StartHue(4),OptionsMask(5),OptionsOverride(6),; + private final int id; + ColorLoopSetCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ColorLoopSetCommandField value(int id) throws NoSuchFieldError { + for (ColorLoopSetCommandField field : ColorLoopSetCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StopMoveStepCommandField {OptionsMask(0),OptionsOverride(1),; + private final int id; + StopMoveStepCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StopMoveStepCommandField value(int id) throws NoSuchFieldError { + for (StopMoveStepCommandField field : StopMoveStepCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum MoveColorTemperatureCommandField {MoveMode(0),Rate(1),ColorTemperatureMinimumMireds(2),ColorTemperatureMaximumMireds(3),OptionsMask(4),OptionsOverride(5),; + private final int id; + MoveColorTemperatureCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static MoveColorTemperatureCommandField value(int id) throws NoSuchFieldError { + for (MoveColorTemperatureCommandField field : MoveColorTemperatureCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StepColorTemperatureCommandField {StepMode(0),StepSize(1),TransitionTime(2),ColorTemperatureMinimumMireds(3),ColorTemperatureMaximumMireds(4),OptionsMask(5),OptionsOverride(6),; + private final int id; + StepColorTemperatureCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StepColorTemperatureCommandField value(int id) throws NoSuchFieldError { + for (StepColorTemperatureCommandField field : StepColorTemperatureCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class BallastConfiguration implements BaseCluster { + public static final long ID = 769L; + public long getID() { + return ID; + } + + public enum Attribute { + PhysicalMinLevel(0L), + PhysicalMaxLevel(1L), + BallastStatus(2L), + MinLevel(16L), + MaxLevel(17L), + IntrinsicBallastFactor(20L), + BallastFactorAdjustment(21L), + LampQuantity(32L), + LampType(48L), + LampManufacturer(49L), + LampRatedHours(50L), + LampBurnHours(51L), + LampAlarmMode(52L), + LampBurnHoursTripPoint(53L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class IlluminanceMeasurement implements BaseCluster { + public static final long ID = 1024L; + public long getID() { + return ID; + } + + public enum Attribute { + MeasuredValue(0L), + MinMeasuredValue(1L), + MaxMeasuredValue(2L), + Tolerance(3L), + LightSensorType(4L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class TemperatureMeasurement implements BaseCluster { + public static final long ID = 1026L; + public long getID() { + return ID; + } + + public enum Attribute { + MeasuredValue(0L), + MinMeasuredValue(1L), + MaxMeasuredValue(2L), + Tolerance(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class PressureMeasurement implements BaseCluster { + public static final long ID = 1027L; + public long getID() { + return ID; + } + + public enum Attribute { + MeasuredValue(0L), + MinMeasuredValue(1L), + MaxMeasuredValue(2L), + Tolerance(3L), + ScaledValue(16L), + MinScaledValue(17L), + MaxScaledValue(18L), + ScaledTolerance(19L), + Scale(20L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class FlowMeasurement implements BaseCluster { + public static final long ID = 1028L; + public long getID() { + return ID; + } + + public enum Attribute { + MeasuredValue(0L), + MinMeasuredValue(1L), + MaxMeasuredValue(2L), + Tolerance(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class RelativeHumidityMeasurement implements BaseCluster { + public static final long ID = 1029L; + public long getID() { + return ID; + } + + public enum Attribute { + MeasuredValue(0L), + MinMeasuredValue(1L), + MaxMeasuredValue(2L), + Tolerance(3L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class OccupancySensing implements BaseCluster { + public static final long ID = 1030L; + public long getID() { + return ID; + } + + public enum Attribute { + Occupancy(0L), + OccupancySensorType(1L), + OccupancySensorTypeBitmap(2L), + PIROccupiedToUnoccupiedDelay(16L), + PIRUnoccupiedToOccupiedDelay(17L), + PIRUnoccupiedToOccupiedThreshold(18L), + UltrasonicOccupiedToUnoccupiedDelay(32L), + UltrasonicUnoccupiedToOccupiedDelay(33L), + UltrasonicUnoccupiedToOccupiedThreshold(34L), + PhysicalContactOccupiedToUnoccupiedDelay(48L), + PhysicalContactUnoccupiedToOccupiedDelay(49L), + PhysicalContactUnoccupiedToOccupiedThreshold(50L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class WakeOnLan implements BaseCluster { + public static final long ID = 1283L; + public long getID() { + return ID; + } + + public enum Attribute { + MACAddress(0L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class Channel implements BaseCluster { + public static final long ID = 1284L; + public long getID() { + return ID; + } + + public enum Attribute { + ChannelList(0L), + Lineup(1L), + CurrentChannel(2L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + ChangeChannel(0L), + ChangeChannelByNumber(2L), + SkipChannel(3L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum ChangeChannelCommandField {Match(0),; + private final int id; + ChangeChannelCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ChangeChannelCommandField value(int id) throws NoSuchFieldError { + for (ChangeChannelCommandField field : ChangeChannelCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum ChangeChannelByNumberCommandField {MajorNumber(0),MinorNumber(1),; + private final int id; + ChangeChannelByNumberCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static ChangeChannelByNumberCommandField value(int id) throws NoSuchFieldError { + for (ChangeChannelByNumberCommandField field : ChangeChannelByNumberCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SkipChannelCommandField {Count(0),; + private final int id; + SkipChannelCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SkipChannelCommandField value(int id) throws NoSuchFieldError { + for (SkipChannelCommandField field : SkipChannelCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class TargetNavigator implements BaseCluster { + public static final long ID = 1285L; + public long getID() { + return ID; + } + + public enum Attribute { + TargetList(0L), + CurrentTarget(1L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + NavigateTarget(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum NavigateTargetCommandField {Target(0),Data(1),; + private final int id; + NavigateTargetCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static NavigateTargetCommandField value(int id) throws NoSuchFieldError { + for (NavigateTargetCommandField field : NavigateTargetCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class MediaPlayback implements BaseCluster { + public static final long ID = 1286L; + public long getID() { + return ID; + } + + public enum Attribute { + CurrentState(0L), + StartTime(1L), + Duration(2L), + SampledPosition(3L), + PlaybackSpeed(4L), + SeekRangeEnd(5L), + SeekRangeStart(6L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + Play(0L), + Pause(1L), + Stop(2L), + StartOver(3L), + Previous(4L), + Next(5L), + Rewind(6L), + FastForward(7L), + SkipForward(8L), + SkipBackward(9L), + Seek(11L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum SkipForwardCommandField {DeltaPositionMilliseconds(0),; + private final int id; + SkipForwardCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SkipForwardCommandField value(int id) throws NoSuchFieldError { + for (SkipForwardCommandField field : SkipForwardCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SkipBackwardCommandField {DeltaPositionMilliseconds(0),; + private final int id; + SkipBackwardCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SkipBackwardCommandField value(int id) throws NoSuchFieldError { + for (SkipBackwardCommandField field : SkipBackwardCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SeekCommandField {Position(0),; + private final int id; + SeekCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SeekCommandField value(int id) throws NoSuchFieldError { + for (SeekCommandField field : SeekCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class MediaInput implements BaseCluster { + public static final long ID = 1287L; + public long getID() { + return ID; + } + + public enum Attribute { + InputList(0L), + CurrentInput(1L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + SelectInput(0L), + ShowInputStatus(1L), + HideInputStatus(2L), + RenameInput(3L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum SelectInputCommandField {Index(0),; + private final int id; + SelectInputCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SelectInputCommandField value(int id) throws NoSuchFieldError { + for (SelectInputCommandField field : SelectInputCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RenameInputCommandField {Index(0),Name(1),; + private final int id; + RenameInputCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RenameInputCommandField value(int id) throws NoSuchFieldError { + for (RenameInputCommandField field : RenameInputCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class LowPower implements BaseCluster { + public static final long ID = 1288L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + Sleep(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class KeypadInput implements BaseCluster { + public static final long ID = 1289L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + SendKey(0L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum SendKeyCommandField {KeyCode(0),; + private final int id; + SendKeyCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SendKeyCommandField value(int id) throws NoSuchFieldError { + for (SendKeyCommandField field : SendKeyCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ContentLauncher implements BaseCluster { + public static final long ID = 1290L; + public long getID() { + return ID; + } + + public enum Attribute { + AcceptHeader(0L), + SupportedStreamingProtocols(1L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + LaunchContent(0L), + LaunchURL(1L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum LaunchContentCommandField {Search(0),AutoPlay(1),Data(2),; + private final int id; + LaunchContentCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static LaunchContentCommandField value(int id) throws NoSuchFieldError { + for (LaunchContentCommandField field : LaunchContentCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum LaunchURLCommandField {ContentURL(0),DisplayString(1),BrandingInformation(2),; + private final int id; + LaunchURLCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static LaunchURLCommandField value(int id) throws NoSuchFieldError { + for (LaunchURLCommandField field : LaunchURLCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class AudioOutput implements BaseCluster { + public static final long ID = 1291L; + public long getID() { + return ID; + } + + public enum Attribute { + OutputList(0L), + CurrentOutput(1L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + SelectOutput(0L), + RenameOutput(1L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum SelectOutputCommandField {Index(0),; + private final int id; + SelectOutputCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SelectOutputCommandField value(int id) throws NoSuchFieldError { + for (SelectOutputCommandField field : SelectOutputCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum RenameOutputCommandField {Index(0),Name(1),; + private final int id; + RenameOutputCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static RenameOutputCommandField value(int id) throws NoSuchFieldError { + for (RenameOutputCommandField field : RenameOutputCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ApplicationLauncher implements BaseCluster { + public static final long ID = 1292L; + public long getID() { + return ID; + } + + public enum Attribute { + CatalogList(0L), + CurrentApp(1L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + LaunchApp(0L), + StopApp(1L), + HideApp(2L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum LaunchAppCommandField {Application(0),Data(1),; + private final int id; + LaunchAppCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static LaunchAppCommandField value(int id) throws NoSuchFieldError { + for (LaunchAppCommandField field : LaunchAppCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum StopAppCommandField {Application(0),; + private final int id; + StopAppCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static StopAppCommandField value(int id) throws NoSuchFieldError { + for (StopAppCommandField field : StopAppCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum HideAppCommandField {Application(0),; + private final int id; + HideAppCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static HideAppCommandField value(int id) throws NoSuchFieldError { + for (HideAppCommandField field : HideAppCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ApplicationBasic implements BaseCluster { + public static final long ID = 1293L; + public long getID() { + return ID; + } + + public enum Attribute { + VendorName(0L), + VendorID(1L), + ApplicationName(2L), + ProductID(3L), + Application(4L), + Status(5L), + ApplicationVersion(6L), + AllowedVendorList(7L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command {; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class AccountLogin implements BaseCluster { + public static final long ID = 1294L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + GetSetupPIN(0L), + Login(2L), + Logout(3L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum GetSetupPINCommandField {TempAccountIdentifier(0),; + private final int id; + GetSetupPINCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetSetupPINCommandField value(int id) throws NoSuchFieldError { + for (GetSetupPINCommandField field : GetSetupPINCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum LoginCommandField {TempAccountIdentifier(0),SetupPIN(1),; + private final int id; + LoginCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static LoginCommandField value(int id) throws NoSuchFieldError { + for (LoginCommandField field : LoginCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class ElectricalMeasurement implements BaseCluster { + public static final long ID = 2820L; + public long getID() { + return ID; + } + + public enum Attribute { + MeasurementType(0L), + DcVoltage(256L), + DcVoltageMin(257L), + DcVoltageMax(258L), + DcCurrent(259L), + DcCurrentMin(260L), + DcCurrentMax(261L), + DcPower(262L), + DcPowerMin(263L), + DcPowerMax(264L), + DcVoltageMultiplier(512L), + DcVoltageDivisor(513L), + DcCurrentMultiplier(514L), + DcCurrentDivisor(515L), + DcPowerMultiplier(516L), + DcPowerDivisor(517L), + AcFrequency(768L), + AcFrequencyMin(769L), + AcFrequencyMax(770L), + NeutralCurrent(771L), + TotalActivePower(772L), + TotalReactivePower(773L), + TotalApparentPower(774L), + Measured1stHarmonicCurrent(775L), + Measured3rdHarmonicCurrent(776L), + Measured5thHarmonicCurrent(777L), + Measured7thHarmonicCurrent(778L), + Measured9thHarmonicCurrent(779L), + Measured11thHarmonicCurrent(780L), + MeasuredPhase1stHarmonicCurrent(781L), + MeasuredPhase3rdHarmonicCurrent(782L), + MeasuredPhase5thHarmonicCurrent(783L), + MeasuredPhase7thHarmonicCurrent(784L), + MeasuredPhase9thHarmonicCurrent(785L), + MeasuredPhase11thHarmonicCurrent(786L), + AcFrequencyMultiplier(1024L), + AcFrequencyDivisor(1025L), + PowerMultiplier(1026L), + PowerDivisor(1027L), + HarmonicCurrentMultiplier(1028L), + PhaseHarmonicCurrentMultiplier(1029L), + InstantaneousVoltage(1280L), + InstantaneousLineCurrent(1281L), + InstantaneousActiveCurrent(1282L), + InstantaneousReactiveCurrent(1283L), + InstantaneousPower(1284L), + RmsVoltage(1285L), + RmsVoltageMin(1286L), + RmsVoltageMax(1287L), + RmsCurrent(1288L), + RmsCurrentMin(1289L), + RmsCurrentMax(1290L), + ActivePower(1291L), + ActivePowerMin(1292L), + ActivePowerMax(1293L), + ReactivePower(1294L), + ApparentPower(1295L), + PowerFactor(1296L), + AverageRmsVoltageMeasurementPeriod(1297L), + AverageRmsUnderVoltageCounter(1299L), + RmsExtremeOverVoltagePeriod(1300L), + RmsExtremeUnderVoltagePeriod(1301L), + RmsVoltageSagPeriod(1302L), + RmsVoltageSwellPeriod(1303L), + AcVoltageMultiplier(1536L), + AcVoltageDivisor(1537L), + AcCurrentMultiplier(1538L), + AcCurrentDivisor(1539L), + AcPowerMultiplier(1540L), + AcPowerDivisor(1541L), + OverloadAlarmsMask(1792L), + VoltageOverload(1793L), + CurrentOverload(1794L), + AcOverloadAlarmsMask(2048L), + AcVoltageOverload(2049L), + AcCurrentOverload(2050L), + AcActivePowerOverload(2051L), + AcReactivePowerOverload(2052L), + AverageRmsOverVoltage(2053L), + AverageRmsUnderVoltage(2054L), + RmsExtremeOverVoltage(2055L), + RmsExtremeUnderVoltage(2056L), + RmsVoltageSag(2057L), + RmsVoltageSwell(2058L), + LineCurrentPhaseB(2305L), + ActiveCurrentPhaseB(2306L), + ReactiveCurrentPhaseB(2307L), + RmsVoltagePhaseB(2309L), + RmsVoltageMinPhaseB(2310L), + RmsVoltageMaxPhaseB(2311L), + RmsCurrentPhaseB(2312L), + RmsCurrentMinPhaseB(2313L), + RmsCurrentMaxPhaseB(2314L), + ActivePowerPhaseB(2315L), + ActivePowerMinPhaseB(2316L), + ActivePowerMaxPhaseB(2317L), + ReactivePowerPhaseB(2318L), + ApparentPowerPhaseB(2319L), + PowerFactorPhaseB(2320L), + AverageRmsVoltageMeasurementPeriodPhaseB(2321L), + AverageRmsOverVoltageCounterPhaseB(2322L), + AverageRmsUnderVoltageCounterPhaseB(2323L), + RmsExtremeOverVoltagePeriodPhaseB(2324L), + RmsExtremeUnderVoltagePeriodPhaseB(2325L), + RmsVoltageSagPeriodPhaseB(2326L), + RmsVoltageSwellPeriodPhaseB(2327L), + LineCurrentPhaseC(2561L), + ActiveCurrentPhaseC(2562L), + ReactiveCurrentPhaseC(2563L), + RmsVoltagePhaseC(2565L), + RmsVoltageMinPhaseC(2566L), + RmsVoltageMaxPhaseC(2567L), + RmsCurrentPhaseC(2568L), + RmsCurrentMinPhaseC(2569L), + RmsCurrentMaxPhaseC(2570L), + ActivePowerPhaseC(2571L), + ActivePowerMinPhaseC(2572L), + ActivePowerMaxPhaseC(2573L), + ReactivePowerPhaseC(2574L), + ApparentPowerPhaseC(2575L), + PowerFactorPhaseC(2576L), + AverageRmsVoltageMeasurementPeriodPhaseC(2577L), + AverageRmsOverVoltageCounterPhaseC(2578L), + AverageRmsUnderVoltageCounterPhaseC(2579L), + RmsExtremeOverVoltagePeriodPhaseC(2580L), + RmsExtremeUnderVoltagePeriodPhaseC(2581L), + RmsVoltageSagPeriodPhaseC(2582L), + RmsVoltageSwellPeriodPhaseC(2583L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + GetProfileInfoCommand(0L), + GetMeasurementProfileCommand(1L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum GetMeasurementProfileCommandCommandField {AttributeId(0),StartTime(1),NumberOfIntervals(2),; + private final int id; + GetMeasurementProfileCommandCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static GetMeasurementProfileCommandCommandField value(int id) throws NoSuchFieldError { + for (GetMeasurementProfileCommandCommandField field : GetMeasurementProfileCommandCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class UnitTesting implements BaseCluster { + public static final long ID = 4294048773L; + public long getID() { + return ID; + } + + public enum Attribute { + Boolean(0L), + Bitmap8(1L), + Bitmap16(2L), + Bitmap32(3L), + Bitmap64(4L), + Int8u(5L), + Int16u(6L), + Int24u(7L), + Int32u(8L), + Int40u(9L), + Int48u(10L), + Int56u(11L), + Int64u(12L), + Int8s(13L), + Int16s(14L), + Int24s(15L), + Int32s(16L), + Int40s(17L), + Int48s(18L), + Int56s(19L), + Int64s(20L), + Enum8(21L), + Enum16(22L), + FloatSingle(23L), + FloatDouble(24L), + OctetString(25L), + ListInt8u(26L), + ListOctetString(27L), + ListStructOctetString(28L), + LongOctetString(29L), + CharString(30L), + LongCharString(31L), + EpochUs(32L), + EpochS(33L), + VendorId(34L), + ListNullablesAndOptionalsStruct(35L), + EnumAttr(36L), + StructAttr(37L), + RangeRestrictedInt8u(38L), + RangeRestrictedInt8s(39L), + RangeRestrictedInt16u(40L), + RangeRestrictedInt16s(41L), + ListLongOctetString(42L), + ListFabricScoped(43L), + TimedWriteBoolean(48L), + GeneralErrorBoolean(49L), + ClusterErrorBoolean(50L), + Unsupported(255L), + NullableBoolean(16384L), + NullableBitmap8(16385L), + NullableBitmap16(16386L), + NullableBitmap32(16387L), + NullableBitmap64(16388L), + NullableInt8u(16389L), + NullableInt16u(16390L), + NullableInt24u(16391L), + NullableInt32u(16392L), + NullableInt40u(16393L), + NullableInt48u(16394L), + NullableInt56u(16395L), + NullableInt64u(16396L), + NullableInt8s(16397L), + NullableInt16s(16398L), + NullableInt24s(16399L), + NullableInt32s(16400L), + NullableInt40s(16401L), + NullableInt48s(16402L), + NullableInt56s(16403L), + NullableInt64s(16404L), + NullableEnum8(16405L), + NullableEnum16(16406L), + NullableFloatSingle(16407L), + NullableFloatDouble(16408L), + NullableOctetString(16409L), + NullableCharString(16414L), + NullableEnumAttr(16420L), + NullableStruct(16421L), + NullableRangeRestrictedInt8u(16422L), + NullableRangeRestrictedInt8s(16423L), + NullableRangeRestrictedInt16u(16424L), + NullableRangeRestrictedInt16s(16425L), + WriteOnlyInt8u(16426L), + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event { + TestEvent(1L), + TestFabricScopedEvent(2L),; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + Test(0L), + TestNotHandled(1L), + TestSpecific(2L), + TestUnknownCommand(3L), + TestAddArguments(4L), + TestSimpleArgumentRequest(5L), + TestStructArrayArgumentRequest(6L), + TestStructArgumentRequest(7L), + TestNestedStructArgumentRequest(8L), + TestListStructArgumentRequest(9L), + TestListInt8UArgumentRequest(10L), + TestNestedStructListArgumentRequest(11L), + TestListNestedStructListArgumentRequest(12L), + TestListInt8UReverseRequest(13L), + TestEnumsRequest(14L), + TestNullableOptionalRequest(15L), + TestComplexNullableOptionalRequest(16L), + SimpleStructEchoRequest(17L), + TimedInvokeRequest(18L), + TestSimpleOptionalArgumentRequest(19L), + TestEmitTestEventRequest(20L), + TestEmitTestFabricScopedEventRequest(21L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum TestAddArgumentsCommandField {Arg1(0),Arg2(1),; + private final int id; + TestAddArgumentsCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestAddArgumentsCommandField value(int id) throws NoSuchFieldError { + for (TestAddArgumentsCommandField field : TestAddArgumentsCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestSimpleArgumentRequestCommandField {Arg1(0),; + private final int id; + TestSimpleArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestSimpleArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestSimpleArgumentRequestCommandField field : TestSimpleArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestStructArrayArgumentRequestCommandField {Arg1(0),Arg2(1),Arg3(2),Arg4(3),Arg5(4),Arg6(5),; + private final int id; + TestStructArrayArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestStructArrayArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestStructArrayArgumentRequestCommandField field : TestStructArrayArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestStructArgumentRequestCommandField {Arg1(0),; + private final int id; + TestStructArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestStructArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestStructArgumentRequestCommandField field : TestStructArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestNestedStructArgumentRequestCommandField {Arg1(0),; + private final int id; + TestNestedStructArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestNestedStructArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestNestedStructArgumentRequestCommandField field : TestNestedStructArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestListStructArgumentRequestCommandField {Arg1(0),; + private final int id; + TestListStructArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestListStructArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestListStructArgumentRequestCommandField field : TestListStructArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestListInt8UArgumentRequestCommandField {Arg1(0),; + private final int id; + TestListInt8UArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestListInt8UArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestListInt8UArgumentRequestCommandField field : TestListInt8UArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestNestedStructListArgumentRequestCommandField {Arg1(0),; + private final int id; + TestNestedStructListArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestNestedStructListArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestNestedStructListArgumentRequestCommandField field : TestNestedStructListArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestListNestedStructListArgumentRequestCommandField {Arg1(0),; + private final int id; + TestListNestedStructListArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestListNestedStructListArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestListNestedStructListArgumentRequestCommandField field : TestListNestedStructListArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestListInt8UReverseRequestCommandField {Arg1(0),; + private final int id; + TestListInt8UReverseRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestListInt8UReverseRequestCommandField value(int id) throws NoSuchFieldError { + for (TestListInt8UReverseRequestCommandField field : TestListInt8UReverseRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestEnumsRequestCommandField {Arg1(0),Arg2(1),; + private final int id; + TestEnumsRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestEnumsRequestCommandField value(int id) throws NoSuchFieldError { + for (TestEnumsRequestCommandField field : TestEnumsRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestNullableOptionalRequestCommandField {Arg1(0),; + private final int id; + TestNullableOptionalRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestNullableOptionalRequestCommandField value(int id) throws NoSuchFieldError { + for (TestNullableOptionalRequestCommandField field : TestNullableOptionalRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestComplexNullableOptionalRequestCommandField {NullableInt(0),OptionalInt(1),NullableOptionalInt(2),NullableString(3),OptionalString(4),NullableOptionalString(5),NullableStruct(6),OptionalStruct(7),NullableOptionalStruct(8),NullableList(9),OptionalList(10),NullableOptionalList(11),; + private final int id; + TestComplexNullableOptionalRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestComplexNullableOptionalRequestCommandField value(int id) throws NoSuchFieldError { + for (TestComplexNullableOptionalRequestCommandField field : TestComplexNullableOptionalRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum SimpleStructEchoRequestCommandField {Arg1(0),; + private final int id; + SimpleStructEchoRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SimpleStructEchoRequestCommandField value(int id) throws NoSuchFieldError { + for (SimpleStructEchoRequestCommandField field : SimpleStructEchoRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestSimpleOptionalArgumentRequestCommandField {Arg1(0),; + private final int id; + TestSimpleOptionalArgumentRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestSimpleOptionalArgumentRequestCommandField value(int id) throws NoSuchFieldError { + for (TestSimpleOptionalArgumentRequestCommandField field : TestSimpleOptionalArgumentRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestEmitTestEventRequestCommandField {Arg1(0),Arg2(1),Arg3(2),; + private final int id; + TestEmitTestEventRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestEmitTestEventRequestCommandField value(int id) throws NoSuchFieldError { + for (TestEmitTestEventRequestCommandField field : TestEmitTestEventRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum TestEmitTestFabricScopedEventRequestCommandField {Arg1(0),; + private final int id; + TestEmitTestFabricScopedEventRequestCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static TestEmitTestFabricScopedEventRequestCommandField value(int id) throws NoSuchFieldError { + for (TestEmitTestFabricScopedEventRequestCommandField field : TestEmitTestFabricScopedEventRequestCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + } + public static class FaultInjection implements BaseCluster { + public static final long ID = 4294048774L; + public long getID() { + return ID; + } + + public enum Attribute { + GeneratedCommandList(65528L), + AcceptedCommandList(65529L), + EventList(65530L), + AttributeList(65531L), + FeatureMap(65532L), + ClusterRevision(65533L),; + private final long id; + Attribute(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Attribute value(long id) throws NoSuchFieldError { + for (Attribute attribute : Attribute.values()) { + if (attribute.getID() == id) { + return attribute; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Event {; + private final long id; + Event(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Event value(long id) throws NoSuchFieldError { + for (Event event : Event.values()) { + if (event.getID() == id) { + return event; + } + } + throw new NoSuchFieldError(); + } + } + + public enum Command { + FailAtFault(0L), + FailRandomlyAtFault(1L),; + private final long id; + Command(long id) { + this.id = id; + } + + public long getID() { + return id; + } + + public static Command value(long id) throws NoSuchFieldError { + for (Command command : Command.values()) { + if (command.getID() == id) { + return command; + } + } + throw new NoSuchFieldError(); + } + }public enum FailAtFaultCommandField {Type(0),Id(1),NumCallsToSkip(2),NumCallsToFail(3),TakeMutex(4),; + private final int id; + FailAtFaultCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static FailAtFaultCommandField value(int id) throws NoSuchFieldError { + for (FailAtFaultCommandField field : FailAtFaultCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }public enum FailRandomlyAtFaultCommandField {Type(0),Id(1),Percentage(2),; + private final int id; + FailRandomlyAtFaultCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static FailRandomlyAtFaultCommandField value(int id) throws NoSuchFieldError { + for (FailRandomlyAtFaultCommandField field : FailRandomlyAtFaultCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } + }@Override + public String getAttributeName(long id) throws NoSuchFieldError { + return Attribute.value(id).toString(); + } + + @Override + public String getEventName(long id) throws NoSuchFieldError { + return Event.value(id).toString(); + } + + @Override + public String getCommandName(long id) throws NoSuchFieldError { + return Command.value(id).toString(); + } + + @Override + public long getAttributeID(String name) throws IllegalArgumentException { + return Attribute.valueOf(name).getID(); + } + + @Override + public long getEventID(String name) throws IllegalArgumentException { + return Event.valueOf(name).getID(); + } + + @Override + public long getCommandID(String name) throws IllegalArgumentException { + return Command.valueOf(name).getID(); + } + }} diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java index 4699afda59400e..7269e399a7fada 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java @@ -24,19863 +24,15488 @@ public class ClusterReadMapping { - private static Map readIdentifyInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readIdentifyIdentifyTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyIdentifyTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readIdentifyTimeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIdentifyIdentifyTimeCommandParams); - result.put("readIdentifyTimeAttribute", readIdentifyIdentifyTimeAttributeInteractionInfo); - Map readIdentifyIdentifyTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyIdentifyTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readIdentifyTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIdentifyIdentifyTypeCommandParams); - result.put("readIdentifyTypeAttribute", readIdentifyIdentifyTypeAttributeInteractionInfo); - Map readIdentifyGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.IdentifyCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIdentifyClusterGeneratedCommandListAttributeCallback(), - readIdentifyGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readIdentifyGeneratedCommandListAttributeInteractionInfo); - Map readIdentifyAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.IdentifyCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIdentifyClusterAcceptedCommandListAttributeCallback(), - readIdentifyAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readIdentifyAcceptedCommandListAttributeInteractionInfo); - Map readIdentifyEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readEventListAttribute( - (ChipClusters.IdentifyCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIdentifyClusterEventListAttributeCallback(), - readIdentifyEventListCommandParams); - result.put("readEventListAttribute", readIdentifyEventListAttributeInteractionInfo); - Map readIdentifyAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.IdentifyCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIdentifyClusterAttributeListAttributeCallback(), - readIdentifyAttributeListCommandParams); - result.put("readAttributeListAttribute", readIdentifyAttributeListAttributeInteractionInfo); - Map readIdentifyFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readIdentifyFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readIdentifyFeatureMapAttributeInteractionInfo); - Map readIdentifyClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readIdentifyClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIdentifyClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readIdentifyClusterRevisionAttributeInteractionInfo); - return result; - } - - private static Map readGroupsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readGroupsNameSupportCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupsNameSupportAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupsCluster) cluster) - .readNameSupportAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGroupsNameSupportCommandParams); - result.put("readNameSupportAttribute", readGroupsNameSupportAttributeInteractionInfo); - Map readGroupsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.GroupsCluster.GeneratedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGroupsClusterGeneratedCommandListAttributeCallback(), - readGroupsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readGroupsGeneratedCommandListAttributeInteractionInfo); - Map readGroupsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.GroupsCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedGroupsClusterAcceptedCommandListAttributeCallback(), - readGroupsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", readGroupsAcceptedCommandListAttributeInteractionInfo); - Map readGroupsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupsCluster) cluster) - .readEventListAttribute( - (ChipClusters.GroupsCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedGroupsClusterEventListAttributeCallback(), - readGroupsEventListCommandParams); - result.put("readEventListAttribute", readGroupsEventListAttributeInteractionInfo); - Map readGroupsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.GroupsCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedGroupsClusterAttributeListAttributeCallback(), - readGroupsAttributeListCommandParams); - result.put("readAttributeListAttribute", readGroupsAttributeListAttributeInteractionInfo); - Map readGroupsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readGroupsFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readGroupsFeatureMapAttributeInteractionInfo); - Map readGroupsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGroupsClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readGroupsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readScenesInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readScenesSceneCountCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesSceneCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readSceneCountAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readScenesSceneCountCommandParams); - result.put("readSceneCountAttribute", readScenesSceneCountAttributeInteractionInfo); - Map readScenesCurrentSceneCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesCurrentSceneAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readCurrentSceneAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readScenesCurrentSceneCommandParams); - result.put("readCurrentSceneAttribute", readScenesCurrentSceneAttributeInteractionInfo); - Map readScenesCurrentGroupCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesCurrentGroupAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readCurrentGroupAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readScenesCurrentGroupCommandParams); - result.put("readCurrentGroupAttribute", readScenesCurrentGroupAttributeInteractionInfo); - Map readScenesSceneValidCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesSceneValidAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readSceneValidAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readScenesSceneValidCommandParams); - result.put("readSceneValidAttribute", readScenesSceneValidAttributeInteractionInfo); - Map readScenesNameSupportCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesNameSupportAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readNameSupportAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readScenesNameSupportCommandParams); - result.put("readNameSupportAttribute", readScenesNameSupportAttributeInteractionInfo); - Map readScenesLastConfiguredByCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesLastConfiguredByAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readLastConfiguredByAttribute( - (ChipClusters.ScenesCluster.LastConfiguredByAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedScenesClusterLastConfiguredByAttributeCallback(), - readScenesLastConfiguredByCommandParams); - result.put("readLastConfiguredByAttribute", readScenesLastConfiguredByAttributeInteractionInfo); - Map readScenesGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ScenesCluster.GeneratedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedScenesClusterGeneratedCommandListAttributeCallback(), - readScenesGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readScenesGeneratedCommandListAttributeInteractionInfo); - Map readScenesAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ScenesCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedScenesClusterAcceptedCommandListAttributeCallback(), - readScenesAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", readScenesAcceptedCommandListAttributeInteractionInfo); - Map readScenesEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readEventListAttribute( - (ChipClusters.ScenesCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedScenesClusterEventListAttributeCallback(), - readScenesEventListCommandParams); - result.put("readEventListAttribute", readScenesEventListAttributeInteractionInfo); - Map readScenesAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ScenesCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedScenesClusterAttributeListAttributeCallback(), - readScenesAttributeListCommandParams); - result.put("readAttributeListAttribute", readScenesAttributeListAttributeInteractionInfo); - Map readScenesFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readScenesFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readScenesFeatureMapAttributeInteractionInfo); - Map readScenesClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readScenesClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ScenesCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readScenesClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readScenesClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readOnOffInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readOnOffOnOffCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffOnOffAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readOnOffAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readOnOffOnOffCommandParams); - result.put("readOnOffAttribute", readOnOffOnOffAttributeInteractionInfo); - Map readOnOffGlobalSceneControlCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffGlobalSceneControlAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readGlobalSceneControlAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readOnOffGlobalSceneControlCommandParams); - result.put( - "readGlobalSceneControlAttribute", readOnOffGlobalSceneControlAttributeInteractionInfo); - Map readOnOffOnTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffOnTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readOnTimeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOnOffOnTimeCommandParams); - result.put("readOnTimeAttribute", readOnOffOnTimeAttributeInteractionInfo); - Map readOnOffOffWaitTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffOffWaitTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readOffWaitTimeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOnOffOffWaitTimeCommandParams); - result.put("readOffWaitTimeAttribute", readOnOffOffWaitTimeAttributeInteractionInfo); - Map readOnOffStartUpOnOffCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffStartUpOnOffAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readStartUpOnOffAttribute( - (ChipClusters.OnOffCluster.StartUpOnOffAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedOnOffClusterStartUpOnOffAttributeCallback(), - readOnOffStartUpOnOffCommandParams); - result.put("readStartUpOnOffAttribute", readOnOffStartUpOnOffAttributeInteractionInfo); - Map readOnOffGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.OnOffCluster.GeneratedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedOnOffClusterGeneratedCommandListAttributeCallback(), - readOnOffGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", readOnOffGeneratedCommandListAttributeInteractionInfo); - Map readOnOffAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.OnOffCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedOnOffClusterAcceptedCommandListAttributeCallback(), - readOnOffAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", readOnOffAcceptedCommandListAttributeInteractionInfo); - Map readOnOffEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readEventListAttribute( - (ChipClusters.OnOffCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedOnOffClusterEventListAttributeCallback(), - readOnOffEventListCommandParams); - result.put("readEventListAttribute", readOnOffEventListAttributeInteractionInfo); - Map readOnOffAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.OnOffCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedOnOffClusterAttributeListAttributeCallback(), - readOnOffAttributeListCommandParams); - result.put("readAttributeListAttribute", readOnOffAttributeListAttributeInteractionInfo); - Map readOnOffFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readOnOffFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readOnOffFeatureMapAttributeInteractionInfo); - Map readOnOffClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOnOffClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readOnOffClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readOnOffSwitchConfigurationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readOnOffSwitchConfigurationSwitchTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationSwitchTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readSwitchTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOnOffSwitchConfigurationSwitchTypeCommandParams); - result.put( - "readSwitchTypeAttribute", readOnOffSwitchConfigurationSwitchTypeAttributeInteractionInfo); - Map readOnOffSwitchConfigurationSwitchActionsCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readSwitchActionsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOnOffSwitchConfigurationSwitchActionsCommandParams); - result.put( - "readSwitchActionsAttribute", - readOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo); - Map - readOnOffSwitchConfigurationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.OnOffSwitchConfigurationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOnOffSwitchConfigurationClusterGeneratedCommandListAttributeCallback(), - readOnOffSwitchConfigurationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readOnOffSwitchConfigurationGeneratedCommandListAttributeInteractionInfo); - Map readOnOffSwitchConfigurationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.OnOffSwitchConfigurationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOnOffSwitchConfigurationClusterAcceptedCommandListAttributeCallback(), - readOnOffSwitchConfigurationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readOnOffSwitchConfigurationAcceptedCommandListAttributeInteractionInfo); - Map readOnOffSwitchConfigurationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readEventListAttribute( - (ChipClusters.OnOffSwitchConfigurationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOnOffSwitchConfigurationClusterEventListAttributeCallback(), - readOnOffSwitchConfigurationEventListCommandParams); - result.put( - "readEventListAttribute", readOnOffSwitchConfigurationEventListAttributeInteractionInfo); - Map readOnOffSwitchConfigurationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.OnOffSwitchConfigurationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOnOffSwitchConfigurationClusterAttributeListAttributeCallback(), - readOnOffSwitchConfigurationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readOnOffSwitchConfigurationAttributeListAttributeInteractionInfo); - Map readOnOffSwitchConfigurationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readOnOffSwitchConfigurationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readOnOffSwitchConfigurationFeatureMapAttributeInteractionInfo); - Map readOnOffSwitchConfigurationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readOnOffSwitchConfigurationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOnOffSwitchConfigurationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readOnOffSwitchConfigurationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readLevelControlInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readLevelControlCurrentLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlCurrentLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readCurrentLevelAttribute( - (ChipClusters.LevelControlCluster.CurrentLevelAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedLevelControlClusterCurrentLevelAttributeCallback(), - readLevelControlCurrentLevelCommandParams); - result.put("readCurrentLevelAttribute", readLevelControlCurrentLevelAttributeInteractionInfo); - Map readLevelControlRemainingTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlRemainingTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readRemainingTimeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlRemainingTimeCommandParams); - result.put("readRemainingTimeAttribute", readLevelControlRemainingTimeAttributeInteractionInfo); - Map readLevelControlMinLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlMinLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readMinLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlMinLevelCommandParams); - result.put("readMinLevelAttribute", readLevelControlMinLevelAttributeInteractionInfo); - Map readLevelControlMaxLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlMaxLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readMaxLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlMaxLevelCommandParams); - result.put("readMaxLevelAttribute", readLevelControlMaxLevelAttributeInteractionInfo); - Map readLevelControlCurrentFrequencyCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlCurrentFrequencyAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readCurrentFrequencyAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlCurrentFrequencyCommandParams); - result.put( - "readCurrentFrequencyAttribute", readLevelControlCurrentFrequencyAttributeInteractionInfo); - Map readLevelControlMinFrequencyCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlMinFrequencyAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readMinFrequencyAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlMinFrequencyCommandParams); - result.put("readMinFrequencyAttribute", readLevelControlMinFrequencyAttributeInteractionInfo); - Map readLevelControlMaxFrequencyCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlMaxFrequencyAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readMaxFrequencyAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlMaxFrequencyCommandParams); - result.put("readMaxFrequencyAttribute", readLevelControlMaxFrequencyAttributeInteractionInfo); - Map readLevelControlOptionsCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlOptionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readOptionsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlOptionsCommandParams); - result.put("readOptionsAttribute", readLevelControlOptionsAttributeInteractionInfo); - Map readLevelControlOnOffTransitionTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlOnOffTransitionTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readOnOffTransitionTimeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlOnOffTransitionTimeCommandParams); - result.put( - "readOnOffTransitionTimeAttribute", - readLevelControlOnOffTransitionTimeAttributeInteractionInfo); - Map readLevelControlOnLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlOnLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readOnLevelAttribute( - (ChipClusters.LevelControlCluster.OnLevelAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLevelControlClusterOnLevelAttributeCallback(), - readLevelControlOnLevelCommandParams); - result.put("readOnLevelAttribute", readLevelControlOnLevelAttributeInteractionInfo); - Map readLevelControlOnTransitionTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlOnTransitionTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readOnTransitionTimeAttribute( - (ChipClusters.LevelControlCluster.OnTransitionTimeAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLevelControlClusterOnTransitionTimeAttributeCallback(), - readLevelControlOnTransitionTimeCommandParams); - result.put( - "readOnTransitionTimeAttribute", readLevelControlOnTransitionTimeAttributeInteractionInfo); - Map readLevelControlOffTransitionTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlOffTransitionTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readOffTransitionTimeAttribute( - (ChipClusters.LevelControlCluster.OffTransitionTimeAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLevelControlClusterOffTransitionTimeAttributeCallback(), - readLevelControlOffTransitionTimeCommandParams); - result.put( - "readOffTransitionTimeAttribute", - readLevelControlOffTransitionTimeAttributeInteractionInfo); - Map readLevelControlDefaultMoveRateCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlDefaultMoveRateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readDefaultMoveRateAttribute( - (ChipClusters.LevelControlCluster.DefaultMoveRateAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLevelControlClusterDefaultMoveRateAttributeCallback(), - readLevelControlDefaultMoveRateCommandParams); - result.put( - "readDefaultMoveRateAttribute", readLevelControlDefaultMoveRateAttributeInteractionInfo); - Map readLevelControlStartUpCurrentLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlStartUpCurrentLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readStartUpCurrentLevelAttribute( - (ChipClusters.LevelControlCluster.StartUpCurrentLevelAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLevelControlClusterStartUpCurrentLevelAttributeCallback(), - readLevelControlStartUpCurrentLevelCommandParams); - result.put( - "readStartUpCurrentLevelAttribute", - readLevelControlStartUpCurrentLevelAttributeInteractionInfo); - Map readLevelControlGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.LevelControlCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLevelControlClusterGeneratedCommandListAttributeCallback(), - readLevelControlGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readLevelControlGeneratedCommandListAttributeInteractionInfo); - Map readLevelControlAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.LevelControlCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLevelControlClusterAcceptedCommandListAttributeCallback(), - readLevelControlAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readLevelControlAcceptedCommandListAttributeInteractionInfo); - Map readLevelControlEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readEventListAttribute( - (ChipClusters.LevelControlCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLevelControlClusterEventListAttributeCallback(), - readLevelControlEventListCommandParams); - result.put("readEventListAttribute", readLevelControlEventListAttributeInteractionInfo); - Map readLevelControlAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.LevelControlCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedLevelControlClusterAttributeListAttributeCallback(), - readLevelControlAttributeListCommandParams); - result.put("readAttributeListAttribute", readLevelControlAttributeListAttributeInteractionInfo); - Map readLevelControlFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readLevelControlFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readLevelControlFeatureMapAttributeInteractionInfo); - Map readLevelControlClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readLevelControlClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLevelControlClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readLevelControlClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readBinaryInputBasicInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readBinaryInputBasicActiveTextCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicActiveTextAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readActiveTextAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBinaryInputBasicActiveTextCommandParams); - result.put("readActiveTextAttribute", readBinaryInputBasicActiveTextAttributeInteractionInfo); - Map readBinaryInputBasicDescriptionCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicDescriptionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readDescriptionAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBinaryInputBasicDescriptionCommandParams); - result.put("readDescriptionAttribute", readBinaryInputBasicDescriptionAttributeInteractionInfo); - Map readBinaryInputBasicInactiveTextCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicInactiveTextAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readInactiveTextAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBinaryInputBasicInactiveTextCommandParams); - result.put( - "readInactiveTextAttribute", readBinaryInputBasicInactiveTextAttributeInteractionInfo); - Map readBinaryInputBasicOutOfServiceCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicOutOfServiceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readOutOfServiceAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readBinaryInputBasicOutOfServiceCommandParams); - result.put( - "readOutOfServiceAttribute", readBinaryInputBasicOutOfServiceAttributeInteractionInfo); - Map readBinaryInputBasicPolarityCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicPolarityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readPolarityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBinaryInputBasicPolarityCommandParams); - result.put("readPolarityAttribute", readBinaryInputBasicPolarityAttributeInteractionInfo); - Map readBinaryInputBasicPresentValueCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicPresentValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readPresentValueAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readBinaryInputBasicPresentValueCommandParams); - result.put( - "readPresentValueAttribute", readBinaryInputBasicPresentValueAttributeInteractionInfo); - Map readBinaryInputBasicReliabilityCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicReliabilityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readReliabilityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBinaryInputBasicReliabilityCommandParams); - result.put("readReliabilityAttribute", readBinaryInputBasicReliabilityAttributeInteractionInfo); - Map readBinaryInputBasicStatusFlagsCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicStatusFlagsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readStatusFlagsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBinaryInputBasicStatusFlagsCommandParams); - result.put("readStatusFlagsAttribute", readBinaryInputBasicStatusFlagsAttributeInteractionInfo); - Map readBinaryInputBasicApplicationTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicApplicationTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readApplicationTypeAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBinaryInputBasicApplicationTypeCommandParams); - result.put( - "readApplicationTypeAttribute", - readBinaryInputBasicApplicationTypeAttributeInteractionInfo); - Map readBinaryInputBasicGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.BinaryInputBasicCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBinaryInputBasicClusterGeneratedCommandListAttributeCallback(), - readBinaryInputBasicGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readBinaryInputBasicGeneratedCommandListAttributeInteractionInfo); - Map readBinaryInputBasicAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.BinaryInputBasicCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBinaryInputBasicClusterAcceptedCommandListAttributeCallback(), - readBinaryInputBasicAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readBinaryInputBasicAcceptedCommandListAttributeInteractionInfo); - Map readBinaryInputBasicEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readEventListAttribute( - (ChipClusters.BinaryInputBasicCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedBinaryInputBasicClusterEventListAttributeCallback(), - readBinaryInputBasicEventListCommandParams); - result.put("readEventListAttribute", readBinaryInputBasicEventListAttributeInteractionInfo); - Map readBinaryInputBasicAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.BinaryInputBasicCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBinaryInputBasicClusterAttributeListAttributeCallback(), - readBinaryInputBasicAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readBinaryInputBasicAttributeListAttributeInteractionInfo); - Map readBinaryInputBasicFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBinaryInputBasicFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readBinaryInputBasicFeatureMapAttributeInteractionInfo); - Map readBinaryInputBasicClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBinaryInputBasicClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBinaryInputBasicClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readBinaryInputBasicClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readPulseWidthModulationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readPulseWidthModulationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPulseWidthModulationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PulseWidthModulationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.PulseWidthModulationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPulseWidthModulationClusterGeneratedCommandListAttributeCallback(), - readPulseWidthModulationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readPulseWidthModulationGeneratedCommandListAttributeInteractionInfo); - Map readPulseWidthModulationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPulseWidthModulationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PulseWidthModulationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.PulseWidthModulationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPulseWidthModulationClusterAcceptedCommandListAttributeCallback(), - readPulseWidthModulationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readPulseWidthModulationAcceptedCommandListAttributeInteractionInfo); - Map readPulseWidthModulationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readPulseWidthModulationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PulseWidthModulationCluster) cluster) - .readEventListAttribute( - (ChipClusters.PulseWidthModulationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPulseWidthModulationClusterEventListAttributeCallback(), - readPulseWidthModulationEventListCommandParams); - result.put("readEventListAttribute", readPulseWidthModulationEventListAttributeInteractionInfo); - Map readPulseWidthModulationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readPulseWidthModulationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PulseWidthModulationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.PulseWidthModulationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPulseWidthModulationClusterAttributeListAttributeCallback(), - readPulseWidthModulationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readPulseWidthModulationAttributeListAttributeInteractionInfo); - Map readPulseWidthModulationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readPulseWidthModulationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PulseWidthModulationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPulseWidthModulationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readPulseWidthModulationFeatureMapAttributeInteractionInfo); - Map readPulseWidthModulationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readPulseWidthModulationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PulseWidthModulationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPulseWidthModulationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readPulseWidthModulationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readDescriptorInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readDescriptorDeviceTypeListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorDeviceTypeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readDeviceTypeListAttribute( - (ChipClusters.DescriptorCluster.DeviceTypeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedDescriptorClusterDeviceTypeListAttributeCallback(), - readDescriptorDeviceTypeListCommandParams); - result.put("readDeviceTypeListAttribute", readDescriptorDeviceTypeListAttributeInteractionInfo); - Map readDescriptorServerListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorServerListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readServerListAttribute( - (ChipClusters.DescriptorCluster.ServerListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDescriptorClusterServerListAttributeCallback(), - readDescriptorServerListCommandParams); - result.put("readServerListAttribute", readDescriptorServerListAttributeInteractionInfo); - Map readDescriptorClientListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorClientListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readClientListAttribute( - (ChipClusters.DescriptorCluster.ClientListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDescriptorClusterClientListAttributeCallback(), - readDescriptorClientListCommandParams); - result.put("readClientListAttribute", readDescriptorClientListAttributeInteractionInfo); - Map readDescriptorPartsListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorPartsListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readPartsListAttribute( - (ChipClusters.DescriptorCluster.PartsListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDescriptorClusterPartsListAttributeCallback(), - readDescriptorPartsListCommandParams); - result.put("readPartsListAttribute", readDescriptorPartsListAttributeInteractionInfo); - Map readDescriptorGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.DescriptorCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedDescriptorClusterGeneratedCommandListAttributeCallback(), - readDescriptorGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readDescriptorGeneratedCommandListAttributeInteractionInfo); - Map readDescriptorAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.DescriptorCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedDescriptorClusterAcceptedCommandListAttributeCallback(), - readDescriptorAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readDescriptorAcceptedCommandListAttributeInteractionInfo); - Map readDescriptorEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readEventListAttribute( - (ChipClusters.DescriptorCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDescriptorClusterEventListAttributeCallback(), - readDescriptorEventListCommandParams); - result.put("readEventListAttribute", readDescriptorEventListAttributeInteractionInfo); - Map readDescriptorAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.DescriptorCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDescriptorClusterAttributeListAttributeCallback(), - readDescriptorAttributeListCommandParams); - result.put("readAttributeListAttribute", readDescriptorAttributeListAttributeInteractionInfo); - Map readDescriptorFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readDescriptorFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readDescriptorFeatureMapAttributeInteractionInfo); - Map readDescriptorClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readDescriptorClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DescriptorCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDescriptorClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readDescriptorClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readBindingInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readBindingBindingCommandParams = - new LinkedHashMap(); - InteractionInfo readBindingBindingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BindingCluster) cluster) - .readBindingAttribute( - (ChipClusters.BindingCluster.BindingAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBindingClusterBindingAttributeCallback(), - readBindingBindingCommandParams); - result.put("readBindingAttribute", readBindingBindingAttributeInteractionInfo); - Map readBindingGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBindingGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BindingCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.BindingCluster.GeneratedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBindingClusterGeneratedCommandListAttributeCallback(), - readBindingGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readBindingGeneratedCommandListAttributeInteractionInfo); - Map readBindingAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBindingAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BindingCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.BindingCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBindingClusterAcceptedCommandListAttributeCallback(), - readBindingAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", readBindingAcceptedCommandListAttributeInteractionInfo); - Map readBindingEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readBindingEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BindingCluster) cluster) - .readEventListAttribute( - (ChipClusters.BindingCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBindingClusterEventListAttributeCallback(), - readBindingEventListCommandParams); - result.put("readEventListAttribute", readBindingEventListAttributeInteractionInfo); - Map readBindingAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readBindingAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BindingCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.BindingCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBindingClusterAttributeListAttributeCallback(), - readBindingAttributeListCommandParams); - result.put("readAttributeListAttribute", readBindingAttributeListAttributeInteractionInfo); - Map readBindingFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readBindingFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BindingCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBindingFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readBindingFeatureMapAttributeInteractionInfo); - Map readBindingClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBindingClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BindingCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBindingClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readBindingClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readAccessControlInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readAccessControlAclCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlAclAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readAclAttribute( - (ChipClusters.AccessControlCluster.AclAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAccessControlClusterAclAttributeCallback(), - readAccessControlAclCommandParams); - result.put("readAclAttribute", readAccessControlAclAttributeInteractionInfo); - Map readAccessControlExtensionCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlExtensionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readExtensionAttribute( - (ChipClusters.AccessControlCluster.ExtensionAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAccessControlClusterExtensionAttributeCallback(), - readAccessControlExtensionCommandParams); - result.put("readExtensionAttribute", readAccessControlExtensionAttributeInteractionInfo); - Map readAccessControlSubjectsPerAccessControlEntryCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlSubjectsPerAccessControlEntryAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readSubjectsPerAccessControlEntryAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAccessControlSubjectsPerAccessControlEntryCommandParams); - result.put( - "readSubjectsPerAccessControlEntryAttribute", - readAccessControlSubjectsPerAccessControlEntryAttributeInteractionInfo); - Map readAccessControlTargetsPerAccessControlEntryCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlTargetsPerAccessControlEntryAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readTargetsPerAccessControlEntryAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAccessControlTargetsPerAccessControlEntryCommandParams); - result.put( - "readTargetsPerAccessControlEntryAttribute", - readAccessControlTargetsPerAccessControlEntryAttributeInteractionInfo); - Map readAccessControlAccessControlEntriesPerFabricCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlAccessControlEntriesPerFabricAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readAccessControlEntriesPerFabricAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAccessControlAccessControlEntriesPerFabricCommandParams); - result.put( - "readAccessControlEntriesPerFabricAttribute", - readAccessControlAccessControlEntriesPerFabricAttributeInteractionInfo); - Map readAccessControlGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.AccessControlCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAccessControlClusterGeneratedCommandListAttributeCallback(), - readAccessControlGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readAccessControlGeneratedCommandListAttributeInteractionInfo); - Map readAccessControlAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.AccessControlCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAccessControlClusterAcceptedCommandListAttributeCallback(), - readAccessControlAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readAccessControlAcceptedCommandListAttributeInteractionInfo); - Map readAccessControlEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readEventListAttribute( - (ChipClusters.AccessControlCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAccessControlClusterEventListAttributeCallback(), - readAccessControlEventListCommandParams); - result.put("readEventListAttribute", readAccessControlEventListAttributeInteractionInfo); - Map readAccessControlAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.AccessControlCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAccessControlClusterAttributeListAttributeCallback(), - readAccessControlAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readAccessControlAttributeListAttributeInteractionInfo); - Map readAccessControlFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readAccessControlFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readAccessControlFeatureMapAttributeInteractionInfo); - Map readAccessControlClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readAccessControlClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccessControlCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAccessControlClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readAccessControlClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readActionsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readActionsActionListCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsActionListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readActionListAttribute( - (ChipClusters.ActionsCluster.ActionListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedActionsClusterActionListAttributeCallback(), - readActionsActionListCommandParams); - result.put("readActionListAttribute", readActionsActionListAttributeInteractionInfo); - Map readActionsEndpointListsCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsEndpointListsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readEndpointListsAttribute( - (ChipClusters.ActionsCluster.EndpointListsAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedActionsClusterEndpointListsAttributeCallback(), - readActionsEndpointListsCommandParams); - result.put("readEndpointListsAttribute", readActionsEndpointListsAttributeInteractionInfo); - Map readActionsSetupURLCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsSetupURLAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readSetupURLAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readActionsSetupURLCommandParams); - result.put("readSetupURLAttribute", readActionsSetupURLAttributeInteractionInfo); - Map readActionsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ActionsCluster.GeneratedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedActionsClusterGeneratedCommandListAttributeCallback(), - readActionsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readActionsGeneratedCommandListAttributeInteractionInfo); - Map readActionsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ActionsCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedActionsClusterAcceptedCommandListAttributeCallback(), - readActionsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", readActionsAcceptedCommandListAttributeInteractionInfo); - Map readActionsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readEventListAttribute( - (ChipClusters.ActionsCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedActionsClusterEventListAttributeCallback(), - readActionsEventListCommandParams); - result.put("readEventListAttribute", readActionsEventListAttributeInteractionInfo); - Map readActionsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ActionsCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedActionsClusterAttributeListAttributeCallback(), - readActionsAttributeListCommandParams); - result.put("readAttributeListAttribute", readActionsAttributeListAttributeInteractionInfo); - Map readActionsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readActionsFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readActionsFeatureMapAttributeInteractionInfo); - Map readActionsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readActionsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActionsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readActionsClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readActionsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readBasicInformationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readBasicInformationDataModelRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationDataModelRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readDataModelRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBasicInformationDataModelRevisionCommandParams); - result.put( - "readDataModelRevisionAttribute", - readBasicInformationDataModelRevisionAttributeInteractionInfo); - Map readBasicInformationVendorNameCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationVendorNameAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readVendorNameAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationVendorNameCommandParams); - result.put("readVendorNameAttribute", readBasicInformationVendorNameAttributeInteractionInfo); - Map readBasicInformationVendorIDCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationVendorIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readVendorIDAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBasicInformationVendorIDCommandParams); - result.put("readVendorIDAttribute", readBasicInformationVendorIDAttributeInteractionInfo); - Map readBasicInformationProductNameCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationProductNameAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readProductNameAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationProductNameCommandParams); - result.put("readProductNameAttribute", readBasicInformationProductNameAttributeInteractionInfo); - Map readBasicInformationProductIDCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationProductIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readProductIDAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBasicInformationProductIDCommandParams); - result.put("readProductIDAttribute", readBasicInformationProductIDAttributeInteractionInfo); - Map readBasicInformationNodeLabelCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationNodeLabelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readNodeLabelAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationNodeLabelCommandParams); - result.put("readNodeLabelAttribute", readBasicInformationNodeLabelAttributeInteractionInfo); - Map readBasicInformationLocationCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationLocationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readLocationAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationLocationCommandParams); - result.put("readLocationAttribute", readBasicInformationLocationAttributeInteractionInfo); - Map readBasicInformationHardwareVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationHardwareVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readHardwareVersionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBasicInformationHardwareVersionCommandParams); - result.put( - "readHardwareVersionAttribute", - readBasicInformationHardwareVersionAttributeInteractionInfo); - Map readBasicInformationHardwareVersionStringCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationHardwareVersionStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readHardwareVersionStringAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationHardwareVersionStringCommandParams); - result.put( - "readHardwareVersionStringAttribute", - readBasicInformationHardwareVersionStringAttributeInteractionInfo); - Map readBasicInformationSoftwareVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationSoftwareVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readSoftwareVersionAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBasicInformationSoftwareVersionCommandParams); - result.put( - "readSoftwareVersionAttribute", - readBasicInformationSoftwareVersionAttributeInteractionInfo); - Map readBasicInformationSoftwareVersionStringCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationSoftwareVersionStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readSoftwareVersionStringAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationSoftwareVersionStringCommandParams); - result.put( - "readSoftwareVersionStringAttribute", - readBasicInformationSoftwareVersionStringAttributeInteractionInfo); - Map readBasicInformationManufacturingDateCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationManufacturingDateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readManufacturingDateAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationManufacturingDateCommandParams); - result.put( - "readManufacturingDateAttribute", - readBasicInformationManufacturingDateAttributeInteractionInfo); - Map readBasicInformationPartNumberCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationPartNumberAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readPartNumberAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationPartNumberCommandParams); - result.put("readPartNumberAttribute", readBasicInformationPartNumberAttributeInteractionInfo); - Map readBasicInformationProductURLCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationProductURLAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readProductURLAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationProductURLCommandParams); - result.put("readProductURLAttribute", readBasicInformationProductURLAttributeInteractionInfo); - Map readBasicInformationProductLabelCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationProductLabelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readProductLabelAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationProductLabelCommandParams); - result.put( - "readProductLabelAttribute", readBasicInformationProductLabelAttributeInteractionInfo); - Map readBasicInformationSerialNumberCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationSerialNumberAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readSerialNumberAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationSerialNumberCommandParams); - result.put( - "readSerialNumberAttribute", readBasicInformationSerialNumberAttributeInteractionInfo); - Map readBasicInformationLocalConfigDisabledCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationLocalConfigDisabledAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readLocalConfigDisabledAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readBasicInformationLocalConfigDisabledCommandParams); - result.put( - "readLocalConfigDisabledAttribute", - readBasicInformationLocalConfigDisabledAttributeInteractionInfo); - Map readBasicInformationReachableCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationReachableAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readReachableAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readBasicInformationReachableCommandParams); - result.put("readReachableAttribute", readBasicInformationReachableAttributeInteractionInfo); - Map readBasicInformationUniqueIDCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationUniqueIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readUniqueIDAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBasicInformationUniqueIDCommandParams); - result.put("readUniqueIDAttribute", readBasicInformationUniqueIDAttributeInteractionInfo); - Map readBasicInformationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.BasicInformationCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBasicInformationClusterGeneratedCommandListAttributeCallback(), - readBasicInformationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readBasicInformationGeneratedCommandListAttributeInteractionInfo); - Map readBasicInformationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.BasicInformationCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBasicInformationClusterAcceptedCommandListAttributeCallback(), - readBasicInformationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readBasicInformationAcceptedCommandListAttributeInteractionInfo); - Map readBasicInformationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readEventListAttribute( - (ChipClusters.BasicInformationCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedBasicInformationClusterEventListAttributeCallback(), - readBasicInformationEventListCommandParams); - result.put("readEventListAttribute", readBasicInformationEventListAttributeInteractionInfo); - Map readBasicInformationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.BasicInformationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBasicInformationClusterAttributeListAttributeCallback(), - readBasicInformationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readBasicInformationAttributeListAttributeInteractionInfo); - Map readBasicInformationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBasicInformationFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readBasicInformationFeatureMapAttributeInteractionInfo); - Map readBasicInformationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBasicInformationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBasicInformationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readBasicInformationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readOtaSoftwareUpdateProviderInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map - readOtaSoftwareUpdateProviderGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateProviderGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.OtaSoftwareUpdateProviderCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateProviderClusterGeneratedCommandListAttributeCallback(), - readOtaSoftwareUpdateProviderGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readOtaSoftwareUpdateProviderGeneratedCommandListAttributeInteractionInfo); - Map - readOtaSoftwareUpdateProviderAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateProviderAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.OtaSoftwareUpdateProviderCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateProviderClusterAcceptedCommandListAttributeCallback(), - readOtaSoftwareUpdateProviderAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readOtaSoftwareUpdateProviderAcceptedCommandListAttributeInteractionInfo); - Map readOtaSoftwareUpdateProviderEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateProviderEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster) - .readEventListAttribute( - (ChipClusters.OtaSoftwareUpdateProviderCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateProviderClusterEventListAttributeCallback(), - readOtaSoftwareUpdateProviderEventListCommandParams); - result.put( - "readEventListAttribute", readOtaSoftwareUpdateProviderEventListAttributeInteractionInfo); - Map readOtaSoftwareUpdateProviderAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateProviderAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.OtaSoftwareUpdateProviderCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateProviderClusterAttributeListAttributeCallback(), - readOtaSoftwareUpdateProviderAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readOtaSoftwareUpdateProviderAttributeListAttributeInteractionInfo); - Map readOtaSoftwareUpdateProviderFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateProviderFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readOtaSoftwareUpdateProviderFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readOtaSoftwareUpdateProviderFeatureMapAttributeInteractionInfo); - Map readOtaSoftwareUpdateProviderClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateProviderClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOtaSoftwareUpdateProviderClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readOtaSoftwareUpdateProviderClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readOtaSoftwareUpdateRequestorInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map - readOtaSoftwareUpdateRequestorDefaultOTAProvidersCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorDefaultOTAProvidersAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readDefaultOTAProvidersAttribute( - (ChipClusters.OtaSoftwareUpdateRequestorCluster - .DefaultOTAProvidersAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateRequestorClusterDefaultOTAProvidersAttributeCallback(), - readOtaSoftwareUpdateRequestorDefaultOTAProvidersCommandParams); - result.put( - "readDefaultOTAProvidersAttribute", - readOtaSoftwareUpdateRequestorDefaultOTAProvidersAttributeInteractionInfo); - Map readOtaSoftwareUpdateRequestorUpdatePossibleCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorUpdatePossibleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readUpdatePossibleAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readOtaSoftwareUpdateRequestorUpdatePossibleCommandParams); - result.put( - "readUpdatePossibleAttribute", - readOtaSoftwareUpdateRequestorUpdatePossibleAttributeInteractionInfo); - Map readOtaSoftwareUpdateRequestorUpdateStateCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorUpdateStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readUpdateStateAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOtaSoftwareUpdateRequestorUpdateStateCommandParams); - result.put( - "readUpdateStateAttribute", - readOtaSoftwareUpdateRequestorUpdateStateAttributeInteractionInfo); - Map - readOtaSoftwareUpdateRequestorUpdateStateProgressCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorUpdateStateProgressAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readUpdateStateProgressAttribute( - (ChipClusters.OtaSoftwareUpdateRequestorCluster - .UpdateStateProgressAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateRequestorClusterUpdateStateProgressAttributeCallback(), - readOtaSoftwareUpdateRequestorUpdateStateProgressCommandParams); - result.put( - "readUpdateStateProgressAttribute", - readOtaSoftwareUpdateRequestorUpdateStateProgressAttributeInteractionInfo); - Map - readOtaSoftwareUpdateRequestorGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.OtaSoftwareUpdateRequestorCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateRequestorClusterGeneratedCommandListAttributeCallback(), - readOtaSoftwareUpdateRequestorGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readOtaSoftwareUpdateRequestorGeneratedCommandListAttributeInteractionInfo); - Map - readOtaSoftwareUpdateRequestorAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.OtaSoftwareUpdateRequestorCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateRequestorClusterAcceptedCommandListAttributeCallback(), - readOtaSoftwareUpdateRequestorAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readOtaSoftwareUpdateRequestorAcceptedCommandListAttributeInteractionInfo); - Map readOtaSoftwareUpdateRequestorEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readEventListAttribute( - (ChipClusters.OtaSoftwareUpdateRequestorCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateRequestorClusterEventListAttributeCallback(), - readOtaSoftwareUpdateRequestorEventListCommandParams); - result.put( - "readEventListAttribute", readOtaSoftwareUpdateRequestorEventListAttributeInteractionInfo); - Map readOtaSoftwareUpdateRequestorAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.OtaSoftwareUpdateRequestorCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOtaSoftwareUpdateRequestorClusterAttributeListAttributeCallback(), - readOtaSoftwareUpdateRequestorAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readOtaSoftwareUpdateRequestorAttributeListAttributeInteractionInfo); - Map readOtaSoftwareUpdateRequestorFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readOtaSoftwareUpdateRequestorFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readOtaSoftwareUpdateRequestorFeatureMapAttributeInteractionInfo); - Map readOtaSoftwareUpdateRequestorClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readOtaSoftwareUpdateRequestorClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOtaSoftwareUpdateRequestorClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readOtaSoftwareUpdateRequestorClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readLocalizationConfigurationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readLocalizationConfigurationActiveLocaleCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationActiveLocaleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readActiveLocaleAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readLocalizationConfigurationActiveLocaleCommandParams); - result.put( - "readActiveLocaleAttribute", - readLocalizationConfigurationActiveLocaleAttributeInteractionInfo); - Map readLocalizationConfigurationSupportedLocalesCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationSupportedLocalesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readSupportedLocalesAttribute( - (ChipClusters.LocalizationConfigurationCluster - .SupportedLocalesAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLocalizationConfigurationClusterSupportedLocalesAttributeCallback(), - readLocalizationConfigurationSupportedLocalesCommandParams); - result.put( - "readSupportedLocalesAttribute", - readLocalizationConfigurationSupportedLocalesAttributeInteractionInfo); - Map - readLocalizationConfigurationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.LocalizationConfigurationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLocalizationConfigurationClusterGeneratedCommandListAttributeCallback(), - readLocalizationConfigurationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readLocalizationConfigurationGeneratedCommandListAttributeInteractionInfo); - Map - readLocalizationConfigurationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.LocalizationConfigurationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLocalizationConfigurationClusterAcceptedCommandListAttributeCallback(), - readLocalizationConfigurationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readLocalizationConfigurationAcceptedCommandListAttributeInteractionInfo); - Map readLocalizationConfigurationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readEventListAttribute( - (ChipClusters.LocalizationConfigurationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLocalizationConfigurationClusterEventListAttributeCallback(), - readLocalizationConfigurationEventListCommandParams); - result.put( - "readEventListAttribute", readLocalizationConfigurationEventListAttributeInteractionInfo); - Map readLocalizationConfigurationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.LocalizationConfigurationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLocalizationConfigurationClusterAttributeListAttributeCallback(), - readLocalizationConfigurationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readLocalizationConfigurationAttributeListAttributeInteractionInfo); - Map readLocalizationConfigurationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readLocalizationConfigurationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readLocalizationConfigurationFeatureMapAttributeInteractionInfo); - Map readLocalizationConfigurationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readLocalizationConfigurationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLocalizationConfigurationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readLocalizationConfigurationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readTimeFormatLocalizationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readTimeFormatLocalizationHourFormatCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationHourFormatAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readHourFormatAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeFormatLocalizationHourFormatCommandParams); - result.put( - "readHourFormatAttribute", readTimeFormatLocalizationHourFormatAttributeInteractionInfo); - Map readTimeFormatLocalizationActiveCalendarTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readActiveCalendarTypeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeFormatLocalizationActiveCalendarTypeCommandParams); - result.put( - "readActiveCalendarTypeAttribute", - readTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo); - Map - readTimeFormatLocalizationSupportedCalendarTypesCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationSupportedCalendarTypesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readSupportedCalendarTypesAttribute( - (ChipClusters.TimeFormatLocalizationCluster - .SupportedCalendarTypesAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeFormatLocalizationClusterSupportedCalendarTypesAttributeCallback(), - readTimeFormatLocalizationSupportedCalendarTypesCommandParams); - result.put( - "readSupportedCalendarTypesAttribute", - readTimeFormatLocalizationSupportedCalendarTypesAttributeInteractionInfo); - Map readTimeFormatLocalizationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.TimeFormatLocalizationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeFormatLocalizationClusterGeneratedCommandListAttributeCallback(), - readTimeFormatLocalizationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readTimeFormatLocalizationGeneratedCommandListAttributeInteractionInfo); - Map readTimeFormatLocalizationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.TimeFormatLocalizationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeFormatLocalizationClusterAcceptedCommandListAttributeCallback(), - readTimeFormatLocalizationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readTimeFormatLocalizationAcceptedCommandListAttributeInteractionInfo); - Map readTimeFormatLocalizationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readEventListAttribute( - (ChipClusters.TimeFormatLocalizationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeFormatLocalizationClusterEventListAttributeCallback(), - readTimeFormatLocalizationEventListCommandParams); - result.put( - "readEventListAttribute", readTimeFormatLocalizationEventListAttributeInteractionInfo); - Map readTimeFormatLocalizationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.TimeFormatLocalizationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeFormatLocalizationClusterAttributeListAttributeCallback(), - readTimeFormatLocalizationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readTimeFormatLocalizationAttributeListAttributeInteractionInfo); - Map readTimeFormatLocalizationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readTimeFormatLocalizationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readTimeFormatLocalizationFeatureMapAttributeInteractionInfo); - Map readTimeFormatLocalizationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeFormatLocalizationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeFormatLocalizationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readTimeFormatLocalizationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readUnitLocalizationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readUnitLocalizationTemperatureUnitCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitLocalizationTemperatureUnitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .readTemperatureUnitAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitLocalizationTemperatureUnitCommandParams); - result.put( - "readTemperatureUnitAttribute", - readUnitLocalizationTemperatureUnitAttributeInteractionInfo); - Map readUnitLocalizationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitLocalizationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.UnitLocalizationCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitLocalizationClusterGeneratedCommandListAttributeCallback(), - readUnitLocalizationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readUnitLocalizationGeneratedCommandListAttributeInteractionInfo); - Map readUnitLocalizationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitLocalizationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.UnitLocalizationCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitLocalizationClusterAcceptedCommandListAttributeCallback(), - readUnitLocalizationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readUnitLocalizationAcceptedCommandListAttributeInteractionInfo); - Map readUnitLocalizationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitLocalizationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .readEventListAttribute( - (ChipClusters.UnitLocalizationCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitLocalizationClusterEventListAttributeCallback(), - readUnitLocalizationEventListCommandParams); - result.put("readEventListAttribute", readUnitLocalizationEventListAttributeInteractionInfo); - Map readUnitLocalizationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitLocalizationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.UnitLocalizationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitLocalizationClusterAttributeListAttributeCallback(), - readUnitLocalizationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readUnitLocalizationAttributeListAttributeInteractionInfo); - Map readUnitLocalizationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitLocalizationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitLocalizationFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readUnitLocalizationFeatureMapAttributeInteractionInfo); - Map readUnitLocalizationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitLocalizationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitLocalizationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readUnitLocalizationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readPowerSourceConfigurationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readPowerSourceConfigurationSourcesCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceConfigurationSourcesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceConfigurationCluster) cluster) - .readSourcesAttribute( - (ChipClusters.PowerSourceConfigurationCluster.SourcesAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceConfigurationClusterSourcesAttributeCallback(), - readPowerSourceConfigurationSourcesCommandParams); - result.put("readSourcesAttribute", readPowerSourceConfigurationSourcesAttributeInteractionInfo); - Map - readPowerSourceConfigurationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceConfigurationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceConfigurationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.PowerSourceConfigurationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceConfigurationClusterGeneratedCommandListAttributeCallback(), - readPowerSourceConfigurationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readPowerSourceConfigurationGeneratedCommandListAttributeInteractionInfo); - Map readPowerSourceConfigurationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceConfigurationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceConfigurationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.PowerSourceConfigurationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceConfigurationClusterAcceptedCommandListAttributeCallback(), - readPowerSourceConfigurationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readPowerSourceConfigurationAcceptedCommandListAttributeInteractionInfo); - Map readPowerSourceConfigurationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceConfigurationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceConfigurationCluster) cluster) - .readEventListAttribute( - (ChipClusters.PowerSourceConfigurationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceConfigurationClusterEventListAttributeCallback(), - readPowerSourceConfigurationEventListCommandParams); - result.put( - "readEventListAttribute", readPowerSourceConfigurationEventListAttributeInteractionInfo); - Map readPowerSourceConfigurationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceConfigurationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceConfigurationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.PowerSourceConfigurationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceConfigurationClusterAttributeListAttributeCallback(), - readPowerSourceConfigurationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readPowerSourceConfigurationAttributeListAttributeInteractionInfo); - Map readPowerSourceConfigurationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceConfigurationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceConfigurationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPowerSourceConfigurationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readPowerSourceConfigurationFeatureMapAttributeInteractionInfo); - Map readPowerSourceConfigurationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceConfigurationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceConfigurationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceConfigurationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readPowerSourceConfigurationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readPowerSourceInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readPowerSourceStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceStatusCommandParams); - result.put("readStatusAttribute", readPowerSourceStatusAttributeInteractionInfo); - Map readPowerSourceOrderCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceOrderAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readOrderAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceOrderCommandParams); - result.put("readOrderAttribute", readPowerSourceOrderAttributeInteractionInfo); - Map readPowerSourceDescriptionCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceDescriptionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readDescriptionAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readPowerSourceDescriptionCommandParams); - result.put("readDescriptionAttribute", readPowerSourceDescriptionAttributeInteractionInfo); - Map readPowerSourceWiredAssessedInputVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceWiredAssessedInputVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readWiredAssessedInputVoltageAttribute( - (ChipClusters.PowerSourceCluster.WiredAssessedInputVoltageAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterWiredAssessedInputVoltageAttributeCallback(), - readPowerSourceWiredAssessedInputVoltageCommandParams); - result.put( - "readWiredAssessedInputVoltageAttribute", - readPowerSourceWiredAssessedInputVoltageAttributeInteractionInfo); - Map readPowerSourceWiredAssessedInputFrequencyCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceWiredAssessedInputFrequencyAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readWiredAssessedInputFrequencyAttribute( - (ChipClusters.PowerSourceCluster.WiredAssessedInputFrequencyAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterWiredAssessedInputFrequencyAttributeCallback(), - readPowerSourceWiredAssessedInputFrequencyCommandParams); - result.put( - "readWiredAssessedInputFrequencyAttribute", - readPowerSourceWiredAssessedInputFrequencyAttributeInteractionInfo); - Map readPowerSourceWiredCurrentTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceWiredCurrentTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readWiredCurrentTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceWiredCurrentTypeCommandParams); - result.put( - "readWiredCurrentTypeAttribute", readPowerSourceWiredCurrentTypeAttributeInteractionInfo); - Map readPowerSourceWiredAssessedCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceWiredAssessedCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readWiredAssessedCurrentAttribute( - (ChipClusters.PowerSourceCluster.WiredAssessedCurrentAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterWiredAssessedCurrentAttributeCallback(), - readPowerSourceWiredAssessedCurrentCommandParams); - result.put( - "readWiredAssessedCurrentAttribute", - readPowerSourceWiredAssessedCurrentAttributeInteractionInfo); - Map readPowerSourceWiredNominalVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceWiredNominalVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readWiredNominalVoltageAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPowerSourceWiredNominalVoltageCommandParams); - result.put( - "readWiredNominalVoltageAttribute", - readPowerSourceWiredNominalVoltageAttributeInteractionInfo); - Map readPowerSourceWiredMaximumCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceWiredMaximumCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readWiredMaximumCurrentAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPowerSourceWiredMaximumCurrentCommandParams); - result.put( - "readWiredMaximumCurrentAttribute", - readPowerSourceWiredMaximumCurrentAttributeInteractionInfo); - Map readPowerSourceWiredPresentCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceWiredPresentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readWiredPresentAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readPowerSourceWiredPresentCommandParams); - result.put("readWiredPresentAttribute", readPowerSourceWiredPresentAttributeInteractionInfo); - Map readPowerSourceActiveWiredFaultsCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceActiveWiredFaultsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readActiveWiredFaultsAttribute( - (ChipClusters.PowerSourceCluster.ActiveWiredFaultsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterActiveWiredFaultsAttributeCallback(), - readPowerSourceActiveWiredFaultsCommandParams); - result.put( - "readActiveWiredFaultsAttribute", readPowerSourceActiveWiredFaultsAttributeInteractionInfo); - Map readPowerSourceBatVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatVoltageAttribute( - (ChipClusters.PowerSourceCluster.BatVoltageAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedPowerSourceClusterBatVoltageAttributeCallback(), - readPowerSourceBatVoltageCommandParams); - result.put("readBatVoltageAttribute", readPowerSourceBatVoltageAttributeInteractionInfo); - Map readPowerSourceBatPercentRemainingCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatPercentRemainingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatPercentRemainingAttribute( - (ChipClusters.PowerSourceCluster.BatPercentRemainingAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterBatPercentRemainingAttributeCallback(), - readPowerSourceBatPercentRemainingCommandParams); - result.put( - "readBatPercentRemainingAttribute", - readPowerSourceBatPercentRemainingAttributeInteractionInfo); - Map readPowerSourceBatTimeRemainingCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatTimeRemainingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatTimeRemainingAttribute( - (ChipClusters.PowerSourceCluster.BatTimeRemainingAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterBatTimeRemainingAttributeCallback(), - readPowerSourceBatTimeRemainingCommandParams); - result.put( - "readBatTimeRemainingAttribute", readPowerSourceBatTimeRemainingAttributeInteractionInfo); - Map readPowerSourceBatChargeLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatChargeLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatChargeLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceBatChargeLevelCommandParams); - result.put( - "readBatChargeLevelAttribute", readPowerSourceBatChargeLevelAttributeInteractionInfo); - Map readPowerSourceBatReplacementNeededCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatReplacementNeededAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatReplacementNeededAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readPowerSourceBatReplacementNeededCommandParams); - result.put( - "readBatReplacementNeededAttribute", - readPowerSourceBatReplacementNeededAttributeInteractionInfo); - Map readPowerSourceBatReplaceabilityCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatReplaceabilityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatReplaceabilityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceBatReplaceabilityCommandParams); - result.put( - "readBatReplaceabilityAttribute", readPowerSourceBatReplaceabilityAttributeInteractionInfo); - Map readPowerSourceBatPresentCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatPresentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatPresentAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readPowerSourceBatPresentCommandParams); - result.put("readBatPresentAttribute", readPowerSourceBatPresentAttributeInteractionInfo); - Map readPowerSourceActiveBatFaultsCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceActiveBatFaultsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readActiveBatFaultsAttribute( - (ChipClusters.PowerSourceCluster.ActiveBatFaultsAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterActiveBatFaultsAttributeCallback(), - readPowerSourceActiveBatFaultsCommandParams); - result.put( - "readActiveBatFaultsAttribute", readPowerSourceActiveBatFaultsAttributeInteractionInfo); - Map readPowerSourceBatReplacementDescriptionCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatReplacementDescriptionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatReplacementDescriptionAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readPowerSourceBatReplacementDescriptionCommandParams); - result.put( - "readBatReplacementDescriptionAttribute", - readPowerSourceBatReplacementDescriptionAttributeInteractionInfo); - Map readPowerSourceBatCommonDesignationCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatCommonDesignationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatCommonDesignationAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceBatCommonDesignationCommandParams); - result.put( - "readBatCommonDesignationAttribute", - readPowerSourceBatCommonDesignationAttributeInteractionInfo); - Map readPowerSourceBatANSIDesignationCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatANSIDesignationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatANSIDesignationAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readPowerSourceBatANSIDesignationCommandParams); - result.put( - "readBatANSIDesignationAttribute", - readPowerSourceBatANSIDesignationAttributeInteractionInfo); - Map readPowerSourceBatIECDesignationCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatIECDesignationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatIECDesignationAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readPowerSourceBatIECDesignationCommandParams); - result.put( - "readBatIECDesignationAttribute", readPowerSourceBatIECDesignationAttributeInteractionInfo); - Map readPowerSourceBatApprovedChemistryCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatApprovedChemistryAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatApprovedChemistryAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceBatApprovedChemistryCommandParams); - result.put( - "readBatApprovedChemistryAttribute", - readPowerSourceBatApprovedChemistryAttributeInteractionInfo); - Map readPowerSourceBatCapacityCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatCapacityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatCapacityAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPowerSourceBatCapacityCommandParams); - result.put("readBatCapacityAttribute", readPowerSourceBatCapacityAttributeInteractionInfo); - Map readPowerSourceBatQuantityCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatQuantityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatQuantityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceBatQuantityCommandParams); - result.put("readBatQuantityAttribute", readPowerSourceBatQuantityAttributeInteractionInfo); - Map readPowerSourceBatChargeStateCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatChargeStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatChargeStateAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceBatChargeStateCommandParams); - result.put( - "readBatChargeStateAttribute", readPowerSourceBatChargeStateAttributeInteractionInfo); - Map readPowerSourceBatTimeToFullChargeCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatTimeToFullChargeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatTimeToFullChargeAttribute( - (ChipClusters.PowerSourceCluster.BatTimeToFullChargeAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterBatTimeToFullChargeAttributeCallback(), - readPowerSourceBatTimeToFullChargeCommandParams); - result.put( - "readBatTimeToFullChargeAttribute", - readPowerSourceBatTimeToFullChargeAttributeInteractionInfo); - Map readPowerSourceBatFunctionalWhileChargingCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatFunctionalWhileChargingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatFunctionalWhileChargingAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readPowerSourceBatFunctionalWhileChargingCommandParams); - result.put( - "readBatFunctionalWhileChargingAttribute", - readPowerSourceBatFunctionalWhileChargingAttributeInteractionInfo); - Map readPowerSourceBatChargingCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceBatChargingCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readBatChargingCurrentAttribute( - (ChipClusters.PowerSourceCluster.BatChargingCurrentAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterBatChargingCurrentAttributeCallback(), - readPowerSourceBatChargingCurrentCommandParams); - result.put( - "readBatChargingCurrentAttribute", - readPowerSourceBatChargingCurrentAttributeInteractionInfo); - Map readPowerSourceActiveBatChargeFaultsCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceActiveBatChargeFaultsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readActiveBatChargeFaultsAttribute( - (ChipClusters.PowerSourceCluster.ActiveBatChargeFaultsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterActiveBatChargeFaultsAttributeCallback(), - readPowerSourceActiveBatChargeFaultsCommandParams); - result.put( - "readActiveBatChargeFaultsAttribute", - readPowerSourceActiveBatChargeFaultsAttributeInteractionInfo); - Map readPowerSourceGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.PowerSourceCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterGeneratedCommandListAttributeCallback(), - readPowerSourceGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readPowerSourceGeneratedCommandListAttributeInteractionInfo); - Map readPowerSourceAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.PowerSourceCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPowerSourceClusterAcceptedCommandListAttributeCallback(), - readPowerSourceAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readPowerSourceAcceptedCommandListAttributeInteractionInfo); - Map readPowerSourceEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readEventListAttribute( - (ChipClusters.PowerSourceCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedPowerSourceClusterEventListAttributeCallback(), - readPowerSourceEventListCommandParams); - result.put("readEventListAttribute", readPowerSourceEventListAttributeInteractionInfo); - Map readPowerSourceAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.PowerSourceCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedPowerSourceClusterAttributeListAttributeCallback(), - readPowerSourceAttributeListCommandParams); - result.put("readAttributeListAttribute", readPowerSourceAttributeListAttributeInteractionInfo); - Map readPowerSourceFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPowerSourceFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readPowerSourceFeatureMapAttributeInteractionInfo); - Map readPowerSourceClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readPowerSourceClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PowerSourceCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPowerSourceClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readPowerSourceClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readGeneralCommissioningInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readGeneralCommissioningBreadcrumbCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningBreadcrumbAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readBreadcrumbAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readGeneralCommissioningBreadcrumbCommandParams); - result.put( - "readBreadcrumbAttribute", readGeneralCommissioningBreadcrumbAttributeInteractionInfo); - Map readGeneralCommissioningRegulatoryConfigCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningRegulatoryConfigAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readRegulatoryConfigAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGeneralCommissioningRegulatoryConfigCommandParams); - result.put( - "readRegulatoryConfigAttribute", - readGeneralCommissioningRegulatoryConfigAttributeInteractionInfo); - Map readGeneralCommissioningLocationCapabilityCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningLocationCapabilityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readLocationCapabilityAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGeneralCommissioningLocationCapabilityCommandParams); - result.put( - "readLocationCapabilityAttribute", - readGeneralCommissioningLocationCapabilityAttributeInteractionInfo); - Map - readGeneralCommissioningSupportsConcurrentConnectionCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningSupportsConcurrentConnectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readSupportsConcurrentConnectionAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readGeneralCommissioningSupportsConcurrentConnectionCommandParams); - result.put( - "readSupportsConcurrentConnectionAttribute", - readGeneralCommissioningSupportsConcurrentConnectionAttributeInteractionInfo); - Map readGeneralCommissioningGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.GeneralCommissioningCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralCommissioningClusterGeneratedCommandListAttributeCallback(), - readGeneralCommissioningGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readGeneralCommissioningGeneratedCommandListAttributeInteractionInfo); - Map readGeneralCommissioningAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.GeneralCommissioningCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralCommissioningClusterAcceptedCommandListAttributeCallback(), - readGeneralCommissioningAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readGeneralCommissioningAcceptedCommandListAttributeInteractionInfo); - Map readGeneralCommissioningEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readEventListAttribute( - (ChipClusters.GeneralCommissioningCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralCommissioningClusterEventListAttributeCallback(), - readGeneralCommissioningEventListCommandParams); - result.put("readEventListAttribute", readGeneralCommissioningEventListAttributeInteractionInfo); - Map readGeneralCommissioningAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.GeneralCommissioningCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralCommissioningClusterAttributeListAttributeCallback(), - readGeneralCommissioningAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readGeneralCommissioningAttributeListAttributeInteractionInfo); - Map readGeneralCommissioningFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readGeneralCommissioningFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readGeneralCommissioningFeatureMapAttributeInteractionInfo); - Map readGeneralCommissioningClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralCommissioningClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGeneralCommissioningClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readGeneralCommissioningClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readNetworkCommissioningInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readNetworkCommissioningMaxNetworksCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningMaxNetworksAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readMaxNetworksAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readNetworkCommissioningMaxNetworksCommandParams); - result.put( - "readMaxNetworksAttribute", readNetworkCommissioningMaxNetworksAttributeInteractionInfo); - Map readNetworkCommissioningNetworksCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningNetworksAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readNetworksAttribute( - (ChipClusters.NetworkCommissioningCluster.NetworksAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterNetworksAttributeCallback(), - readNetworkCommissioningNetworksCommandParams); - result.put("readNetworksAttribute", readNetworkCommissioningNetworksAttributeInteractionInfo); - Map readNetworkCommissioningScanMaxTimeSecondsCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningScanMaxTimeSecondsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readScanMaxTimeSecondsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readNetworkCommissioningScanMaxTimeSecondsCommandParams); - result.put( - "readScanMaxTimeSecondsAttribute", - readNetworkCommissioningScanMaxTimeSecondsAttributeInteractionInfo); - Map readNetworkCommissioningConnectMaxTimeSecondsCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningConnectMaxTimeSecondsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readConnectMaxTimeSecondsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readNetworkCommissioningConnectMaxTimeSecondsCommandParams); - result.put( - "readConnectMaxTimeSecondsAttribute", - readNetworkCommissioningConnectMaxTimeSecondsAttributeInteractionInfo); - Map readNetworkCommissioningInterfaceEnabledCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningInterfaceEnabledAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readInterfaceEnabledAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readNetworkCommissioningInterfaceEnabledCommandParams); - result.put( - "readInterfaceEnabledAttribute", - readNetworkCommissioningInterfaceEnabledAttributeInteractionInfo); - Map readNetworkCommissioningLastNetworkingStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningLastNetworkingStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readLastNetworkingStatusAttribute( - (ChipClusters.NetworkCommissioningCluster - .LastNetworkingStatusAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterLastNetworkingStatusAttributeCallback(), - readNetworkCommissioningLastNetworkingStatusCommandParams); - result.put( - "readLastNetworkingStatusAttribute", - readNetworkCommissioningLastNetworkingStatusAttributeInteractionInfo); - Map readNetworkCommissioningLastNetworkIDCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningLastNetworkIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readLastNetworkIDAttribute( - (ChipClusters.NetworkCommissioningCluster.LastNetworkIDAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterLastNetworkIDAttributeCallback(), - readNetworkCommissioningLastNetworkIDCommandParams); - result.put( - "readLastNetworkIDAttribute", - readNetworkCommissioningLastNetworkIDAttributeInteractionInfo); - Map readNetworkCommissioningLastConnectErrorValueCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningLastConnectErrorValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readLastConnectErrorValueAttribute( - (ChipClusters.NetworkCommissioningCluster - .LastConnectErrorValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterLastConnectErrorValueAttributeCallback(), - readNetworkCommissioningLastConnectErrorValueCommandParams); - result.put( - "readLastConnectErrorValueAttribute", - readNetworkCommissioningLastConnectErrorValueAttributeInteractionInfo); - Map readNetworkCommissioningGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.NetworkCommissioningCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterGeneratedCommandListAttributeCallback(), - readNetworkCommissioningGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readNetworkCommissioningGeneratedCommandListAttributeInteractionInfo); - Map readNetworkCommissioningAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.NetworkCommissioningCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterAcceptedCommandListAttributeCallback(), - readNetworkCommissioningAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readNetworkCommissioningAcceptedCommandListAttributeInteractionInfo); - Map readNetworkCommissioningEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readEventListAttribute( - (ChipClusters.NetworkCommissioningCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterEventListAttributeCallback(), - readNetworkCommissioningEventListCommandParams); - result.put("readEventListAttribute", readNetworkCommissioningEventListAttributeInteractionInfo); - Map readNetworkCommissioningAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.NetworkCommissioningCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedNetworkCommissioningClusterAttributeListAttributeCallback(), - readNetworkCommissioningAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readNetworkCommissioningAttributeListAttributeInteractionInfo); - Map readNetworkCommissioningFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readNetworkCommissioningFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readNetworkCommissioningFeatureMapAttributeInteractionInfo); - Map readNetworkCommissioningClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readNetworkCommissioningClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readNetworkCommissioningClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readNetworkCommissioningClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readDiagnosticLogsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readDiagnosticLogsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readDiagnosticLogsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DiagnosticLogsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.DiagnosticLogsCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedDiagnosticLogsClusterGeneratedCommandListAttributeCallback(), - readDiagnosticLogsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readDiagnosticLogsGeneratedCommandListAttributeInteractionInfo); - Map readDiagnosticLogsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readDiagnosticLogsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DiagnosticLogsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.DiagnosticLogsCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedDiagnosticLogsClusterAcceptedCommandListAttributeCallback(), - readDiagnosticLogsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readDiagnosticLogsAcceptedCommandListAttributeInteractionInfo); - Map readDiagnosticLogsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readDiagnosticLogsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DiagnosticLogsCluster) cluster) - .readEventListAttribute( - (ChipClusters.DiagnosticLogsCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDiagnosticLogsClusterEventListAttributeCallback(), - readDiagnosticLogsEventListCommandParams); - result.put("readEventListAttribute", readDiagnosticLogsEventListAttributeInteractionInfo); - Map readDiagnosticLogsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readDiagnosticLogsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DiagnosticLogsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.DiagnosticLogsCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedDiagnosticLogsClusterAttributeListAttributeCallback(), - readDiagnosticLogsAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readDiagnosticLogsAttributeListAttributeInteractionInfo); - Map readDiagnosticLogsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readDiagnosticLogsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DiagnosticLogsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readDiagnosticLogsFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readDiagnosticLogsFeatureMapAttributeInteractionInfo); - Map readDiagnosticLogsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readDiagnosticLogsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DiagnosticLogsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDiagnosticLogsClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readDiagnosticLogsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readGeneralDiagnosticsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readGeneralDiagnosticsNetworkInterfacesCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsNetworkInterfacesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readNetworkInterfacesAttribute( - (ChipClusters.GeneralDiagnosticsCluster.NetworkInterfacesAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterNetworkInterfacesAttributeCallback(), - readGeneralDiagnosticsNetworkInterfacesCommandParams); - result.put( - "readNetworkInterfacesAttribute", - readGeneralDiagnosticsNetworkInterfacesAttributeInteractionInfo); - Map readGeneralDiagnosticsRebootCountCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsRebootCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readRebootCountAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGeneralDiagnosticsRebootCountCommandParams); - result.put( - "readRebootCountAttribute", readGeneralDiagnosticsRebootCountAttributeInteractionInfo); - Map readGeneralDiagnosticsUpTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsUpTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readUpTimeAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readGeneralDiagnosticsUpTimeCommandParams); - result.put("readUpTimeAttribute", readGeneralDiagnosticsUpTimeAttributeInteractionInfo); - Map readGeneralDiagnosticsTotalOperationalHoursCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsTotalOperationalHoursAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readTotalOperationalHoursAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readGeneralDiagnosticsTotalOperationalHoursCommandParams); - result.put( - "readTotalOperationalHoursAttribute", - readGeneralDiagnosticsTotalOperationalHoursAttributeInteractionInfo); - Map readGeneralDiagnosticsBootReasonCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsBootReasonAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readBootReasonAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGeneralDiagnosticsBootReasonCommandParams); - result.put("readBootReasonAttribute", readGeneralDiagnosticsBootReasonAttributeInteractionInfo); - Map readGeneralDiagnosticsActiveHardwareFaultsCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsActiveHardwareFaultsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readActiveHardwareFaultsAttribute( - (ChipClusters.GeneralDiagnosticsCluster.ActiveHardwareFaultsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterActiveHardwareFaultsAttributeCallback(), - readGeneralDiagnosticsActiveHardwareFaultsCommandParams); - result.put( - "readActiveHardwareFaultsAttribute", - readGeneralDiagnosticsActiveHardwareFaultsAttributeInteractionInfo); - Map readGeneralDiagnosticsActiveRadioFaultsCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsActiveRadioFaultsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readActiveRadioFaultsAttribute( - (ChipClusters.GeneralDiagnosticsCluster.ActiveRadioFaultsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterActiveRadioFaultsAttributeCallback(), - readGeneralDiagnosticsActiveRadioFaultsCommandParams); - result.put( - "readActiveRadioFaultsAttribute", - readGeneralDiagnosticsActiveRadioFaultsAttributeInteractionInfo); - Map readGeneralDiagnosticsActiveNetworkFaultsCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsActiveNetworkFaultsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readActiveNetworkFaultsAttribute( - (ChipClusters.GeneralDiagnosticsCluster.ActiveNetworkFaultsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterActiveNetworkFaultsAttributeCallback(), - readGeneralDiagnosticsActiveNetworkFaultsCommandParams); - result.put( - "readActiveNetworkFaultsAttribute", - readGeneralDiagnosticsActiveNetworkFaultsAttributeInteractionInfo); - Map readGeneralDiagnosticsTestEventTriggersEnabledCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsTestEventTriggersEnabledAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readTestEventTriggersEnabledAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readGeneralDiagnosticsTestEventTriggersEnabledCommandParams); - result.put( - "readTestEventTriggersEnabledAttribute", - readGeneralDiagnosticsTestEventTriggersEnabledAttributeInteractionInfo); - Map readGeneralDiagnosticsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.GeneralDiagnosticsCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterGeneratedCommandListAttributeCallback(), - readGeneralDiagnosticsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readGeneralDiagnosticsGeneratedCommandListAttributeInteractionInfo); - Map readGeneralDiagnosticsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.GeneralDiagnosticsCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterAcceptedCommandListAttributeCallback(), - readGeneralDiagnosticsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readGeneralDiagnosticsAcceptedCommandListAttributeInteractionInfo); - Map readGeneralDiagnosticsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readEventListAttribute( - (ChipClusters.GeneralDiagnosticsCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterEventListAttributeCallback(), - readGeneralDiagnosticsEventListCommandParams); - result.put("readEventListAttribute", readGeneralDiagnosticsEventListAttributeInteractionInfo); - Map readGeneralDiagnosticsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.GeneralDiagnosticsCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGeneralDiagnosticsClusterAttributeListAttributeCallback(), - readGeneralDiagnosticsAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readGeneralDiagnosticsAttributeListAttributeInteractionInfo); - Map readGeneralDiagnosticsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readGeneralDiagnosticsFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readGeneralDiagnosticsFeatureMapAttributeInteractionInfo); - Map readGeneralDiagnosticsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readGeneralDiagnosticsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralDiagnosticsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGeneralDiagnosticsClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readGeneralDiagnosticsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readSoftwareDiagnosticsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readSoftwareDiagnosticsThreadMetricsCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsThreadMetricsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readThreadMetricsAttribute( - (ChipClusters.SoftwareDiagnosticsCluster.ThreadMetricsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSoftwareDiagnosticsClusterThreadMetricsAttributeCallback(), - readSoftwareDiagnosticsThreadMetricsCommandParams); - result.put( - "readThreadMetricsAttribute", readSoftwareDiagnosticsThreadMetricsAttributeInteractionInfo); - Map readSoftwareDiagnosticsCurrentHeapFreeCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsCurrentHeapFreeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readCurrentHeapFreeAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readSoftwareDiagnosticsCurrentHeapFreeCommandParams); - result.put( - "readCurrentHeapFreeAttribute", - readSoftwareDiagnosticsCurrentHeapFreeAttributeInteractionInfo); - Map readSoftwareDiagnosticsCurrentHeapUsedCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsCurrentHeapUsedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readCurrentHeapUsedAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readSoftwareDiagnosticsCurrentHeapUsedCommandParams); - result.put( - "readCurrentHeapUsedAttribute", - readSoftwareDiagnosticsCurrentHeapUsedAttributeInteractionInfo); - Map readSoftwareDiagnosticsCurrentHeapHighWatermarkCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsCurrentHeapHighWatermarkAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readCurrentHeapHighWatermarkAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readSoftwareDiagnosticsCurrentHeapHighWatermarkCommandParams); - result.put( - "readCurrentHeapHighWatermarkAttribute", - readSoftwareDiagnosticsCurrentHeapHighWatermarkAttributeInteractionInfo); - Map readSoftwareDiagnosticsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.SoftwareDiagnosticsCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSoftwareDiagnosticsClusterGeneratedCommandListAttributeCallback(), - readSoftwareDiagnosticsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readSoftwareDiagnosticsGeneratedCommandListAttributeInteractionInfo); - Map readSoftwareDiagnosticsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.SoftwareDiagnosticsCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSoftwareDiagnosticsClusterAcceptedCommandListAttributeCallback(), - readSoftwareDiagnosticsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readSoftwareDiagnosticsAcceptedCommandListAttributeInteractionInfo); - Map readSoftwareDiagnosticsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readEventListAttribute( - (ChipClusters.SoftwareDiagnosticsCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSoftwareDiagnosticsClusterEventListAttributeCallback(), - readSoftwareDiagnosticsEventListCommandParams); - result.put("readEventListAttribute", readSoftwareDiagnosticsEventListAttributeInteractionInfo); - Map readSoftwareDiagnosticsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.SoftwareDiagnosticsCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSoftwareDiagnosticsClusterAttributeListAttributeCallback(), - readSoftwareDiagnosticsAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readSoftwareDiagnosticsAttributeListAttributeInteractionInfo); - Map readSoftwareDiagnosticsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readSoftwareDiagnosticsFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readSoftwareDiagnosticsFeatureMapAttributeInteractionInfo); - Map readSoftwareDiagnosticsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readSoftwareDiagnosticsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SoftwareDiagnosticsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSoftwareDiagnosticsClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readSoftwareDiagnosticsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readThreadNetworkDiagnosticsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readThreadNetworkDiagnosticsChannelCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsChannelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readChannelAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.ChannelAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterChannelAttributeCallback(), - readThreadNetworkDiagnosticsChannelCommandParams); - result.put("readChannelAttribute", readThreadNetworkDiagnosticsChannelAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRoutingRoleCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRoutingRoleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRoutingRoleAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.RoutingRoleAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback(), - readThreadNetworkDiagnosticsRoutingRoleCommandParams); - result.put( - "readRoutingRoleAttribute", - readThreadNetworkDiagnosticsRoutingRoleAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsNetworkNameCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsNetworkNameAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readNetworkNameAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.NetworkNameAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterNetworkNameAttributeCallback(), - readThreadNetworkDiagnosticsNetworkNameCommandParams); - result.put( - "readNetworkNameAttribute", - readThreadNetworkDiagnosticsNetworkNameAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsPanIdCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsPanIdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readPanIdAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.PanIdAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterPanIdAttributeCallback(), - readThreadNetworkDiagnosticsPanIdCommandParams); - result.put("readPanIdAttribute", readThreadNetworkDiagnosticsPanIdAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsExtendedPanIdCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsExtendedPanIdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readExtendedPanIdAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.ExtendedPanIdAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterExtendedPanIdAttributeCallback(), - readThreadNetworkDiagnosticsExtendedPanIdCommandParams); - result.put( - "readExtendedPanIdAttribute", - readThreadNetworkDiagnosticsExtendedPanIdAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsMeshLocalPrefixCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsMeshLocalPrefixAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readMeshLocalPrefixAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .MeshLocalPrefixAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterMeshLocalPrefixAttributeCallback(), - readThreadNetworkDiagnosticsMeshLocalPrefixCommandParams); - result.put( - "readMeshLocalPrefixAttribute", - readThreadNetworkDiagnosticsMeshLocalPrefixAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsOverrunCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsOverrunCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readOverrunCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsOverrunCountCommandParams); - result.put( - "readOverrunCountAttribute", - readThreadNetworkDiagnosticsOverrunCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsNeighborTableCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsNeighborTableAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readNeighborTableAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.NeighborTableAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterNeighborTableAttributeCallback(), - readThreadNetworkDiagnosticsNeighborTableCommandParams); - result.put( - "readNeighborTableAttribute", - readThreadNetworkDiagnosticsNeighborTableAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRouteTableCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRouteTableAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRouteTableAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.RouteTableAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterRouteTableAttributeCallback(), - readThreadNetworkDiagnosticsRouteTableCommandParams); - result.put( - "readRouteTableAttribute", readThreadNetworkDiagnosticsRouteTableAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsPartitionIdCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsPartitionIdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readPartitionIdAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.PartitionIdAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterPartitionIdAttributeCallback(), - readThreadNetworkDiagnosticsPartitionIdCommandParams); - result.put( - "readPartitionIdAttribute", - readThreadNetworkDiagnosticsPartitionIdAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsWeightingCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsWeightingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readWeightingAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.WeightingAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterWeightingAttributeCallback(), - readThreadNetworkDiagnosticsWeightingCommandParams); - result.put( - "readWeightingAttribute", readThreadNetworkDiagnosticsWeightingAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsDataVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsDataVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readDataVersionAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.DataVersionAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterDataVersionAttributeCallback(), - readThreadNetworkDiagnosticsDataVersionCommandParams); - result.put( - "readDataVersionAttribute", - readThreadNetworkDiagnosticsDataVersionAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsStableDataVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsStableDataVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readStableDataVersionAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .StableDataVersionAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterStableDataVersionAttributeCallback(), - readThreadNetworkDiagnosticsStableDataVersionCommandParams); - result.put( - "readStableDataVersionAttribute", - readThreadNetworkDiagnosticsStableDataVersionAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsLeaderRouterIdCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsLeaderRouterIdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readLeaderRouterIdAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.LeaderRouterIdAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterLeaderRouterIdAttributeCallback(), - readThreadNetworkDiagnosticsLeaderRouterIdCommandParams); - result.put( - "readLeaderRouterIdAttribute", - readThreadNetworkDiagnosticsLeaderRouterIdAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsDetachedRoleCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsDetachedRoleCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readDetachedRoleCountAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsDetachedRoleCountCommandParams); - result.put( - "readDetachedRoleCountAttribute", - readThreadNetworkDiagnosticsDetachedRoleCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsChildRoleCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsChildRoleCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readChildRoleCountAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsChildRoleCountCommandParams); - result.put( - "readChildRoleCountAttribute", - readThreadNetworkDiagnosticsChildRoleCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRouterRoleCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRouterRoleCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRouterRoleCountAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsRouterRoleCountCommandParams); - result.put( - "readRouterRoleCountAttribute", - readThreadNetworkDiagnosticsRouterRoleCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsLeaderRoleCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsLeaderRoleCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readLeaderRoleCountAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsLeaderRoleCountCommandParams); - result.put( - "readLeaderRoleCountAttribute", - readThreadNetworkDiagnosticsLeaderRoleCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsAttachAttemptCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsAttachAttemptCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readAttachAttemptCountAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsAttachAttemptCountCommandParams); - result.put( - "readAttachAttemptCountAttribute", - readThreadNetworkDiagnosticsAttachAttemptCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsPartitionIdChangeCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsPartitionIdChangeCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readPartitionIdChangeCountAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsPartitionIdChangeCountCommandParams); - result.put( - "readPartitionIdChangeCountAttribute", - readThreadNetworkDiagnosticsPartitionIdChangeCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountCommandParams = - new LinkedHashMap(); - InteractionInfo - readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readBetterPartitionAttachAttemptCountAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountCommandParams); - result.put( - "readBetterPartitionAttachAttemptCountAttribute", - readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsParentChangeCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsParentChangeCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readParentChangeCountAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsParentChangeCountCommandParams); - result.put( - "readParentChangeCountAttribute", - readThreadNetworkDiagnosticsParentChangeCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxTotalCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxTotalCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxTotalCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxTotalCountCommandParams); - result.put( - "readTxTotalCountAttribute", - readThreadNetworkDiagnosticsTxTotalCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxUnicastCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxUnicastCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxUnicastCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxUnicastCountCommandParams); - result.put( - "readTxUnicastCountAttribute", - readThreadNetworkDiagnosticsTxUnicastCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxBroadcastCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxBroadcastCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxBroadcastCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxBroadcastCountCommandParams); - result.put( - "readTxBroadcastCountAttribute", - readThreadNetworkDiagnosticsTxBroadcastCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxAckRequestedCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxAckRequestedCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxAckRequestedCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxAckRequestedCountCommandParams); - result.put( - "readTxAckRequestedCountAttribute", - readThreadNetworkDiagnosticsTxAckRequestedCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxAckedCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxAckedCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxAckedCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxAckedCountCommandParams); - result.put( - "readTxAckedCountAttribute", - readThreadNetworkDiagnosticsTxAckedCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsTxNoAckRequestedCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxNoAckRequestedCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxNoAckRequestedCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxNoAckRequestedCountCommandParams); - result.put( - "readTxNoAckRequestedCountAttribute", - readThreadNetworkDiagnosticsTxNoAckRequestedCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxDataCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxDataCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxDataCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxDataCountCommandParams); - result.put( - "readTxDataCountAttribute", - readThreadNetworkDiagnosticsTxDataCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxDataPollCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxDataPollCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxDataPollCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxDataPollCountCommandParams); - result.put( - "readTxDataPollCountAttribute", - readThreadNetworkDiagnosticsTxDataPollCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxBeaconCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxBeaconCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxBeaconCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxBeaconCountCommandParams); - result.put( - "readTxBeaconCountAttribute", - readThreadNetworkDiagnosticsTxBeaconCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsTxBeaconRequestCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxBeaconRequestCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxBeaconRequestCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxBeaconRequestCountCommandParams); - result.put( - "readTxBeaconRequestCountAttribute", - readThreadNetworkDiagnosticsTxBeaconRequestCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxOtherCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxOtherCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxOtherCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxOtherCountCommandParams); - result.put( - "readTxOtherCountAttribute", - readThreadNetworkDiagnosticsTxOtherCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxRetryCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxRetryCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxRetryCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxRetryCountCommandParams); - result.put( - "readTxRetryCountAttribute", - readThreadNetworkDiagnosticsTxRetryCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountCommandParams = - new LinkedHashMap(); - InteractionInfo - readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxDirectMaxRetryExpiryCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountCommandParams); - result.put( - "readTxDirectMaxRetryExpiryCountAttribute", - readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountCommandParams = - new LinkedHashMap(); - InteractionInfo - readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxIndirectMaxRetryExpiryCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountCommandParams); - result.put( - "readTxIndirectMaxRetryExpiryCountAttribute", - readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxErrCcaCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxErrCcaCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxErrCcaCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxErrCcaCountCommandParams); - result.put( - "readTxErrCcaCountAttribute", - readThreadNetworkDiagnosticsTxErrCcaCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsTxErrAbortCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxErrAbortCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxErrAbortCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxErrAbortCountCommandParams); - result.put( - "readTxErrAbortCountAttribute", - readThreadNetworkDiagnosticsTxErrAbortCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsTxErrBusyChannelCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsTxErrBusyChannelCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readTxErrBusyChannelCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsTxErrBusyChannelCountCommandParams); - result.put( - "readTxErrBusyChannelCountAttribute", - readThreadNetworkDiagnosticsTxErrBusyChannelCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxTotalCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxTotalCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxTotalCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxTotalCountCommandParams); - result.put( - "readRxTotalCountAttribute", - readThreadNetworkDiagnosticsRxTotalCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxUnicastCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxUnicastCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxUnicastCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxUnicastCountCommandParams); - result.put( - "readRxUnicastCountAttribute", - readThreadNetworkDiagnosticsRxUnicastCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxBroadcastCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxBroadcastCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxBroadcastCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxBroadcastCountCommandParams); - result.put( - "readRxBroadcastCountAttribute", - readThreadNetworkDiagnosticsRxBroadcastCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxDataCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxDataCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxDataCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxDataCountCommandParams); - result.put( - "readRxDataCountAttribute", - readThreadNetworkDiagnosticsRxDataCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxDataPollCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxDataPollCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxDataPollCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxDataPollCountCommandParams); - result.put( - "readRxDataPollCountAttribute", - readThreadNetworkDiagnosticsRxDataPollCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxBeaconCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxBeaconCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxBeaconCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxBeaconCountCommandParams); - result.put( - "readRxBeaconCountAttribute", - readThreadNetworkDiagnosticsRxBeaconCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsRxBeaconRequestCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxBeaconRequestCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxBeaconRequestCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxBeaconRequestCountCommandParams); - result.put( - "readRxBeaconRequestCountAttribute", - readThreadNetworkDiagnosticsRxBeaconRequestCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxOtherCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxOtherCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxOtherCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxOtherCountCommandParams); - result.put( - "readRxOtherCountAttribute", - readThreadNetworkDiagnosticsRxOtherCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsRxAddressFilteredCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxAddressFilteredCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxAddressFilteredCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxAddressFilteredCountCommandParams); - result.put( - "readRxAddressFilteredCountAttribute", - readThreadNetworkDiagnosticsRxAddressFilteredCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsRxDestAddrFilteredCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxDestAddrFilteredCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxDestAddrFilteredCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxDestAddrFilteredCountCommandParams); - result.put( - "readRxDestAddrFilteredCountAttribute", - readThreadNetworkDiagnosticsRxDestAddrFilteredCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxDuplicatedCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxDuplicatedCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxDuplicatedCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxDuplicatedCountCommandParams); - result.put( - "readRxDuplicatedCountAttribute", - readThreadNetworkDiagnosticsRxDuplicatedCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxErrNoFrameCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxErrNoFrameCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxErrNoFrameCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxErrNoFrameCountCommandParams); - result.put( - "readRxErrNoFrameCountAttribute", - readThreadNetworkDiagnosticsRxErrNoFrameCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsRxErrUnknownNeighborCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxErrUnknownNeighborCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxErrUnknownNeighborCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxErrUnknownNeighborCountCommandParams); - result.put( - "readRxErrUnknownNeighborCountAttribute", - readThreadNetworkDiagnosticsRxErrUnknownNeighborCountAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxErrInvalidSrcAddrCountAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountCommandParams); - result.put( - "readRxErrInvalidSrcAddrCountAttribute", - readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxErrSecCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxErrSecCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxErrSecCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxErrSecCountCommandParams); - result.put( - "readRxErrSecCountAttribute", - readThreadNetworkDiagnosticsRxErrSecCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxErrFcsCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxErrFcsCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxErrFcsCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxErrFcsCountCommandParams); - result.put( - "readRxErrFcsCountAttribute", - readThreadNetworkDiagnosticsRxErrFcsCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsRxErrOtherCountCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsRxErrOtherCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readRxErrOtherCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsRxErrOtherCountCommandParams); - result.put( - "readRxErrOtherCountAttribute", - readThreadNetworkDiagnosticsRxErrOtherCountAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsActiveTimestampCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsActiveTimestampAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readActiveTimestampAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .ActiveTimestampAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterActiveTimestampAttributeCallback(), - readThreadNetworkDiagnosticsActiveTimestampCommandParams); - result.put( - "readActiveTimestampAttribute", - readThreadNetworkDiagnosticsActiveTimestampAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsPendingTimestampCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsPendingTimestampAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readPendingTimestampAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .PendingTimestampAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterPendingTimestampAttributeCallback(), - readThreadNetworkDiagnosticsPendingTimestampCommandParams); - result.put( - "readPendingTimestampAttribute", - readThreadNetworkDiagnosticsPendingTimestampAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsDelayCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readDelayAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.DelayAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterDelayAttributeCallback(), - readThreadNetworkDiagnosticsDelayCommandParams); - result.put("readDelayAttribute", readThreadNetworkDiagnosticsDelayAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsChannelPage0MaskCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsChannelPage0MaskAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readChannelPage0MaskAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .ChannelPage0MaskAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterChannelPage0MaskAttributeCallback(), - readThreadNetworkDiagnosticsChannelPage0MaskCommandParams); - result.put( - "readChannelPage0MaskAttribute", - readThreadNetworkDiagnosticsChannelPage0MaskAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsActiveNetworkFaultsListCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readActiveNetworkFaultsListAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .ActiveNetworkFaultsListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterActiveNetworkFaultsListAttributeCallback(), - readThreadNetworkDiagnosticsActiveNetworkFaultsListCommandParams); - result.put( - "readActiveNetworkFaultsListAttribute", - readThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeInteractionInfo); - Map - readThreadNetworkDiagnosticsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterGeneratedCommandListAttributeCallback(), - readThreadNetworkDiagnosticsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readThreadNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterAcceptedCommandListAttributeCallback(), - readThreadNetworkDiagnosticsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readThreadNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readEventListAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterEventListAttributeCallback(), - readThreadNetworkDiagnosticsEventListCommandParams); - result.put( - "readEventListAttribute", readThreadNetworkDiagnosticsEventListAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ThreadNetworkDiagnosticsCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThreadNetworkDiagnosticsClusterAttributeListAttributeCallback(), - readThreadNetworkDiagnosticsAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readThreadNetworkDiagnosticsAttributeListAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThreadNetworkDiagnosticsFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readThreadNetworkDiagnosticsFeatureMapAttributeInteractionInfo); - Map readThreadNetworkDiagnosticsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readThreadNetworkDiagnosticsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThreadNetworkDiagnosticsClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readThreadNetworkDiagnosticsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readWiFiNetworkDiagnosticsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readWiFiNetworkDiagnosticsBssidCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsBssidAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readBssidAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.BssidAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterBssidAttributeCallback(), - readWiFiNetworkDiagnosticsBssidCommandParams); - result.put("readBssidAttribute", readWiFiNetworkDiagnosticsBssidAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsSecurityTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsSecurityTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readSecurityTypeAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.SecurityTypeAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback(), - readWiFiNetworkDiagnosticsSecurityTypeCommandParams); - result.put( - "readSecurityTypeAttribute", - readWiFiNetworkDiagnosticsSecurityTypeAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsWiFiVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsWiFiVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readWiFiVersionAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.WiFiVersionAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterWiFiVersionAttributeCallback(), - readWiFiNetworkDiagnosticsWiFiVersionCommandParams); - result.put( - "readWiFiVersionAttribute", readWiFiNetworkDiagnosticsWiFiVersionAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsChannelNumberCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsChannelNumberAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readChannelNumberAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.ChannelNumberAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterChannelNumberAttributeCallback(), - readWiFiNetworkDiagnosticsChannelNumberCommandParams); - result.put( - "readChannelNumberAttribute", - readWiFiNetworkDiagnosticsChannelNumberAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsRssiCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsRssiAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readRssiAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.RssiAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterRssiAttributeCallback(), - readWiFiNetworkDiagnosticsRssiCommandParams); - result.put("readRssiAttribute", readWiFiNetworkDiagnosticsRssiAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsBeaconLostCountCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsBeaconLostCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readBeaconLostCountAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.BeaconLostCountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterBeaconLostCountAttributeCallback(), - readWiFiNetworkDiagnosticsBeaconLostCountCommandParams); - result.put( - "readBeaconLostCountAttribute", - readWiFiNetworkDiagnosticsBeaconLostCountAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsBeaconRxCountCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsBeaconRxCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readBeaconRxCountAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.BeaconRxCountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterBeaconRxCountAttributeCallback(), - readWiFiNetworkDiagnosticsBeaconRxCountCommandParams); - result.put( - "readBeaconRxCountAttribute", - readWiFiNetworkDiagnosticsBeaconRxCountAttributeInteractionInfo); - Map - readWiFiNetworkDiagnosticsPacketMulticastRxCountCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsPacketMulticastRxCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readPacketMulticastRxCountAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster - .PacketMulticastRxCountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterPacketMulticastRxCountAttributeCallback(), - readWiFiNetworkDiagnosticsPacketMulticastRxCountCommandParams); - result.put( - "readPacketMulticastRxCountAttribute", - readWiFiNetworkDiagnosticsPacketMulticastRxCountAttributeInteractionInfo); - Map - readWiFiNetworkDiagnosticsPacketMulticastTxCountCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsPacketMulticastTxCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readPacketMulticastTxCountAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster - .PacketMulticastTxCountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterPacketMulticastTxCountAttributeCallback(), - readWiFiNetworkDiagnosticsPacketMulticastTxCountCommandParams); - result.put( - "readPacketMulticastTxCountAttribute", - readWiFiNetworkDiagnosticsPacketMulticastTxCountAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsPacketUnicastRxCountCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsPacketUnicastRxCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readPacketUnicastRxCountAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster - .PacketUnicastRxCountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterPacketUnicastRxCountAttributeCallback(), - readWiFiNetworkDiagnosticsPacketUnicastRxCountCommandParams); - result.put( - "readPacketUnicastRxCountAttribute", - readWiFiNetworkDiagnosticsPacketUnicastRxCountAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsPacketUnicastTxCountCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsPacketUnicastTxCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readPacketUnicastTxCountAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster - .PacketUnicastTxCountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterPacketUnicastTxCountAttributeCallback(), - readWiFiNetworkDiagnosticsPacketUnicastTxCountCommandParams); - result.put( - "readPacketUnicastTxCountAttribute", - readWiFiNetworkDiagnosticsPacketUnicastTxCountAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsCurrentMaxRateCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsCurrentMaxRateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readCurrentMaxRateAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.CurrentMaxRateAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterCurrentMaxRateAttributeCallback(), - readWiFiNetworkDiagnosticsCurrentMaxRateCommandParams); - result.put( - "readCurrentMaxRateAttribute", - readWiFiNetworkDiagnosticsCurrentMaxRateAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsOverrunCountCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsOverrunCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readOverrunCountAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.OverrunCountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterOverrunCountAttributeCallback(), - readWiFiNetworkDiagnosticsOverrunCountCommandParams); - result.put( - "readOverrunCountAttribute", - readWiFiNetworkDiagnosticsOverrunCountAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterGeneratedCommandListAttributeCallback(), - readWiFiNetworkDiagnosticsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readWiFiNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterAcceptedCommandListAttributeCallback(), - readWiFiNetworkDiagnosticsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readWiFiNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readEventListAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterEventListAttributeCallback(), - readWiFiNetworkDiagnosticsEventListCommandParams); - result.put( - "readEventListAttribute", readWiFiNetworkDiagnosticsEventListAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.WiFiNetworkDiagnosticsCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWiFiNetworkDiagnosticsClusterAttributeListAttributeCallback(), - readWiFiNetworkDiagnosticsAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readWiFiNetworkDiagnosticsAttributeListAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readWiFiNetworkDiagnosticsFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readWiFiNetworkDiagnosticsFeatureMapAttributeInteractionInfo); - Map readWiFiNetworkDiagnosticsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readWiFiNetworkDiagnosticsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWiFiNetworkDiagnosticsClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readWiFiNetworkDiagnosticsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readEthernetNetworkDiagnosticsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readEthernetNetworkDiagnosticsPHYRateCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsPHYRateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readPHYRateAttribute( - (ChipClusters.EthernetNetworkDiagnosticsCluster.PHYRateAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedEthernetNetworkDiagnosticsClusterPHYRateAttributeCallback(), - readEthernetNetworkDiagnosticsPHYRateCommandParams); - result.put( - "readPHYRateAttribute", readEthernetNetworkDiagnosticsPHYRateAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsFullDuplexCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsFullDuplexAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readFullDuplexAttribute( - (ChipClusters.EthernetNetworkDiagnosticsCluster.FullDuplexAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedEthernetNetworkDiagnosticsClusterFullDuplexAttributeCallback(), - readEthernetNetworkDiagnosticsFullDuplexCommandParams); - result.put( - "readFullDuplexAttribute", - readEthernetNetworkDiagnosticsFullDuplexAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsPacketRxCountCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsPacketRxCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readPacketRxCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readEthernetNetworkDiagnosticsPacketRxCountCommandParams); - result.put( - "readPacketRxCountAttribute", - readEthernetNetworkDiagnosticsPacketRxCountAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsPacketTxCountCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsPacketTxCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readPacketTxCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readEthernetNetworkDiagnosticsPacketTxCountCommandParams); - result.put( - "readPacketTxCountAttribute", - readEthernetNetworkDiagnosticsPacketTxCountAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsTxErrCountCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsTxErrCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readTxErrCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readEthernetNetworkDiagnosticsTxErrCountCommandParams); - result.put( - "readTxErrCountAttribute", - readEthernetNetworkDiagnosticsTxErrCountAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsCollisionCountCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsCollisionCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readCollisionCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readEthernetNetworkDiagnosticsCollisionCountCommandParams); - result.put( - "readCollisionCountAttribute", - readEthernetNetworkDiagnosticsCollisionCountAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsOverrunCountCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsOverrunCountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readOverrunCountAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readEthernetNetworkDiagnosticsOverrunCountCommandParams); - result.put( - "readOverrunCountAttribute", - readEthernetNetworkDiagnosticsOverrunCountAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsCarrierDetectCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsCarrierDetectAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readCarrierDetectAttribute( - (ChipClusters.EthernetNetworkDiagnosticsCluster - .CarrierDetectAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedEthernetNetworkDiagnosticsClusterCarrierDetectAttributeCallback(), - readEthernetNetworkDiagnosticsCarrierDetectCommandParams); - result.put( - "readCarrierDetectAttribute", - readEthernetNetworkDiagnosticsCarrierDetectAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsTimeSinceResetCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsTimeSinceResetAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readTimeSinceResetAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readEthernetNetworkDiagnosticsTimeSinceResetCommandParams); - result.put( - "readTimeSinceResetAttribute", - readEthernetNetworkDiagnosticsTimeSinceResetAttributeInteractionInfo); - Map - readEthernetNetworkDiagnosticsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.EthernetNetworkDiagnosticsCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedEthernetNetworkDiagnosticsClusterGeneratedCommandListAttributeCallback(), - readEthernetNetworkDiagnosticsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readEthernetNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo); - Map - readEthernetNetworkDiagnosticsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.EthernetNetworkDiagnosticsCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedEthernetNetworkDiagnosticsClusterAcceptedCommandListAttributeCallback(), - readEthernetNetworkDiagnosticsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readEthernetNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readEventListAttribute( - (ChipClusters.EthernetNetworkDiagnosticsCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedEthernetNetworkDiagnosticsClusterEventListAttributeCallback(), - readEthernetNetworkDiagnosticsEventListCommandParams); - result.put( - "readEventListAttribute", readEthernetNetworkDiagnosticsEventListAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.EthernetNetworkDiagnosticsCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedEthernetNetworkDiagnosticsClusterAttributeListAttributeCallback(), - readEthernetNetworkDiagnosticsAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readEthernetNetworkDiagnosticsAttributeListAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readEthernetNetworkDiagnosticsFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readEthernetNetworkDiagnosticsFeatureMapAttributeInteractionInfo); - Map readEthernetNetworkDiagnosticsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readEthernetNetworkDiagnosticsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readEthernetNetworkDiagnosticsClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readEthernetNetworkDiagnosticsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readTimeSynchronizationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readTimeSynchronizationUTCTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationUTCTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readUTCTimeAttribute( - (ChipClusters.TimeSynchronizationCluster.UTCTimeAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterUTCTimeAttributeCallback(), - readTimeSynchronizationUTCTimeCommandParams); - result.put("readUTCTimeAttribute", readTimeSynchronizationUTCTimeAttributeInteractionInfo); - Map readTimeSynchronizationGranularityCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationGranularityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readGranularityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeSynchronizationGranularityCommandParams); - result.put( - "readGranularityAttribute", readTimeSynchronizationGranularityAttributeInteractionInfo); - Map readTimeSynchronizationTimeSourceCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationTimeSourceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readTimeSourceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeSynchronizationTimeSourceCommandParams); - result.put( - "readTimeSourceAttribute", readTimeSynchronizationTimeSourceAttributeInteractionInfo); - Map readTimeSynchronizationDefaultNTPCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationDefaultNTPAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readDefaultNTPAttribute( - (ChipClusters.TimeSynchronizationCluster.DefaultNTPAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterDefaultNTPAttributeCallback(), - readTimeSynchronizationDefaultNTPCommandParams); - result.put( - "readDefaultNTPAttribute", readTimeSynchronizationDefaultNTPAttributeInteractionInfo); - Map readTimeSynchronizationTimeZoneCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationTimeZoneAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readTimeZoneAttribute( - (ChipClusters.TimeSynchronizationCluster.TimeZoneAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterTimeZoneAttributeCallback(), - readTimeSynchronizationTimeZoneCommandParams); - result.put("readTimeZoneAttribute", readTimeSynchronizationTimeZoneAttributeInteractionInfo); - Map readTimeSynchronizationDSTOffsetCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationDSTOffsetAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readDSTOffsetAttribute( - (ChipClusters.TimeSynchronizationCluster.DSTOffsetAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterDSTOffsetAttributeCallback(), - readTimeSynchronizationDSTOffsetCommandParams); - result.put("readDSTOffsetAttribute", readTimeSynchronizationDSTOffsetAttributeInteractionInfo); - Map readTimeSynchronizationLocalTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationLocalTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readLocalTimeAttribute( - (ChipClusters.TimeSynchronizationCluster.LocalTimeAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterLocalTimeAttributeCallback(), - readTimeSynchronizationLocalTimeCommandParams); - result.put("readLocalTimeAttribute", readTimeSynchronizationLocalTimeAttributeInteractionInfo); - Map readTimeSynchronizationTimeZoneDatabaseCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationTimeZoneDatabaseAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readTimeZoneDatabaseAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeSynchronizationTimeZoneDatabaseCommandParams); - result.put( - "readTimeZoneDatabaseAttribute", - readTimeSynchronizationTimeZoneDatabaseAttributeInteractionInfo); - Map readTimeSynchronizationNTPServerAvailableCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationNTPServerAvailableAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readNTPServerAvailableAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readTimeSynchronizationNTPServerAvailableCommandParams); - result.put( - "readNTPServerAvailableAttribute", - readTimeSynchronizationNTPServerAvailableAttributeInteractionInfo); - Map readTimeSynchronizationTimeZoneListMaxSizeCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationTimeZoneListMaxSizeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readTimeZoneListMaxSizeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeSynchronizationTimeZoneListMaxSizeCommandParams); - result.put( - "readTimeZoneListMaxSizeAttribute", - readTimeSynchronizationTimeZoneListMaxSizeAttributeInteractionInfo); - Map readTimeSynchronizationDSTOffsetListMaxSizeCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationDSTOffsetListMaxSizeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readDSTOffsetListMaxSizeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeSynchronizationDSTOffsetListMaxSizeCommandParams); - result.put( - "readDSTOffsetListMaxSizeAttribute", - readTimeSynchronizationDSTOffsetListMaxSizeAttributeInteractionInfo); - Map readTimeSynchronizationSupportsDNSResolveCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationSupportsDNSResolveAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readSupportsDNSResolveAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readTimeSynchronizationSupportsDNSResolveCommandParams); - result.put( - "readSupportsDNSResolveAttribute", - readTimeSynchronizationSupportsDNSResolveAttributeInteractionInfo); - Map readTimeSynchronizationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.TimeSynchronizationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterGeneratedCommandListAttributeCallback(), - readTimeSynchronizationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readTimeSynchronizationGeneratedCommandListAttributeInteractionInfo); - Map readTimeSynchronizationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.TimeSynchronizationCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterAcceptedCommandListAttributeCallback(), - readTimeSynchronizationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readTimeSynchronizationAcceptedCommandListAttributeInteractionInfo); - Map readTimeSynchronizationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readEventListAttribute( - (ChipClusters.TimeSynchronizationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterEventListAttributeCallback(), - readTimeSynchronizationEventListCommandParams); - result.put("readEventListAttribute", readTimeSynchronizationEventListAttributeInteractionInfo); - Map readTimeSynchronizationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.TimeSynchronizationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTimeSynchronizationClusterAttributeListAttributeCallback(), - readTimeSynchronizationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readTimeSynchronizationAttributeListAttributeInteractionInfo); - Map readTimeSynchronizationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readTimeSynchronizationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readTimeSynchronizationFeatureMapAttributeInteractionInfo); - Map readTimeSynchronizationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readTimeSynchronizationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeSynchronizationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTimeSynchronizationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readTimeSynchronizationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readBridgedDeviceBasicInformationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readBridgedDeviceBasicInformationVendorNameCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationVendorNameAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readVendorNameAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationVendorNameCommandParams); - result.put( - "readVendorNameAttribute", - readBridgedDeviceBasicInformationVendorNameAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationVendorIDCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationVendorIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readVendorIDAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBridgedDeviceBasicInformationVendorIDCommandParams); - result.put( - "readVendorIDAttribute", readBridgedDeviceBasicInformationVendorIDAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationProductNameCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationProductNameAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readProductNameAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationProductNameCommandParams); - result.put( - "readProductNameAttribute", - readBridgedDeviceBasicInformationProductNameAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationNodeLabelCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readNodeLabelAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationNodeLabelCommandParams); - result.put( - "readNodeLabelAttribute", - readBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationHardwareVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationHardwareVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readHardwareVersionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBridgedDeviceBasicInformationHardwareVersionCommandParams); - result.put( - "readHardwareVersionAttribute", - readBridgedDeviceBasicInformationHardwareVersionAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationHardwareVersionStringCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationHardwareVersionStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readHardwareVersionStringAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationHardwareVersionStringCommandParams); - result.put( - "readHardwareVersionStringAttribute", - readBridgedDeviceBasicInformationHardwareVersionStringAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationSoftwareVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationSoftwareVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readSoftwareVersionAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBridgedDeviceBasicInformationSoftwareVersionCommandParams); - result.put( - "readSoftwareVersionAttribute", - readBridgedDeviceBasicInformationSoftwareVersionAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationSoftwareVersionStringCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationSoftwareVersionStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readSoftwareVersionStringAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationSoftwareVersionStringCommandParams); - result.put( - "readSoftwareVersionStringAttribute", - readBridgedDeviceBasicInformationSoftwareVersionStringAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationManufacturingDateCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationManufacturingDateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readManufacturingDateAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationManufacturingDateCommandParams); - result.put( - "readManufacturingDateAttribute", - readBridgedDeviceBasicInformationManufacturingDateAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationPartNumberCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationPartNumberAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readPartNumberAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationPartNumberCommandParams); - result.put( - "readPartNumberAttribute", - readBridgedDeviceBasicInformationPartNumberAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationProductURLCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationProductURLAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readProductURLAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationProductURLCommandParams); - result.put( - "readProductURLAttribute", - readBridgedDeviceBasicInformationProductURLAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationProductLabelCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationProductLabelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readProductLabelAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationProductLabelCommandParams); - result.put( - "readProductLabelAttribute", - readBridgedDeviceBasicInformationProductLabelAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationSerialNumberCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationSerialNumberAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readSerialNumberAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationSerialNumberCommandParams); - result.put( - "readSerialNumberAttribute", - readBridgedDeviceBasicInformationSerialNumberAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationReachableCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationReachableAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readReachableAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readBridgedDeviceBasicInformationReachableCommandParams); - result.put( - "readReachableAttribute", - readBridgedDeviceBasicInformationReachableAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationUniqueIDCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationUniqueIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readUniqueIDAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBridgedDeviceBasicInformationUniqueIDCommandParams); - result.put( - "readUniqueIDAttribute", readBridgedDeviceBasicInformationUniqueIDAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.BridgedDeviceBasicInformationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBridgedDeviceBasicInformationClusterGeneratedCommandListAttributeCallback(), - readBridgedDeviceBasicInformationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readBridgedDeviceBasicInformationGeneratedCommandListAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.BridgedDeviceBasicInformationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBridgedDeviceBasicInformationClusterAcceptedCommandListAttributeCallback(), - readBridgedDeviceBasicInformationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readBridgedDeviceBasicInformationAcceptedCommandListAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readEventListAttribute( - (ChipClusters.BridgedDeviceBasicInformationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBridgedDeviceBasicInformationClusterEventListAttributeCallback(), - readBridgedDeviceBasicInformationEventListCommandParams); - result.put( - "readEventListAttribute", - readBridgedDeviceBasicInformationEventListAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.BridgedDeviceBasicInformationCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBridgedDeviceBasicInformationClusterAttributeListAttributeCallback(), - readBridgedDeviceBasicInformationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readBridgedDeviceBasicInformationAttributeListAttributeInteractionInfo); - Map readBridgedDeviceBasicInformationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBridgedDeviceBasicInformationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readBridgedDeviceBasicInformationFeatureMapAttributeInteractionInfo); - Map - readBridgedDeviceBasicInformationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBridgedDeviceBasicInformationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBridgedDeviceBasicInformationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readBridgedDeviceBasicInformationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readSwitchInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readSwitchNumberOfPositionsCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchNumberOfPositionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readNumberOfPositionsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSwitchNumberOfPositionsCommandParams); - result.put( - "readNumberOfPositionsAttribute", readSwitchNumberOfPositionsAttributeInteractionInfo); - Map readSwitchCurrentPositionCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchCurrentPositionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readCurrentPositionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSwitchCurrentPositionCommandParams); - result.put("readCurrentPositionAttribute", readSwitchCurrentPositionAttributeInteractionInfo); - Map readSwitchMultiPressMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchMultiPressMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readMultiPressMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSwitchMultiPressMaxCommandParams); - result.put("readMultiPressMaxAttribute", readSwitchMultiPressMaxAttributeInteractionInfo); - Map readSwitchGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.SwitchCluster.GeneratedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSwitchClusterGeneratedCommandListAttributeCallback(), - readSwitchGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readSwitchGeneratedCommandListAttributeInteractionInfo); - Map readSwitchAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.SwitchCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedSwitchClusterAcceptedCommandListAttributeCallback(), - readSwitchAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", readSwitchAcceptedCommandListAttributeInteractionInfo); - Map readSwitchEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readEventListAttribute( - (ChipClusters.SwitchCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedSwitchClusterEventListAttributeCallback(), - readSwitchEventListCommandParams); - result.put("readEventListAttribute", readSwitchEventListAttributeInteractionInfo); - Map readSwitchAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.SwitchCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedSwitchClusterAttributeListAttributeCallback(), - readSwitchAttributeListCommandParams); - result.put("readAttributeListAttribute", readSwitchAttributeListAttributeInteractionInfo); - Map readSwitchFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readSwitchFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readSwitchFeatureMapAttributeInteractionInfo); - Map readSwitchClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readSwitchClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SwitchCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSwitchClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readSwitchClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readAdministratorCommissioningInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readAdministratorCommissioningWindowStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningWindowStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readWindowStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAdministratorCommissioningWindowStatusCommandParams); - result.put( - "readWindowStatusAttribute", - readAdministratorCommissioningWindowStatusAttributeInteractionInfo); - Map readAdministratorCommissioningAdminFabricIndexCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningAdminFabricIndexAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readAdminFabricIndexAttribute( - (ChipClusters.AdministratorCommissioningCluster - .AdminFabricIndexAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAdministratorCommissioningClusterAdminFabricIndexAttributeCallback(), - readAdministratorCommissioningAdminFabricIndexCommandParams); - result.put( - "readAdminFabricIndexAttribute", - readAdministratorCommissioningAdminFabricIndexAttributeInteractionInfo); - Map readAdministratorCommissioningAdminVendorIdCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningAdminVendorIdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readAdminVendorIdAttribute( - (ChipClusters.AdministratorCommissioningCluster - .AdminVendorIdAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAdministratorCommissioningClusterAdminVendorIdAttributeCallback(), - readAdministratorCommissioningAdminVendorIdCommandParams); - result.put( - "readAdminVendorIdAttribute", - readAdministratorCommissioningAdminVendorIdAttributeInteractionInfo); - Map - readAdministratorCommissioningGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.AdministratorCommissioningCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAdministratorCommissioningClusterGeneratedCommandListAttributeCallback(), - readAdministratorCommissioningGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readAdministratorCommissioningGeneratedCommandListAttributeInteractionInfo); - Map - readAdministratorCommissioningAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.AdministratorCommissioningCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAdministratorCommissioningClusterAcceptedCommandListAttributeCallback(), - readAdministratorCommissioningAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readAdministratorCommissioningAcceptedCommandListAttributeInteractionInfo); - Map readAdministratorCommissioningEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readEventListAttribute( - (ChipClusters.AdministratorCommissioningCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAdministratorCommissioningClusterEventListAttributeCallback(), - readAdministratorCommissioningEventListCommandParams); - result.put( - "readEventListAttribute", readAdministratorCommissioningEventListAttributeInteractionInfo); - Map readAdministratorCommissioningAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.AdministratorCommissioningCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAdministratorCommissioningClusterAttributeListAttributeCallback(), - readAdministratorCommissioningAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readAdministratorCommissioningAttributeListAttributeInteractionInfo); - Map readAdministratorCommissioningFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readAdministratorCommissioningFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readAdministratorCommissioningFeatureMapAttributeInteractionInfo); - Map readAdministratorCommissioningClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readAdministratorCommissioningClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AdministratorCommissioningCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAdministratorCommissioningClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readAdministratorCommissioningClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readOperationalCredentialsInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readOperationalCredentialsNOCsCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsNOCsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readNOCsAttribute( - (ChipClusters.OperationalCredentialsCluster.NOCsAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOperationalCredentialsClusterNOCsAttributeCallback(), - readOperationalCredentialsNOCsCommandParams); - result.put("readNOCsAttribute", readOperationalCredentialsNOCsAttributeInteractionInfo); - Map readOperationalCredentialsFabricsCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsFabricsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readFabricsAttribute( - (ChipClusters.OperationalCredentialsCluster.FabricsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOperationalCredentialsClusterFabricsAttributeCallback(), - readOperationalCredentialsFabricsCommandParams); - result.put("readFabricsAttribute", readOperationalCredentialsFabricsAttributeInteractionInfo); - Map readOperationalCredentialsSupportedFabricsCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsSupportedFabricsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readSupportedFabricsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOperationalCredentialsSupportedFabricsCommandParams); - result.put( - "readSupportedFabricsAttribute", - readOperationalCredentialsSupportedFabricsAttributeInteractionInfo); - Map readOperationalCredentialsCommissionedFabricsCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsCommissionedFabricsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readCommissionedFabricsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOperationalCredentialsCommissionedFabricsCommandParams); - result.put( - "readCommissionedFabricsAttribute", - readOperationalCredentialsCommissionedFabricsAttributeInteractionInfo); - Map - readOperationalCredentialsTrustedRootCertificatesCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsTrustedRootCertificatesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readTrustedRootCertificatesAttribute( - (ChipClusters.OperationalCredentialsCluster - .TrustedRootCertificatesAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOperationalCredentialsClusterTrustedRootCertificatesAttributeCallback(), - readOperationalCredentialsTrustedRootCertificatesCommandParams); - result.put( - "readTrustedRootCertificatesAttribute", - readOperationalCredentialsTrustedRootCertificatesAttributeInteractionInfo); - Map readOperationalCredentialsCurrentFabricIndexCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsCurrentFabricIndexAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readCurrentFabricIndexAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOperationalCredentialsCurrentFabricIndexCommandParams); - result.put( - "readCurrentFabricIndexAttribute", - readOperationalCredentialsCurrentFabricIndexAttributeInteractionInfo); - Map readOperationalCredentialsGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.OperationalCredentialsCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOperationalCredentialsClusterGeneratedCommandListAttributeCallback(), - readOperationalCredentialsGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readOperationalCredentialsGeneratedCommandListAttributeInteractionInfo); - Map readOperationalCredentialsAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.OperationalCredentialsCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOperationalCredentialsClusterAcceptedCommandListAttributeCallback(), - readOperationalCredentialsAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readOperationalCredentialsAcceptedCommandListAttributeInteractionInfo); - Map readOperationalCredentialsEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readEventListAttribute( - (ChipClusters.OperationalCredentialsCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOperationalCredentialsClusterEventListAttributeCallback(), - readOperationalCredentialsEventListCommandParams); - result.put( - "readEventListAttribute", readOperationalCredentialsEventListAttributeInteractionInfo); - Map readOperationalCredentialsAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.OperationalCredentialsCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOperationalCredentialsClusterAttributeListAttributeCallback(), - readOperationalCredentialsAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readOperationalCredentialsAttributeListAttributeInteractionInfo); - Map readOperationalCredentialsFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readOperationalCredentialsFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readOperationalCredentialsFeatureMapAttributeInteractionInfo); - Map readOperationalCredentialsClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readOperationalCredentialsClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OperationalCredentialsCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOperationalCredentialsClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readOperationalCredentialsClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readGroupKeyManagementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readGroupKeyManagementGroupKeyMapCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementGroupKeyMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readGroupKeyMapAttribute( - (ChipClusters.GroupKeyManagementCluster.GroupKeyMapAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGroupKeyManagementClusterGroupKeyMapAttributeCallback(), - readGroupKeyManagementGroupKeyMapCommandParams); - result.put( - "readGroupKeyMapAttribute", readGroupKeyManagementGroupKeyMapAttributeInteractionInfo); - Map readGroupKeyManagementGroupTableCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementGroupTableAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readGroupTableAttribute( - (ChipClusters.GroupKeyManagementCluster.GroupTableAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGroupKeyManagementClusterGroupTableAttributeCallback(), - readGroupKeyManagementGroupTableCommandParams); - result.put("readGroupTableAttribute", readGroupKeyManagementGroupTableAttributeInteractionInfo); - Map readGroupKeyManagementMaxGroupsPerFabricCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementMaxGroupsPerFabricAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readMaxGroupsPerFabricAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGroupKeyManagementMaxGroupsPerFabricCommandParams); - result.put( - "readMaxGroupsPerFabricAttribute", - readGroupKeyManagementMaxGroupsPerFabricAttributeInteractionInfo); - Map readGroupKeyManagementMaxGroupKeysPerFabricCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementMaxGroupKeysPerFabricAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readMaxGroupKeysPerFabricAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGroupKeyManagementMaxGroupKeysPerFabricCommandParams); - result.put( - "readMaxGroupKeysPerFabricAttribute", - readGroupKeyManagementMaxGroupKeysPerFabricAttributeInteractionInfo); - Map readGroupKeyManagementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.GroupKeyManagementCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGroupKeyManagementClusterGeneratedCommandListAttributeCallback(), - readGroupKeyManagementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readGroupKeyManagementGeneratedCommandListAttributeInteractionInfo); - Map readGroupKeyManagementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.GroupKeyManagementCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGroupKeyManagementClusterAcceptedCommandListAttributeCallback(), - readGroupKeyManagementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readGroupKeyManagementAcceptedCommandListAttributeInteractionInfo); - Map readGroupKeyManagementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readEventListAttribute( - (ChipClusters.GroupKeyManagementCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGroupKeyManagementClusterEventListAttributeCallback(), - readGroupKeyManagementEventListCommandParams); - result.put("readEventListAttribute", readGroupKeyManagementEventListAttributeInteractionInfo); - Map readGroupKeyManagementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.GroupKeyManagementCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedGroupKeyManagementClusterAttributeListAttributeCallback(), - readGroupKeyManagementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readGroupKeyManagementAttributeListAttributeInteractionInfo); - Map readGroupKeyManagementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readGroupKeyManagementFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readGroupKeyManagementFeatureMapAttributeInteractionInfo); - Map readGroupKeyManagementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readGroupKeyManagementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GroupKeyManagementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readGroupKeyManagementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readGroupKeyManagementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readFixedLabelInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readFixedLabelLabelListCommandParams = - new LinkedHashMap(); - InteractionInfo readFixedLabelLabelListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FixedLabelCluster) cluster) - .readLabelListAttribute( - (ChipClusters.FixedLabelCluster.LabelListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFixedLabelClusterLabelListAttributeCallback(), - readFixedLabelLabelListCommandParams); - result.put("readLabelListAttribute", readFixedLabelLabelListAttributeInteractionInfo); - Map readFixedLabelGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFixedLabelGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FixedLabelCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.FixedLabelCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFixedLabelClusterGeneratedCommandListAttributeCallback(), - readFixedLabelGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readFixedLabelGeneratedCommandListAttributeInteractionInfo); - Map readFixedLabelAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFixedLabelAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FixedLabelCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.FixedLabelCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFixedLabelClusterAcceptedCommandListAttributeCallback(), - readFixedLabelAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readFixedLabelAcceptedCommandListAttributeInteractionInfo); - Map readFixedLabelEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readFixedLabelEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FixedLabelCluster) cluster) - .readEventListAttribute( - (ChipClusters.FixedLabelCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFixedLabelClusterEventListAttributeCallback(), - readFixedLabelEventListCommandParams); - result.put("readEventListAttribute", readFixedLabelEventListAttributeInteractionInfo); - Map readFixedLabelAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readFixedLabelAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FixedLabelCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.FixedLabelCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFixedLabelClusterAttributeListAttributeCallback(), - readFixedLabelAttributeListCommandParams); - result.put("readAttributeListAttribute", readFixedLabelAttributeListAttributeInteractionInfo); - Map readFixedLabelFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readFixedLabelFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FixedLabelCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readFixedLabelFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readFixedLabelFeatureMapAttributeInteractionInfo); - Map readFixedLabelClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readFixedLabelClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FixedLabelCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFixedLabelClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readFixedLabelClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readUserLabelInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readUserLabelLabelListCommandParams = - new LinkedHashMap(); - InteractionInfo readUserLabelLabelListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UserLabelCluster) cluster) - .readLabelListAttribute( - (ChipClusters.UserLabelCluster.LabelListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedUserLabelClusterLabelListAttributeCallback(), - readUserLabelLabelListCommandParams); - result.put("readLabelListAttribute", readUserLabelLabelListAttributeInteractionInfo); - Map readUserLabelGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUserLabelGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UserLabelCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.UserLabelCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUserLabelClusterGeneratedCommandListAttributeCallback(), - readUserLabelGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readUserLabelGeneratedCommandListAttributeInteractionInfo); - Map readUserLabelAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUserLabelAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UserLabelCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.UserLabelCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUserLabelClusterAcceptedCommandListAttributeCallback(), - readUserLabelAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readUserLabelAcceptedCommandListAttributeInteractionInfo); - Map readUserLabelEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readUserLabelEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UserLabelCluster) cluster) - .readEventListAttribute( - (ChipClusters.UserLabelCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedUserLabelClusterEventListAttributeCallback(), - readUserLabelEventListCommandParams); - result.put("readEventListAttribute", readUserLabelEventListAttributeInteractionInfo); - Map readUserLabelAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readUserLabelAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UserLabelCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.UserLabelCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedUserLabelClusterAttributeListAttributeCallback(), - readUserLabelAttributeListCommandParams); - result.put("readAttributeListAttribute", readUserLabelAttributeListAttributeInteractionInfo); - Map readUserLabelFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readUserLabelFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UserLabelCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUserLabelFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readUserLabelFeatureMapAttributeInteractionInfo); - Map readUserLabelClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readUserLabelClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UserLabelCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUserLabelClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readUserLabelClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readProxyConfigurationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readProxyConfigurationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyConfigurationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyConfigurationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ProxyConfigurationCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyConfigurationClusterGeneratedCommandListAttributeCallback(), - readProxyConfigurationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readProxyConfigurationGeneratedCommandListAttributeInteractionInfo); - Map readProxyConfigurationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyConfigurationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyConfigurationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ProxyConfigurationCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyConfigurationClusterAcceptedCommandListAttributeCallback(), - readProxyConfigurationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readProxyConfigurationAcceptedCommandListAttributeInteractionInfo); - Map readProxyConfigurationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyConfigurationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyConfigurationCluster) cluster) - .readEventListAttribute( - (ChipClusters.ProxyConfigurationCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyConfigurationClusterEventListAttributeCallback(), - readProxyConfigurationEventListCommandParams); - result.put("readEventListAttribute", readProxyConfigurationEventListAttributeInteractionInfo); - Map readProxyConfigurationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyConfigurationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyConfigurationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ProxyConfigurationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyConfigurationClusterAttributeListAttributeCallback(), - readProxyConfigurationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readProxyConfigurationAttributeListAttributeInteractionInfo); - Map readProxyConfigurationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyConfigurationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyConfigurationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readProxyConfigurationFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readProxyConfigurationFeatureMapAttributeInteractionInfo); - Map readProxyConfigurationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyConfigurationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyConfigurationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readProxyConfigurationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readProxyConfigurationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readProxyDiscoveryInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readProxyDiscoveryGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyDiscoveryGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyDiscoveryCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ProxyDiscoveryCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyDiscoveryClusterGeneratedCommandListAttributeCallback(), - readProxyDiscoveryGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readProxyDiscoveryGeneratedCommandListAttributeInteractionInfo); - Map readProxyDiscoveryAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyDiscoveryAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyDiscoveryCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ProxyDiscoveryCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyDiscoveryClusterAcceptedCommandListAttributeCallback(), - readProxyDiscoveryAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readProxyDiscoveryAcceptedCommandListAttributeInteractionInfo); - Map readProxyDiscoveryEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyDiscoveryEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyDiscoveryCluster) cluster) - .readEventListAttribute( - (ChipClusters.ProxyDiscoveryCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedProxyDiscoveryClusterEventListAttributeCallback(), - readProxyDiscoveryEventListCommandParams); - result.put("readEventListAttribute", readProxyDiscoveryEventListAttributeInteractionInfo); - Map readProxyDiscoveryAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyDiscoveryAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyDiscoveryCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ProxyDiscoveryCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyDiscoveryClusterAttributeListAttributeCallback(), - readProxyDiscoveryAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readProxyDiscoveryAttributeListAttributeInteractionInfo); - Map readProxyDiscoveryFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyDiscoveryFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyDiscoveryCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readProxyDiscoveryFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readProxyDiscoveryFeatureMapAttributeInteractionInfo); - Map readProxyDiscoveryClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyDiscoveryClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyDiscoveryCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readProxyDiscoveryClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readProxyDiscoveryClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readProxyValidInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readProxyValidGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyValidGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyValidCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ProxyValidCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyValidClusterGeneratedCommandListAttributeCallback(), - readProxyValidGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readProxyValidGeneratedCommandListAttributeInteractionInfo); - Map readProxyValidAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyValidAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyValidCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ProxyValidCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedProxyValidClusterAcceptedCommandListAttributeCallback(), - readProxyValidAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readProxyValidAcceptedCommandListAttributeInteractionInfo); - Map readProxyValidEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyValidEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyValidCluster) cluster) - .readEventListAttribute( - (ChipClusters.ProxyValidCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedProxyValidClusterEventListAttributeCallback(), - readProxyValidEventListCommandParams); - result.put("readEventListAttribute", readProxyValidEventListAttributeInteractionInfo); - Map readProxyValidAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyValidAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyValidCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ProxyValidCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedProxyValidClusterAttributeListAttributeCallback(), - readProxyValidAttributeListCommandParams); - result.put("readAttributeListAttribute", readProxyValidAttributeListAttributeInteractionInfo); - Map readProxyValidFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyValidFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyValidCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readProxyValidFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readProxyValidFeatureMapAttributeInteractionInfo); - Map readProxyValidClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readProxyValidClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ProxyValidCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readProxyValidClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readProxyValidClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readBooleanStateInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readBooleanStateStateValueCommandParams = - new LinkedHashMap(); - InteractionInfo readBooleanStateStateValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BooleanStateCluster) cluster) - .readStateValueAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readBooleanStateStateValueCommandParams); - result.put("readStateValueAttribute", readBooleanStateStateValueAttributeInteractionInfo); - Map readBooleanStateGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBooleanStateGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BooleanStateCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.BooleanStateCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBooleanStateClusterGeneratedCommandListAttributeCallback(), - readBooleanStateGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readBooleanStateGeneratedCommandListAttributeInteractionInfo); - Map readBooleanStateAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBooleanStateAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BooleanStateCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.BooleanStateCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBooleanStateClusterAcceptedCommandListAttributeCallback(), - readBooleanStateAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readBooleanStateAcceptedCommandListAttributeInteractionInfo); - Map readBooleanStateEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readBooleanStateEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BooleanStateCluster) cluster) - .readEventListAttribute( - (ChipClusters.BooleanStateCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanStateClusterEventListAttributeCallback(), - readBooleanStateEventListCommandParams); - result.put("readEventListAttribute", readBooleanStateEventListAttributeInteractionInfo); - Map readBooleanStateAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readBooleanStateAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BooleanStateCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.BooleanStateCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedBooleanStateClusterAttributeListAttributeCallback(), - readBooleanStateAttributeListCommandParams); - result.put("readAttributeListAttribute", readBooleanStateAttributeListAttributeInteractionInfo); - Map readBooleanStateFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readBooleanStateFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BooleanStateCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBooleanStateFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readBooleanStateFeatureMapAttributeInteractionInfo); - Map readBooleanStateClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBooleanStateClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BooleanStateCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBooleanStateClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readBooleanStateClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readIcdManagementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readIcdManagementIdleModeIntervalCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementIdleModeIntervalAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readIdleModeIntervalAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readIcdManagementIdleModeIntervalCommandParams); - result.put( - "readIdleModeIntervalAttribute", readIcdManagementIdleModeIntervalAttributeInteractionInfo); - Map readIcdManagementActiveModeIntervalCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementActiveModeIntervalAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readActiveModeIntervalAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readIcdManagementActiveModeIntervalCommandParams); - result.put( - "readActiveModeIntervalAttribute", - readIcdManagementActiveModeIntervalAttributeInteractionInfo); - Map readIcdManagementActiveModeThresholdCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementActiveModeThresholdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readActiveModeThresholdAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIcdManagementActiveModeThresholdCommandParams); - result.put( - "readActiveModeThresholdAttribute", - readIcdManagementActiveModeThresholdAttributeInteractionInfo); - Map readIcdManagementRegisteredClientsCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementRegisteredClientsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readRegisteredClientsAttribute( - (ChipClusters.IcdManagementCluster.RegisteredClientsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIcdManagementClusterRegisteredClientsAttributeCallback(), - readIcdManagementRegisteredClientsCommandParams); - result.put( - "readRegisteredClientsAttribute", - readIcdManagementRegisteredClientsAttributeInteractionInfo); - Map readIcdManagementICDCounterCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementICDCounterAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readICDCounterAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readIcdManagementICDCounterCommandParams); - result.put("readICDCounterAttribute", readIcdManagementICDCounterAttributeInteractionInfo); - Map readIcdManagementClientsSupportedPerFabricCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementClientsSupportedPerFabricAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readClientsSupportedPerFabricAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIcdManagementClientsSupportedPerFabricCommandParams); - result.put( - "readClientsSupportedPerFabricAttribute", - readIcdManagementClientsSupportedPerFabricAttributeInteractionInfo); - Map readIcdManagementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.IcdManagementCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIcdManagementClusterGeneratedCommandListAttributeCallback(), - readIcdManagementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readIcdManagementGeneratedCommandListAttributeInteractionInfo); - Map readIcdManagementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.IcdManagementCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIcdManagementClusterAcceptedCommandListAttributeCallback(), - readIcdManagementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readIcdManagementAcceptedCommandListAttributeInteractionInfo); - Map readIcdManagementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readEventListAttribute( - (ChipClusters.IcdManagementCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIcdManagementClusterEventListAttributeCallback(), - readIcdManagementEventListCommandParams); - result.put("readEventListAttribute", readIcdManagementEventListAttributeInteractionInfo); - Map readIcdManagementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.IcdManagementCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIcdManagementClusterAttributeListAttributeCallback(), - readIcdManagementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readIcdManagementAttributeListAttributeInteractionInfo); - Map readIcdManagementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readIcdManagementFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readIcdManagementFeatureMapAttributeInteractionInfo); - Map readIcdManagementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readIcdManagementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IcdManagementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIcdManagementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readIcdManagementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readModeSelectInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readModeSelectDescriptionCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectDescriptionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readDescriptionAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readModeSelectDescriptionCommandParams); - result.put("readDescriptionAttribute", readModeSelectDescriptionAttributeInteractionInfo); - Map readModeSelectStandardNamespaceCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectStandardNamespaceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readStandardNamespaceAttribute( - (ChipClusters.ModeSelectCluster.StandardNamespaceAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedModeSelectClusterStandardNamespaceAttributeCallback(), - readModeSelectStandardNamespaceCommandParams); - result.put( - "readStandardNamespaceAttribute", readModeSelectStandardNamespaceAttributeInteractionInfo); - Map readModeSelectSupportedModesCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectSupportedModesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readSupportedModesAttribute( - (ChipClusters.ModeSelectCluster.SupportedModesAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedModeSelectClusterSupportedModesAttributeCallback(), - readModeSelectSupportedModesCommandParams); - result.put("readSupportedModesAttribute", readModeSelectSupportedModesAttributeInteractionInfo); - Map readModeSelectCurrentModeCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectCurrentModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readCurrentModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readModeSelectCurrentModeCommandParams); - result.put("readCurrentModeAttribute", readModeSelectCurrentModeAttributeInteractionInfo); - Map readModeSelectStartUpModeCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectStartUpModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readStartUpModeAttribute( - (ChipClusters.ModeSelectCluster.StartUpModeAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedModeSelectClusterStartUpModeAttributeCallback(), - readModeSelectStartUpModeCommandParams); - result.put("readStartUpModeAttribute", readModeSelectStartUpModeAttributeInteractionInfo); - Map readModeSelectOnModeCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectOnModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readOnModeAttribute( - (ChipClusters.ModeSelectCluster.OnModeAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedModeSelectClusterOnModeAttributeCallback(), - readModeSelectOnModeCommandParams); - result.put("readOnModeAttribute", readModeSelectOnModeAttributeInteractionInfo); - Map readModeSelectGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ModeSelectCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedModeSelectClusterGeneratedCommandListAttributeCallback(), - readModeSelectGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readModeSelectGeneratedCommandListAttributeInteractionInfo); - Map readModeSelectAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ModeSelectCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedModeSelectClusterAcceptedCommandListAttributeCallback(), - readModeSelectAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readModeSelectAcceptedCommandListAttributeInteractionInfo); - Map readModeSelectEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readEventListAttribute( - (ChipClusters.ModeSelectCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedModeSelectClusterEventListAttributeCallback(), - readModeSelectEventListCommandParams); - result.put("readEventListAttribute", readModeSelectEventListAttributeInteractionInfo); - Map readModeSelectAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ModeSelectCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedModeSelectClusterAttributeListAttributeCallback(), - readModeSelectAttributeListCommandParams); - result.put("readAttributeListAttribute", readModeSelectAttributeListAttributeInteractionInfo); - Map readModeSelectFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readModeSelectFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readModeSelectFeatureMapAttributeInteractionInfo); - Map readModeSelectClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readModeSelectClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readModeSelectClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readModeSelectClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readTemperatureControlInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readTemperatureControlTemperatureSetpointCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlTemperatureSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readTemperatureSetpointAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureControlTemperatureSetpointCommandParams); - result.put( - "readTemperatureSetpointAttribute", - readTemperatureControlTemperatureSetpointAttributeInteractionInfo); - Map readTemperatureControlMinTemperatureCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlMinTemperatureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readMinTemperatureAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureControlMinTemperatureCommandParams); - result.put( - "readMinTemperatureAttribute", - readTemperatureControlMinTemperatureAttributeInteractionInfo); - Map readTemperatureControlMaxTemperatureCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlMaxTemperatureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readMaxTemperatureAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureControlMaxTemperatureCommandParams); - result.put( - "readMaxTemperatureAttribute", - readTemperatureControlMaxTemperatureAttributeInteractionInfo); - Map readTemperatureControlStepCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlStepAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readStepAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureControlStepCommandParams); - result.put("readStepAttribute", readTemperatureControlStepAttributeInteractionInfo); - Map - readTemperatureControlCurrentTemperatureLevelIndexCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlCurrentTemperatureLevelIndexAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readCurrentTemperatureLevelIndexAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureControlCurrentTemperatureLevelIndexCommandParams); - result.put( - "readCurrentTemperatureLevelIndexAttribute", - readTemperatureControlCurrentTemperatureLevelIndexAttributeInteractionInfo); - Map - readTemperatureControlSupportedTemperatureLevelsCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlSupportedTemperatureLevelsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readSupportedTemperatureLevelsAttribute( - (ChipClusters.TemperatureControlCluster - .SupportedTemperatureLevelsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureControlClusterSupportedTemperatureLevelsAttributeCallback(), - readTemperatureControlSupportedTemperatureLevelsCommandParams); - result.put( - "readSupportedTemperatureLevelsAttribute", - readTemperatureControlSupportedTemperatureLevelsAttributeInteractionInfo); - Map readTemperatureControlGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.TemperatureControlCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureControlClusterGeneratedCommandListAttributeCallback(), - readTemperatureControlGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readTemperatureControlGeneratedCommandListAttributeInteractionInfo); - Map readTemperatureControlAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.TemperatureControlCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureControlClusterAcceptedCommandListAttributeCallback(), - readTemperatureControlAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readTemperatureControlAcceptedCommandListAttributeInteractionInfo); - Map readTemperatureControlEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readEventListAttribute( - (ChipClusters.TemperatureControlCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureControlClusterEventListAttributeCallback(), - readTemperatureControlEventListCommandParams); - result.put("readEventListAttribute", readTemperatureControlEventListAttributeInteractionInfo); - Map readTemperatureControlAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.TemperatureControlCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureControlClusterAttributeListAttributeCallback(), - readTemperatureControlAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readTemperatureControlAttributeListAttributeInteractionInfo); - Map readTemperatureControlFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readTemperatureControlFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readTemperatureControlFeatureMapAttributeInteractionInfo); - Map readTemperatureControlClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureControlClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureControlCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureControlClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readTemperatureControlClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readRefrigeratorAlarmInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readRefrigeratorAlarmMaskCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmMaskAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readMaskAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readRefrigeratorAlarmMaskCommandParams); - result.put("readMaskAttribute", readRefrigeratorAlarmMaskAttributeInteractionInfo); - Map readRefrigeratorAlarmLatchCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmLatchAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readLatchAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readRefrigeratorAlarmLatchCommandParams); - result.put("readLatchAttribute", readRefrigeratorAlarmLatchAttributeInteractionInfo); - Map readRefrigeratorAlarmStateCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readStateAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readRefrigeratorAlarmStateCommandParams); - result.put("readStateAttribute", readRefrigeratorAlarmStateAttributeInteractionInfo); - Map readRefrigeratorAlarmGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.RefrigeratorAlarmCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRefrigeratorAlarmClusterGeneratedCommandListAttributeCallback(), - readRefrigeratorAlarmGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readRefrigeratorAlarmGeneratedCommandListAttributeInteractionInfo); - Map readRefrigeratorAlarmAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.RefrigeratorAlarmCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRefrigeratorAlarmClusterAcceptedCommandListAttributeCallback(), - readRefrigeratorAlarmAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readRefrigeratorAlarmAcceptedCommandListAttributeInteractionInfo); - Map readRefrigeratorAlarmEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readEventListAttribute( - (ChipClusters.RefrigeratorAlarmCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRefrigeratorAlarmClusterEventListAttributeCallback(), - readRefrigeratorAlarmEventListCommandParams); - result.put("readEventListAttribute", readRefrigeratorAlarmEventListAttributeInteractionInfo); - Map readRefrigeratorAlarmAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.RefrigeratorAlarmCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRefrigeratorAlarmClusterAttributeListAttributeCallback(), - readRefrigeratorAlarmAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readRefrigeratorAlarmAttributeListAttributeInteractionInfo); - Map readRefrigeratorAlarmFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readRefrigeratorAlarmFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readRefrigeratorAlarmFeatureMapAttributeInteractionInfo); - Map readRefrigeratorAlarmClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readRefrigeratorAlarmClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readRefrigeratorAlarmClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readRefrigeratorAlarmClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readAirQualityInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readAirQualityAirQualityCommandParams = - new LinkedHashMap(); - InteractionInfo readAirQualityAirQualityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AirQualityCluster) cluster) - .readAirQualityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAirQualityAirQualityCommandParams); - result.put("readAirQualityAttribute", readAirQualityAirQualityAttributeInteractionInfo); - Map readAirQualityGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAirQualityGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AirQualityCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.AirQualityCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAirQualityClusterGeneratedCommandListAttributeCallback(), - readAirQualityGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readAirQualityGeneratedCommandListAttributeInteractionInfo); - Map readAirQualityAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAirQualityAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AirQualityCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.AirQualityCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAirQualityClusterAcceptedCommandListAttributeCallback(), - readAirQualityAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readAirQualityAcceptedCommandListAttributeInteractionInfo); - Map readAirQualityEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readAirQualityEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AirQualityCluster) cluster) - .readEventListAttribute( - (ChipClusters.AirQualityCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAirQualityClusterEventListAttributeCallback(), - readAirQualityEventListCommandParams); - result.put("readEventListAttribute", readAirQualityEventListAttributeInteractionInfo); - Map readAirQualityAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readAirQualityAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AirQualityCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.AirQualityCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAirQualityClusterAttributeListAttributeCallback(), - readAirQualityAttributeListCommandParams); - result.put("readAttributeListAttribute", readAirQualityAttributeListAttributeInteractionInfo); - Map readAirQualityFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readAirQualityFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AirQualityCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readAirQualityFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readAirQualityFeatureMapAttributeInteractionInfo); - Map readAirQualityClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readAirQualityClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AirQualityCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAirQualityClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readAirQualityClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readSmokeCoAlarmInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readSmokeCoAlarmExpressedStateCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmExpressedStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readExpressedStateAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmExpressedStateCommandParams); - result.put( - "readExpressedStateAttribute", readSmokeCoAlarmExpressedStateAttributeInteractionInfo); - Map readSmokeCoAlarmSmokeStateCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmSmokeStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readSmokeStateAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmSmokeStateCommandParams); - result.put("readSmokeStateAttribute", readSmokeCoAlarmSmokeStateAttributeInteractionInfo); - Map readSmokeCoAlarmCOStateCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmCOStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readCOStateAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmCOStateCommandParams); - result.put("readCOStateAttribute", readSmokeCoAlarmCOStateAttributeInteractionInfo); - Map readSmokeCoAlarmBatteryAlertCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmBatteryAlertAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readBatteryAlertAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmBatteryAlertCommandParams); - result.put("readBatteryAlertAttribute", readSmokeCoAlarmBatteryAlertAttributeInteractionInfo); - Map readSmokeCoAlarmDeviceMutedCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmDeviceMutedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readDeviceMutedAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmDeviceMutedCommandParams); - result.put("readDeviceMutedAttribute", readSmokeCoAlarmDeviceMutedAttributeInteractionInfo); - Map readSmokeCoAlarmTestInProgressCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmTestInProgressAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readTestInProgressAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readSmokeCoAlarmTestInProgressCommandParams); - result.put( - "readTestInProgressAttribute", readSmokeCoAlarmTestInProgressAttributeInteractionInfo); - Map readSmokeCoAlarmHardwareFaultAlertCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmHardwareFaultAlertAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readHardwareFaultAlertAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readSmokeCoAlarmHardwareFaultAlertCommandParams); - result.put( - "readHardwareFaultAlertAttribute", - readSmokeCoAlarmHardwareFaultAlertAttributeInteractionInfo); - Map readSmokeCoAlarmEndOfServiceAlertCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmEndOfServiceAlertAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readEndOfServiceAlertAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmEndOfServiceAlertCommandParams); - result.put( - "readEndOfServiceAlertAttribute", - readSmokeCoAlarmEndOfServiceAlertAttributeInteractionInfo); - Map readSmokeCoAlarmInterconnectSmokeAlarmCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmInterconnectSmokeAlarmAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readInterconnectSmokeAlarmAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmInterconnectSmokeAlarmCommandParams); - result.put( - "readInterconnectSmokeAlarmAttribute", - readSmokeCoAlarmInterconnectSmokeAlarmAttributeInteractionInfo); - Map readSmokeCoAlarmInterconnectCOAlarmCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmInterconnectCOAlarmAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readInterconnectCOAlarmAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmInterconnectCOAlarmCommandParams); - result.put( - "readInterconnectCOAlarmAttribute", - readSmokeCoAlarmInterconnectCOAlarmAttributeInteractionInfo); - Map readSmokeCoAlarmContaminationStateCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmContaminationStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readContaminationStateAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmContaminationStateCommandParams); - result.put( - "readContaminationStateAttribute", - readSmokeCoAlarmContaminationStateAttributeInteractionInfo); - Map readSmokeCoAlarmSensitivityLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmSensitivityLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readSensitivityLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmSensitivityLevelCommandParams); - result.put( - "readSensitivityLevelAttribute", readSmokeCoAlarmSensitivityLevelAttributeInteractionInfo); - Map readSmokeCoAlarmGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.SmokeCoAlarmCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSmokeCoAlarmClusterGeneratedCommandListAttributeCallback(), - readSmokeCoAlarmGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readSmokeCoAlarmGeneratedCommandListAttributeInteractionInfo); - Map readSmokeCoAlarmAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.SmokeCoAlarmCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedSmokeCoAlarmClusterAcceptedCommandListAttributeCallback(), - readSmokeCoAlarmAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readSmokeCoAlarmAcceptedCommandListAttributeInteractionInfo); - Map readSmokeCoAlarmEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readEventListAttribute( - (ChipClusters.SmokeCoAlarmCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedSmokeCoAlarmClusterEventListAttributeCallback(), - readSmokeCoAlarmEventListCommandParams); - result.put("readEventListAttribute", readSmokeCoAlarmEventListAttributeInteractionInfo); - Map readSmokeCoAlarmAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.SmokeCoAlarmCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedSmokeCoAlarmClusterAttributeListAttributeCallback(), - readSmokeCoAlarmAttributeListCommandParams); - result.put("readAttributeListAttribute", readSmokeCoAlarmAttributeListAttributeInteractionInfo); - Map readSmokeCoAlarmFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readSmokeCoAlarmFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readSmokeCoAlarmFeatureMapAttributeInteractionInfo); - Map readSmokeCoAlarmClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readSmokeCoAlarmClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readSmokeCoAlarmClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readSmokeCoAlarmClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readHepaFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readHepaFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readHepaFilterMonitoringConditionCommandParams); - result.put("readConditionAttribute", readHepaFilterMonitoringConditionAttributeInteractionInfo); - Map readHepaFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readHepaFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readHepaFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map readHepaFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readHepaFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readHepaFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map readHepaFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readHepaFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readHepaFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readHepaFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.HepaFilterMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedHepaFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readHepaFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readHepaFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readHepaFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.HepaFilterMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedHepaFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readHepaFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readHepaFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readHepaFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.HepaFilterMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedHepaFilterMonitoringClusterEventListAttributeCallback(), - readHepaFilterMonitoringEventListCommandParams); - result.put("readEventListAttribute", readHepaFilterMonitoringEventListAttributeInteractionInfo); - Map readHepaFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.HepaFilterMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedHepaFilterMonitoringClusterAttributeListAttributeCallback(), - readHepaFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readHepaFilterMonitoringAttributeListAttributeInteractionInfo); - Map readHepaFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readHepaFilterMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readHepaFilterMonitoringFeatureMapAttributeInteractionInfo); - Map readHepaFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readHepaFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.HepaFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readHepaFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readHepaFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readActivatedCarbonFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readActivatedCarbonFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readActivatedCarbonFilterMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", - readActivatedCarbonFilterMonitoringConditionAttributeInteractionInfo); - Map - readActivatedCarbonFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo - readActivatedCarbonFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readActivatedCarbonFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readActivatedCarbonFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map - readActivatedCarbonFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readActivatedCarbonFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readActivatedCarbonFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map - readActivatedCarbonFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readActivatedCarbonFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readActivatedCarbonFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map - readActivatedCarbonFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo - readActivatedCarbonFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ActivatedCarbonFilterMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedActivatedCarbonFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readActivatedCarbonFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readActivatedCarbonFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map - readActivatedCarbonFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ActivatedCarbonFilterMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedActivatedCarbonFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readActivatedCarbonFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readActivatedCarbonFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readActivatedCarbonFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.ActivatedCarbonFilterMonitoringCluster - .EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedActivatedCarbonFilterMonitoringClusterEventListAttributeCallback(), - readActivatedCarbonFilterMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", - readActivatedCarbonFilterMonitoringEventListAttributeInteractionInfo); - Map - readActivatedCarbonFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ActivatedCarbonFilterMonitoringCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedActivatedCarbonFilterMonitoringClusterAttributeListAttributeCallback(), - readActivatedCarbonFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readActivatedCarbonFilterMonitoringAttributeListAttributeInteractionInfo); - Map readActivatedCarbonFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readActivatedCarbonFilterMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readActivatedCarbonFilterMonitoringFeatureMapAttributeInteractionInfo); - Map - readActivatedCarbonFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readActivatedCarbonFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readActivatedCarbonFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readActivatedCarbonFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readCeramicFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readCeramicFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readCeramicFilterMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", readCeramicFilterMonitoringConditionAttributeInteractionInfo); - Map readCeramicFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readCeramicFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readCeramicFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map readCeramicFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readCeramicFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readCeramicFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map readCeramicFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readCeramicFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readCeramicFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readCeramicFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.CeramicFilterMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedCeramicFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readCeramicFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readCeramicFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readCeramicFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.CeramicFilterMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedCeramicFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readCeramicFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readCeramicFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readCeramicFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.CeramicFilterMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedCeramicFilterMonitoringClusterEventListAttributeCallback(), - readCeramicFilterMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", readCeramicFilterMonitoringEventListAttributeInteractionInfo); - Map readCeramicFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.CeramicFilterMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedCeramicFilterMonitoringClusterAttributeListAttributeCallback(), - readCeramicFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readCeramicFilterMonitoringAttributeListAttributeInteractionInfo); - Map readCeramicFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readCeramicFilterMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readCeramicFilterMonitoringFeatureMapAttributeInteractionInfo); - Map readCeramicFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readCeramicFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.CeramicFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readCeramicFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readCeramicFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readElectrostaticFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readElectrostaticFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectrostaticFilterMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", - readElectrostaticFilterMonitoringConditionAttributeInteractionInfo); - Map - readElectrostaticFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectrostaticFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readElectrostaticFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map - readElectrostaticFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectrostaticFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readElectrostaticFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map - readElectrostaticFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readElectrostaticFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readElectrostaticFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map - readElectrostaticFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ElectrostaticFilterMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectrostaticFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readElectrostaticFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readElectrostaticFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map - readElectrostaticFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ElectrostaticFilterMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectrostaticFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readElectrostaticFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readElectrostaticFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readElectrostaticFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.ElectrostaticFilterMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectrostaticFilterMonitoringClusterEventListAttributeCallback(), - readElectrostaticFilterMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", - readElectrostaticFilterMonitoringEventListAttributeInteractionInfo); - Map readElectrostaticFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ElectrostaticFilterMonitoringCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectrostaticFilterMonitoringClusterAttributeListAttributeCallback(), - readElectrostaticFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readElectrostaticFilterMonitoringAttributeListAttributeInteractionInfo); - Map readElectrostaticFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectrostaticFilterMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readElectrostaticFilterMonitoringFeatureMapAttributeInteractionInfo); - Map - readElectrostaticFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readElectrostaticFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectrostaticFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readElectrostaticFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readUvFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readUvFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUvFilterMonitoringConditionCommandParams); - result.put("readConditionAttribute", readUvFilterMonitoringConditionAttributeInteractionInfo); - Map readUvFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUvFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readUvFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map readUvFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUvFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readUvFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map readUvFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readUvFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readUvFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readUvFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.UvFilterMonitoringCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUvFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readUvFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readUvFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readUvFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.UvFilterMonitoringCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUvFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readUvFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readUvFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readUvFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.UvFilterMonitoringCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUvFilterMonitoringClusterEventListAttributeCallback(), - readUvFilterMonitoringEventListCommandParams); - result.put("readEventListAttribute", readUvFilterMonitoringEventListAttributeInteractionInfo); - Map readUvFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.UvFilterMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUvFilterMonitoringClusterAttributeListAttributeCallback(), - readUvFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readUvFilterMonitoringAttributeListAttributeInteractionInfo); - Map readUvFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUvFilterMonitoringFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readUvFilterMonitoringFeatureMapAttributeInteractionInfo); - Map readUvFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readUvFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UvFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUvFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readUvFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readIonizingFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readIonizingFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIonizingFilterMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", readIonizingFilterMonitoringConditionAttributeInteractionInfo); - Map - readIonizingFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIonizingFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readIonizingFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map readIonizingFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIonizingFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readIonizingFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map readIonizingFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readIonizingFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readIonizingFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map - readIonizingFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.IonizingFilterMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIonizingFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readIonizingFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readIonizingFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readIonizingFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.IonizingFilterMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIonizingFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readIonizingFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readIonizingFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readIonizingFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.IonizingFilterMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIonizingFilterMonitoringClusterEventListAttributeCallback(), - readIonizingFilterMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", readIonizingFilterMonitoringEventListAttributeInteractionInfo); - Map readIonizingFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.IonizingFilterMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIonizingFilterMonitoringClusterAttributeListAttributeCallback(), - readIonizingFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readIonizingFilterMonitoringAttributeListAttributeInteractionInfo); - Map readIonizingFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readIonizingFilterMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readIonizingFilterMonitoringFeatureMapAttributeInteractionInfo); - Map readIonizingFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readIonizingFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IonizingFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIonizingFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readIonizingFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readZeoliteFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readZeoliteFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readZeoliteFilterMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", readZeoliteFilterMonitoringConditionAttributeInteractionInfo); - Map readZeoliteFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readZeoliteFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readZeoliteFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map readZeoliteFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readZeoliteFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readZeoliteFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map readZeoliteFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readZeoliteFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readZeoliteFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readZeoliteFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ZeoliteFilterMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedZeoliteFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readZeoliteFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readZeoliteFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readZeoliteFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ZeoliteFilterMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedZeoliteFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readZeoliteFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readZeoliteFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readZeoliteFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.ZeoliteFilterMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedZeoliteFilterMonitoringClusterEventListAttributeCallback(), - readZeoliteFilterMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", readZeoliteFilterMonitoringEventListAttributeInteractionInfo); - Map readZeoliteFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ZeoliteFilterMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedZeoliteFilterMonitoringClusterAttributeListAttributeCallback(), - readZeoliteFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readZeoliteFilterMonitoringAttributeListAttributeInteractionInfo); - Map readZeoliteFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readZeoliteFilterMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readZeoliteFilterMonitoringFeatureMapAttributeInteractionInfo); - Map readZeoliteFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readZeoliteFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readZeoliteFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readZeoliteFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readOzoneFilterMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readOzoneFilterMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOzoneFilterMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", readOzoneFilterMonitoringConditionAttributeInteractionInfo); - Map readOzoneFilterMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOzoneFilterMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readOzoneFilterMonitoringDegradationDirectionAttributeInteractionInfo); - Map readOzoneFilterMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOzoneFilterMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readOzoneFilterMonitoringChangeIndicationAttributeInteractionInfo); - Map readOzoneFilterMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readOzoneFilterMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readOzoneFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readOzoneFilterMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.OzoneFilterMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOzoneFilterMonitoringClusterGeneratedCommandListAttributeCallback(), - readOzoneFilterMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readOzoneFilterMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readOzoneFilterMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.OzoneFilterMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOzoneFilterMonitoringClusterAcceptedCommandListAttributeCallback(), - readOzoneFilterMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readOzoneFilterMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readOzoneFilterMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.OzoneFilterMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOzoneFilterMonitoringClusterEventListAttributeCallback(), - readOzoneFilterMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", readOzoneFilterMonitoringEventListAttributeInteractionInfo); - Map readOzoneFilterMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.OzoneFilterMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOzoneFilterMonitoringClusterAttributeListAttributeCallback(), - readOzoneFilterMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readOzoneFilterMonitoringAttributeListAttributeInteractionInfo); - Map readOzoneFilterMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readOzoneFilterMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readOzoneFilterMonitoringFeatureMapAttributeInteractionInfo); - Map readOzoneFilterMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readOzoneFilterMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OzoneFilterMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOzoneFilterMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readOzoneFilterMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readWaterTankMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readWaterTankMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWaterTankMonitoringConditionCommandParams); - result.put("readConditionAttribute", readWaterTankMonitoringConditionAttributeInteractionInfo); - Map readWaterTankMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWaterTankMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readWaterTankMonitoringDegradationDirectionAttributeInteractionInfo); - Map readWaterTankMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWaterTankMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readWaterTankMonitoringChangeIndicationAttributeInteractionInfo); - Map readWaterTankMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readWaterTankMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readWaterTankMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readWaterTankMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.WaterTankMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWaterTankMonitoringClusterGeneratedCommandListAttributeCallback(), - readWaterTankMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readWaterTankMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readWaterTankMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.WaterTankMonitoringCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWaterTankMonitoringClusterAcceptedCommandListAttributeCallback(), - readWaterTankMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readWaterTankMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readWaterTankMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.WaterTankMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWaterTankMonitoringClusterEventListAttributeCallback(), - readWaterTankMonitoringEventListCommandParams); - result.put("readEventListAttribute", readWaterTankMonitoringEventListAttributeInteractionInfo); - Map readWaterTankMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.WaterTankMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWaterTankMonitoringClusterAttributeListAttributeCallback(), - readWaterTankMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readWaterTankMonitoringAttributeListAttributeInteractionInfo); - Map readWaterTankMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readWaterTankMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readWaterTankMonitoringFeatureMapAttributeInteractionInfo); - Map readWaterTankMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readWaterTankMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WaterTankMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWaterTankMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readWaterTankMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readFuelTankMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readFuelTankMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFuelTankMonitoringConditionCommandParams); - result.put("readConditionAttribute", readFuelTankMonitoringConditionAttributeInteractionInfo); - Map readFuelTankMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFuelTankMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readFuelTankMonitoringDegradationDirectionAttributeInteractionInfo); - Map readFuelTankMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFuelTankMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readFuelTankMonitoringChangeIndicationAttributeInteractionInfo); - Map readFuelTankMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readFuelTankMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readFuelTankMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readFuelTankMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.FuelTankMonitoringCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFuelTankMonitoringClusterGeneratedCommandListAttributeCallback(), - readFuelTankMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readFuelTankMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readFuelTankMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.FuelTankMonitoringCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFuelTankMonitoringClusterAcceptedCommandListAttributeCallback(), - readFuelTankMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readFuelTankMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readFuelTankMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.FuelTankMonitoringCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFuelTankMonitoringClusterEventListAttributeCallback(), - readFuelTankMonitoringEventListCommandParams); - result.put("readEventListAttribute", readFuelTankMonitoringEventListAttributeInteractionInfo); - Map readFuelTankMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.FuelTankMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFuelTankMonitoringClusterAttributeListAttributeCallback(), - readFuelTankMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readFuelTankMonitoringAttributeListAttributeInteractionInfo); - Map readFuelTankMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readFuelTankMonitoringFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readFuelTankMonitoringFeatureMapAttributeInteractionInfo); - Map readFuelTankMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readFuelTankMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FuelTankMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFuelTankMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readFuelTankMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readInkCartridgeMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readInkCartridgeMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readInkCartridgeMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", readInkCartridgeMonitoringConditionAttributeInteractionInfo); - Map readInkCartridgeMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readInkCartridgeMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readInkCartridgeMonitoringDegradationDirectionAttributeInteractionInfo); - Map readInkCartridgeMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readInkCartridgeMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readInkCartridgeMonitoringChangeIndicationAttributeInteractionInfo); - Map readInkCartridgeMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readInkCartridgeMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readInkCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map readInkCartridgeMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.InkCartridgeMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedInkCartridgeMonitoringClusterGeneratedCommandListAttributeCallback(), - readInkCartridgeMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readInkCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readInkCartridgeMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.InkCartridgeMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedInkCartridgeMonitoringClusterAcceptedCommandListAttributeCallback(), - readInkCartridgeMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readInkCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readInkCartridgeMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.InkCartridgeMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedInkCartridgeMonitoringClusterEventListAttributeCallback(), - readInkCartridgeMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", readInkCartridgeMonitoringEventListAttributeInteractionInfo); - Map readInkCartridgeMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.InkCartridgeMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedInkCartridgeMonitoringClusterAttributeListAttributeCallback(), - readInkCartridgeMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readInkCartridgeMonitoringAttributeListAttributeInteractionInfo); - Map readInkCartridgeMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readInkCartridgeMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readInkCartridgeMonitoringFeatureMapAttributeInteractionInfo); - Map readInkCartridgeMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readInkCartridgeMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.InkCartridgeMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readInkCartridgeMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readInkCartridgeMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readTonerCartridgeMonitoringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readTonerCartridgeMonitoringConditionCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringConditionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readConditionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTonerCartridgeMonitoringConditionCommandParams); - result.put( - "readConditionAttribute", readTonerCartridgeMonitoringConditionAttributeInteractionInfo); - Map - readTonerCartridgeMonitoringDegradationDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringDegradationDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readDegradationDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTonerCartridgeMonitoringDegradationDirectionCommandParams); - result.put( - "readDegradationDirectionAttribute", - readTonerCartridgeMonitoringDegradationDirectionAttributeInteractionInfo); - Map readTonerCartridgeMonitoringChangeIndicationCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringChangeIndicationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readChangeIndicationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTonerCartridgeMonitoringChangeIndicationCommandParams); - result.put( - "readChangeIndicationAttribute", - readTonerCartridgeMonitoringChangeIndicationAttributeInteractionInfo); - Map readTonerCartridgeMonitoringInPlaceIndicatorCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readInPlaceIndicatorAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readTonerCartridgeMonitoringInPlaceIndicatorCommandParams); - result.put( - "readInPlaceIndicatorAttribute", - readTonerCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo); - Map - readTonerCartridgeMonitoringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.TonerCartridgeMonitoringCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTonerCartridgeMonitoringClusterGeneratedCommandListAttributeCallback(), - readTonerCartridgeMonitoringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readTonerCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo); - Map readTonerCartridgeMonitoringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.TonerCartridgeMonitoringCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTonerCartridgeMonitoringClusterAcceptedCommandListAttributeCallback(), - readTonerCartridgeMonitoringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readTonerCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo); - Map readTonerCartridgeMonitoringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readEventListAttribute( - (ChipClusters.TonerCartridgeMonitoringCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTonerCartridgeMonitoringClusterEventListAttributeCallback(), - readTonerCartridgeMonitoringEventListCommandParams); - result.put( - "readEventListAttribute", readTonerCartridgeMonitoringEventListAttributeInteractionInfo); - Map readTonerCartridgeMonitoringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.TonerCartridgeMonitoringCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTonerCartridgeMonitoringClusterAttributeListAttributeCallback(), - readTonerCartridgeMonitoringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readTonerCartridgeMonitoringAttributeListAttributeInteractionInfo); - Map readTonerCartridgeMonitoringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readTonerCartridgeMonitoringFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readTonerCartridgeMonitoringFeatureMapAttributeInteractionInfo); - Map readTonerCartridgeMonitoringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readTonerCartridgeMonitoringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TonerCartridgeMonitoringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTonerCartridgeMonitoringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readTonerCartridgeMonitoringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readDoorLockInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readDoorLockLockStateCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockLockStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readLockStateAttribute( - (ChipClusters.DoorLockCluster.LockStateAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDoorLockClusterLockStateAttributeCallback(), - readDoorLockLockStateCommandParams); - result.put("readLockStateAttribute", readDoorLockLockStateAttributeInteractionInfo); - Map readDoorLockLockTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockLockTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readLockTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockLockTypeCommandParams); - result.put("readLockTypeAttribute", readDoorLockLockTypeAttributeInteractionInfo); - Map readDoorLockActuatorEnabledCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockActuatorEnabledAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readActuatorEnabledAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readDoorLockActuatorEnabledCommandParams); - result.put("readActuatorEnabledAttribute", readDoorLockActuatorEnabledAttributeInteractionInfo); - Map readDoorLockDoorStateCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockDoorStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readDoorStateAttribute( - (ChipClusters.DoorLockCluster.DoorStateAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDoorLockClusterDoorStateAttributeCallback(), - readDoorLockDoorStateCommandParams); - result.put("readDoorStateAttribute", readDoorLockDoorStateAttributeInteractionInfo); - Map readDoorLockDoorOpenEventsCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockDoorOpenEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readDoorOpenEventsAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readDoorLockDoorOpenEventsCommandParams); - result.put("readDoorOpenEventsAttribute", readDoorLockDoorOpenEventsAttributeInteractionInfo); - Map readDoorLockDoorClosedEventsCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockDoorClosedEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readDoorClosedEventsAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readDoorLockDoorClosedEventsCommandParams); - result.put( - "readDoorClosedEventsAttribute", readDoorLockDoorClosedEventsAttributeInteractionInfo); - Map readDoorLockOpenPeriodCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockOpenPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readOpenPeriodAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockOpenPeriodCommandParams); - result.put("readOpenPeriodAttribute", readDoorLockOpenPeriodAttributeInteractionInfo); - Map readDoorLockNumberOfTotalUsersSupportedCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockNumberOfTotalUsersSupportedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readNumberOfTotalUsersSupportedAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockNumberOfTotalUsersSupportedCommandParams); - result.put( - "readNumberOfTotalUsersSupportedAttribute", - readDoorLockNumberOfTotalUsersSupportedAttributeInteractionInfo); - Map readDoorLockNumberOfPINUsersSupportedCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockNumberOfPINUsersSupportedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readNumberOfPINUsersSupportedAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockNumberOfPINUsersSupportedCommandParams); - result.put( - "readNumberOfPINUsersSupportedAttribute", - readDoorLockNumberOfPINUsersSupportedAttributeInteractionInfo); - Map readDoorLockNumberOfRFIDUsersSupportedCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockNumberOfRFIDUsersSupportedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readNumberOfRFIDUsersSupportedAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockNumberOfRFIDUsersSupportedCommandParams); - result.put( - "readNumberOfRFIDUsersSupportedAttribute", - readDoorLockNumberOfRFIDUsersSupportedAttributeInteractionInfo); - Map - readDoorLockNumberOfWeekDaySchedulesSupportedPerUserCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockNumberOfWeekDaySchedulesSupportedPerUserAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readNumberOfWeekDaySchedulesSupportedPerUserAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockNumberOfWeekDaySchedulesSupportedPerUserCommandParams); - result.put( - "readNumberOfWeekDaySchedulesSupportedPerUserAttribute", - readDoorLockNumberOfWeekDaySchedulesSupportedPerUserAttributeInteractionInfo); - Map - readDoorLockNumberOfYearDaySchedulesSupportedPerUserCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockNumberOfYearDaySchedulesSupportedPerUserAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readNumberOfYearDaySchedulesSupportedPerUserAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockNumberOfYearDaySchedulesSupportedPerUserCommandParams); - result.put( - "readNumberOfYearDaySchedulesSupportedPerUserAttribute", - readDoorLockNumberOfYearDaySchedulesSupportedPerUserAttributeInteractionInfo); - Map readDoorLockNumberOfHolidaySchedulesSupportedCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockNumberOfHolidaySchedulesSupportedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readNumberOfHolidaySchedulesSupportedAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockNumberOfHolidaySchedulesSupportedCommandParams); - result.put( - "readNumberOfHolidaySchedulesSupportedAttribute", - readDoorLockNumberOfHolidaySchedulesSupportedAttributeInteractionInfo); - Map readDoorLockMaxPINCodeLengthCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockMaxPINCodeLengthAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readMaxPINCodeLengthAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockMaxPINCodeLengthCommandParams); - result.put( - "readMaxPINCodeLengthAttribute", readDoorLockMaxPINCodeLengthAttributeInteractionInfo); - Map readDoorLockMinPINCodeLengthCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockMinPINCodeLengthAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readMinPINCodeLengthAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockMinPINCodeLengthCommandParams); - result.put( - "readMinPINCodeLengthAttribute", readDoorLockMinPINCodeLengthAttributeInteractionInfo); - Map readDoorLockMaxRFIDCodeLengthCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockMaxRFIDCodeLengthAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readMaxRFIDCodeLengthAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockMaxRFIDCodeLengthCommandParams); - result.put( - "readMaxRFIDCodeLengthAttribute", readDoorLockMaxRFIDCodeLengthAttributeInteractionInfo); - Map readDoorLockMinRFIDCodeLengthCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockMinRFIDCodeLengthAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readMinRFIDCodeLengthAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockMinRFIDCodeLengthCommandParams); - result.put( - "readMinRFIDCodeLengthAttribute", readDoorLockMinRFIDCodeLengthAttributeInteractionInfo); - Map readDoorLockCredentialRulesSupportCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockCredentialRulesSupportAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readCredentialRulesSupportAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockCredentialRulesSupportCommandParams); - result.put( - "readCredentialRulesSupportAttribute", - readDoorLockCredentialRulesSupportAttributeInteractionInfo); - Map readDoorLockNumberOfCredentialsSupportedPerUserCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockNumberOfCredentialsSupportedPerUserAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readNumberOfCredentialsSupportedPerUserAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockNumberOfCredentialsSupportedPerUserCommandParams); - result.put( - "readNumberOfCredentialsSupportedPerUserAttribute", - readDoorLockNumberOfCredentialsSupportedPerUserAttributeInteractionInfo); - Map readDoorLockLanguageCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockLanguageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readLanguageAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readDoorLockLanguageCommandParams); - result.put("readLanguageAttribute", readDoorLockLanguageAttributeInteractionInfo); - Map readDoorLockLEDSettingsCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockLEDSettingsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readLEDSettingsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockLEDSettingsCommandParams); - result.put("readLEDSettingsAttribute", readDoorLockLEDSettingsAttributeInteractionInfo); - Map readDoorLockAutoRelockTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockAutoRelockTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readAutoRelockTimeAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readDoorLockAutoRelockTimeCommandParams); - result.put("readAutoRelockTimeAttribute", readDoorLockAutoRelockTimeAttributeInteractionInfo); - Map readDoorLockSoundVolumeCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockSoundVolumeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readSoundVolumeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockSoundVolumeCommandParams); - result.put("readSoundVolumeAttribute", readDoorLockSoundVolumeAttributeInteractionInfo); - Map readDoorLockOperatingModeCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockOperatingModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readOperatingModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockOperatingModeCommandParams); - result.put("readOperatingModeAttribute", readDoorLockOperatingModeAttributeInteractionInfo); - Map readDoorLockSupportedOperatingModesCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockSupportedOperatingModesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readSupportedOperatingModesAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockSupportedOperatingModesCommandParams); - result.put( - "readSupportedOperatingModesAttribute", - readDoorLockSupportedOperatingModesAttributeInteractionInfo); - Map readDoorLockDefaultConfigurationRegisterCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockDefaultConfigurationRegisterAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readDefaultConfigurationRegisterAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockDefaultConfigurationRegisterCommandParams); - result.put( - "readDefaultConfigurationRegisterAttribute", - readDoorLockDefaultConfigurationRegisterAttributeInteractionInfo); - Map readDoorLockEnableLocalProgrammingCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockEnableLocalProgrammingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readEnableLocalProgrammingAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readDoorLockEnableLocalProgrammingCommandParams); - result.put( - "readEnableLocalProgrammingAttribute", - readDoorLockEnableLocalProgrammingAttributeInteractionInfo); - Map readDoorLockEnableOneTouchLockingCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockEnableOneTouchLockingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readEnableOneTouchLockingAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readDoorLockEnableOneTouchLockingCommandParams); - result.put( - "readEnableOneTouchLockingAttribute", - readDoorLockEnableOneTouchLockingAttributeInteractionInfo); - Map readDoorLockEnableInsideStatusLEDCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockEnableInsideStatusLEDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readEnableInsideStatusLEDAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readDoorLockEnableInsideStatusLEDCommandParams); - result.put( - "readEnableInsideStatusLEDAttribute", - readDoorLockEnableInsideStatusLEDAttributeInteractionInfo); - Map readDoorLockEnablePrivacyModeButtonCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockEnablePrivacyModeButtonAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readEnablePrivacyModeButtonAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readDoorLockEnablePrivacyModeButtonCommandParams); - result.put( - "readEnablePrivacyModeButtonAttribute", - readDoorLockEnablePrivacyModeButtonAttributeInteractionInfo); - Map readDoorLockLocalProgrammingFeaturesCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockLocalProgrammingFeaturesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readLocalProgrammingFeaturesAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockLocalProgrammingFeaturesCommandParams); - result.put( - "readLocalProgrammingFeaturesAttribute", - readDoorLockLocalProgrammingFeaturesAttributeInteractionInfo); - Map readDoorLockWrongCodeEntryLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockWrongCodeEntryLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readWrongCodeEntryLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockWrongCodeEntryLimitCommandParams); - result.put( - "readWrongCodeEntryLimitAttribute", - readDoorLockWrongCodeEntryLimitAttributeInteractionInfo); - Map readDoorLockUserCodeTemporaryDisableTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readUserCodeTemporaryDisableTimeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockUserCodeTemporaryDisableTimeCommandParams); - result.put( - "readUserCodeTemporaryDisableTimeAttribute", - readDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo); - Map readDoorLockSendPINOverTheAirCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockSendPINOverTheAirAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readSendPINOverTheAirAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readDoorLockSendPINOverTheAirCommandParams); - result.put( - "readSendPINOverTheAirAttribute", readDoorLockSendPINOverTheAirAttributeInteractionInfo); - Map readDoorLockRequirePINforRemoteOperationCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockRequirePINforRemoteOperationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readRequirePINforRemoteOperationAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readDoorLockRequirePINforRemoteOperationCommandParams); - result.put( - "readRequirePINforRemoteOperationAttribute", - readDoorLockRequirePINforRemoteOperationAttributeInteractionInfo); - Map readDoorLockExpiringUserTimeoutCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockExpiringUserTimeoutAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readExpiringUserTimeoutAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockExpiringUserTimeoutCommandParams); - result.put( - "readExpiringUserTimeoutAttribute", - readDoorLockExpiringUserTimeoutAttributeInteractionInfo); - Map readDoorLockGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.DoorLockCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedDoorLockClusterGeneratedCommandListAttributeCallback(), - readDoorLockGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readDoorLockGeneratedCommandListAttributeInteractionInfo); - Map readDoorLockAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.DoorLockCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedDoorLockClusterAcceptedCommandListAttributeCallback(), - readDoorLockAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readDoorLockAcceptedCommandListAttributeInteractionInfo); - Map readDoorLockEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readEventListAttribute( - (ChipClusters.DoorLockCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDoorLockClusterEventListAttributeCallback(), - readDoorLockEventListCommandParams); - result.put("readEventListAttribute", readDoorLockEventListAttributeInteractionInfo); - Map readDoorLockAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.DoorLockCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDoorLockClusterAttributeListAttributeCallback(), - readDoorLockAttributeListCommandParams); - result.put("readAttributeListAttribute", readDoorLockAttributeListAttributeInteractionInfo); - Map readDoorLockFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readDoorLockFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readDoorLockFeatureMapAttributeInteractionInfo); - Map readDoorLockClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readDoorLockClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readDoorLockClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readDoorLockClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readWindowCoveringInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readWindowCoveringTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringTypeCommandParams); - result.put("readTypeAttribute", readWindowCoveringTypeAttributeInteractionInfo); - Map readWindowCoveringPhysicalClosedLimitLiftCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringPhysicalClosedLimitLiftAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readPhysicalClosedLimitLiftAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringPhysicalClosedLimitLiftCommandParams); - result.put( - "readPhysicalClosedLimitLiftAttribute", - readWindowCoveringPhysicalClosedLimitLiftAttributeInteractionInfo); - Map readWindowCoveringPhysicalClosedLimitTiltCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringPhysicalClosedLimitTiltAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readPhysicalClosedLimitTiltAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringPhysicalClosedLimitTiltCommandParams); - result.put( - "readPhysicalClosedLimitTiltAttribute", - readWindowCoveringPhysicalClosedLimitTiltAttributeInteractionInfo); - Map readWindowCoveringCurrentPositionLiftCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringCurrentPositionLiftAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readCurrentPositionLiftAttribute( - (ChipClusters.WindowCoveringCluster.CurrentPositionLiftAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterCurrentPositionLiftAttributeCallback(), - readWindowCoveringCurrentPositionLiftCommandParams); - result.put( - "readCurrentPositionLiftAttribute", - readWindowCoveringCurrentPositionLiftAttributeInteractionInfo); - Map readWindowCoveringCurrentPositionTiltCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringCurrentPositionTiltAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readCurrentPositionTiltAttribute( - (ChipClusters.WindowCoveringCluster.CurrentPositionTiltAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterCurrentPositionTiltAttributeCallback(), - readWindowCoveringCurrentPositionTiltCommandParams); - result.put( - "readCurrentPositionTiltAttribute", - readWindowCoveringCurrentPositionTiltAttributeInteractionInfo); - Map readWindowCoveringNumberOfActuationsLiftCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringNumberOfActuationsLiftAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readNumberOfActuationsLiftAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringNumberOfActuationsLiftCommandParams); - result.put( - "readNumberOfActuationsLiftAttribute", - readWindowCoveringNumberOfActuationsLiftAttributeInteractionInfo); - Map readWindowCoveringNumberOfActuationsTiltCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringNumberOfActuationsTiltAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readNumberOfActuationsTiltAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringNumberOfActuationsTiltCommandParams); - result.put( - "readNumberOfActuationsTiltAttribute", - readWindowCoveringNumberOfActuationsTiltAttributeInteractionInfo); - Map readWindowCoveringConfigStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringConfigStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readConfigStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringConfigStatusCommandParams); - result.put("readConfigStatusAttribute", readWindowCoveringConfigStatusAttributeInteractionInfo); - Map readWindowCoveringCurrentPositionLiftPercentageCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringCurrentPositionLiftPercentageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readCurrentPositionLiftPercentageAttribute( - (ChipClusters.WindowCoveringCluster - .CurrentPositionLiftPercentageAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterCurrentPositionLiftPercentageAttributeCallback(), - readWindowCoveringCurrentPositionLiftPercentageCommandParams); - result.put( - "readCurrentPositionLiftPercentageAttribute", - readWindowCoveringCurrentPositionLiftPercentageAttributeInteractionInfo); - Map readWindowCoveringCurrentPositionTiltPercentageCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringCurrentPositionTiltPercentageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readCurrentPositionTiltPercentageAttribute( - (ChipClusters.WindowCoveringCluster - .CurrentPositionTiltPercentageAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterCurrentPositionTiltPercentageAttributeCallback(), - readWindowCoveringCurrentPositionTiltPercentageCommandParams); - result.put( - "readCurrentPositionTiltPercentageAttribute", - readWindowCoveringCurrentPositionTiltPercentageAttributeInteractionInfo); - Map readWindowCoveringOperationalStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringOperationalStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readOperationalStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringOperationalStatusCommandParams); - result.put( - "readOperationalStatusAttribute", - readWindowCoveringOperationalStatusAttributeInteractionInfo); - Map - readWindowCoveringTargetPositionLiftPercent100thsCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringTargetPositionLiftPercent100thsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readTargetPositionLiftPercent100thsAttribute( - (ChipClusters.WindowCoveringCluster - .TargetPositionLiftPercent100thsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterTargetPositionLiftPercent100thsAttributeCallback(), - readWindowCoveringTargetPositionLiftPercent100thsCommandParams); - result.put( - "readTargetPositionLiftPercent100thsAttribute", - readWindowCoveringTargetPositionLiftPercent100thsAttributeInteractionInfo); - Map - readWindowCoveringTargetPositionTiltPercent100thsCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringTargetPositionTiltPercent100thsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readTargetPositionTiltPercent100thsAttribute( - (ChipClusters.WindowCoveringCluster - .TargetPositionTiltPercent100thsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterTargetPositionTiltPercent100thsAttributeCallback(), - readWindowCoveringTargetPositionTiltPercent100thsCommandParams); - result.put( - "readTargetPositionTiltPercent100thsAttribute", - readWindowCoveringTargetPositionTiltPercent100thsAttributeInteractionInfo); - Map readWindowCoveringEndProductTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringEndProductTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readEndProductTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringEndProductTypeCommandParams); - result.put( - "readEndProductTypeAttribute", readWindowCoveringEndProductTypeAttributeInteractionInfo); - Map - readWindowCoveringCurrentPositionLiftPercent100thsCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringCurrentPositionLiftPercent100thsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readCurrentPositionLiftPercent100thsAttribute( - (ChipClusters.WindowCoveringCluster - .CurrentPositionLiftPercent100thsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterCurrentPositionLiftPercent100thsAttributeCallback(), - readWindowCoveringCurrentPositionLiftPercent100thsCommandParams); - result.put( - "readCurrentPositionLiftPercent100thsAttribute", - readWindowCoveringCurrentPositionLiftPercent100thsAttributeInteractionInfo); - Map - readWindowCoveringCurrentPositionTiltPercent100thsCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringCurrentPositionTiltPercent100thsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readCurrentPositionTiltPercent100thsAttribute( - (ChipClusters.WindowCoveringCluster - .CurrentPositionTiltPercent100thsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterCurrentPositionTiltPercent100thsAttributeCallback(), - readWindowCoveringCurrentPositionTiltPercent100thsCommandParams); - result.put( - "readCurrentPositionTiltPercent100thsAttribute", - readWindowCoveringCurrentPositionTiltPercent100thsAttributeInteractionInfo); - Map readWindowCoveringInstalledOpenLimitLiftCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringInstalledOpenLimitLiftAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readInstalledOpenLimitLiftAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringInstalledOpenLimitLiftCommandParams); - result.put( - "readInstalledOpenLimitLiftAttribute", - readWindowCoveringInstalledOpenLimitLiftAttributeInteractionInfo); - Map readWindowCoveringInstalledClosedLimitLiftCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringInstalledClosedLimitLiftAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readInstalledClosedLimitLiftAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringInstalledClosedLimitLiftCommandParams); - result.put( - "readInstalledClosedLimitLiftAttribute", - readWindowCoveringInstalledClosedLimitLiftAttributeInteractionInfo); - Map readWindowCoveringInstalledOpenLimitTiltCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringInstalledOpenLimitTiltAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readInstalledOpenLimitTiltAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringInstalledOpenLimitTiltCommandParams); - result.put( - "readInstalledOpenLimitTiltAttribute", - readWindowCoveringInstalledOpenLimitTiltAttributeInteractionInfo); - Map readWindowCoveringInstalledClosedLimitTiltCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringInstalledClosedLimitTiltAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readInstalledClosedLimitTiltAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringInstalledClosedLimitTiltCommandParams); - result.put( - "readInstalledClosedLimitTiltAttribute", - readWindowCoveringInstalledClosedLimitTiltAttributeInteractionInfo); - Map readWindowCoveringModeCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringModeCommandParams); - result.put("readModeAttribute", readWindowCoveringModeAttributeInteractionInfo); - Map readWindowCoveringSafetyStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringSafetyStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readSafetyStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringSafetyStatusCommandParams); - result.put("readSafetyStatusAttribute", readWindowCoveringSafetyStatusAttributeInteractionInfo); - Map readWindowCoveringGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.WindowCoveringCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterGeneratedCommandListAttributeCallback(), - readWindowCoveringGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readWindowCoveringGeneratedCommandListAttributeInteractionInfo); - Map readWindowCoveringAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.WindowCoveringCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterAcceptedCommandListAttributeCallback(), - readWindowCoveringAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readWindowCoveringAcceptedCommandListAttributeInteractionInfo); - Map readWindowCoveringEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readEventListAttribute( - (ChipClusters.WindowCoveringCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterEventListAttributeCallback(), - readWindowCoveringEventListCommandParams); - result.put("readEventListAttribute", readWindowCoveringEventListAttributeInteractionInfo); - Map readWindowCoveringAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.WindowCoveringCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWindowCoveringClusterAttributeListAttributeCallback(), - readWindowCoveringAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readWindowCoveringAttributeListAttributeInteractionInfo); - Map readWindowCoveringFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readWindowCoveringFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readWindowCoveringFeatureMapAttributeInteractionInfo); - Map readWindowCoveringClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readWindowCoveringClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWindowCoveringClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readWindowCoveringClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readBarrierControlInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readBarrierControlBarrierMovingStateCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierMovingStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierMovingStateAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierMovingStateCommandParams); - result.put( - "readBarrierMovingStateAttribute", - readBarrierControlBarrierMovingStateAttributeInteractionInfo); - Map readBarrierControlBarrierSafetyStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierSafetyStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierSafetyStatusAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierSafetyStatusCommandParams); - result.put( - "readBarrierSafetyStatusAttribute", - readBarrierControlBarrierSafetyStatusAttributeInteractionInfo); - Map readBarrierControlBarrierCapabilitiesCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierCapabilitiesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierCapabilitiesAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierCapabilitiesCommandParams); - result.put( - "readBarrierCapabilitiesAttribute", - readBarrierControlBarrierCapabilitiesAttributeInteractionInfo); - Map readBarrierControlBarrierOpenEventsCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierOpenEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierOpenEventsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierOpenEventsCommandParams); - result.put( - "readBarrierOpenEventsAttribute", - readBarrierControlBarrierOpenEventsAttributeInteractionInfo); - Map readBarrierControlBarrierCloseEventsCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierCloseEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierCloseEventsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierCloseEventsCommandParams); - result.put( - "readBarrierCloseEventsAttribute", - readBarrierControlBarrierCloseEventsAttributeInteractionInfo); - Map readBarrierControlBarrierCommandOpenEventsCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierCommandOpenEventsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierCommandOpenEventsCommandParams); - result.put( - "readBarrierCommandOpenEventsAttribute", - readBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo); - Map readBarrierControlBarrierCommandCloseEventsCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierCommandCloseEventsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierCommandCloseEventsCommandParams); - result.put( - "readBarrierCommandCloseEventsAttribute", - readBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo); - Map readBarrierControlBarrierOpenPeriodCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierOpenPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierOpenPeriodAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierOpenPeriodCommandParams); - result.put( - "readBarrierOpenPeriodAttribute", - readBarrierControlBarrierOpenPeriodAttributeInteractionInfo); - Map readBarrierControlBarrierClosePeriodCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierClosePeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierClosePeriodAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierClosePeriodCommandParams); - result.put( - "readBarrierClosePeriodAttribute", - readBarrierControlBarrierClosePeriodAttributeInteractionInfo); - Map readBarrierControlBarrierPositionCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlBarrierPositionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readBarrierPositionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlBarrierPositionCommandParams); - result.put( - "readBarrierPositionAttribute", readBarrierControlBarrierPositionAttributeInteractionInfo); - Map readBarrierControlGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.BarrierControlCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBarrierControlClusterGeneratedCommandListAttributeCallback(), - readBarrierControlGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readBarrierControlGeneratedCommandListAttributeInteractionInfo); - Map readBarrierControlAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.BarrierControlCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBarrierControlClusterAcceptedCommandListAttributeCallback(), - readBarrierControlAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readBarrierControlAcceptedCommandListAttributeInteractionInfo); - Map readBarrierControlEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readEventListAttribute( - (ChipClusters.BarrierControlCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBarrierControlClusterEventListAttributeCallback(), - readBarrierControlEventListCommandParams); - result.put("readEventListAttribute", readBarrierControlEventListAttributeInteractionInfo); - Map readBarrierControlAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.BarrierControlCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBarrierControlClusterAttributeListAttributeCallback(), - readBarrierControlAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readBarrierControlAttributeListAttributeInteractionInfo); - Map readBarrierControlFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBarrierControlFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readBarrierControlFeatureMapAttributeInteractionInfo); - Map readBarrierControlClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBarrierControlClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBarrierControlClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readBarrierControlClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readPumpConfigurationAndControlInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readPumpConfigurationAndControlMaxPressureCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxPressureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxPressureAttribute( - (ChipClusters.PumpConfigurationAndControlCluster.MaxPressureAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxPressureAttributeCallback(), - readPumpConfigurationAndControlMaxPressureCommandParams); - result.put( - "readMaxPressureAttribute", - readPumpConfigurationAndControlMaxPressureAttributeInteractionInfo); - Map readPumpConfigurationAndControlMaxSpeedCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxSpeedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxSpeedAttribute( - (ChipClusters.PumpConfigurationAndControlCluster.MaxSpeedAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxSpeedAttributeCallback(), - readPumpConfigurationAndControlMaxSpeedCommandParams); - result.put( - "readMaxSpeedAttribute", readPumpConfigurationAndControlMaxSpeedAttributeInteractionInfo); - Map readPumpConfigurationAndControlMaxFlowCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxFlowAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxFlowAttribute( - (ChipClusters.PumpConfigurationAndControlCluster.MaxFlowAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxFlowAttributeCallback(), - readPumpConfigurationAndControlMaxFlowCommandParams); - result.put( - "readMaxFlowAttribute", readPumpConfigurationAndControlMaxFlowAttributeInteractionInfo); - Map readPumpConfigurationAndControlMinConstPressureCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMinConstPressureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMinConstPressureAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MinConstPressureAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMinConstPressureAttributeCallback(), - readPumpConfigurationAndControlMinConstPressureCommandParams); - result.put( - "readMinConstPressureAttribute", - readPumpConfigurationAndControlMinConstPressureAttributeInteractionInfo); - Map readPumpConfigurationAndControlMaxConstPressureCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxConstPressureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxConstPressureAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MaxConstPressureAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxConstPressureAttributeCallback(), - readPumpConfigurationAndControlMaxConstPressureCommandParams); - result.put( - "readMaxConstPressureAttribute", - readPumpConfigurationAndControlMaxConstPressureAttributeInteractionInfo); - Map readPumpConfigurationAndControlMinCompPressureCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMinCompPressureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMinCompPressureAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MinCompPressureAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMinCompPressureAttributeCallback(), - readPumpConfigurationAndControlMinCompPressureCommandParams); - result.put( - "readMinCompPressureAttribute", - readPumpConfigurationAndControlMinCompPressureAttributeInteractionInfo); - Map readPumpConfigurationAndControlMaxCompPressureCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxCompPressureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxCompPressureAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MaxCompPressureAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxCompPressureAttributeCallback(), - readPumpConfigurationAndControlMaxCompPressureCommandParams); - result.put( - "readMaxCompPressureAttribute", - readPumpConfigurationAndControlMaxCompPressureAttributeInteractionInfo); - Map readPumpConfigurationAndControlMinConstSpeedCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMinConstSpeedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMinConstSpeedAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MinConstSpeedAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMinConstSpeedAttributeCallback(), - readPumpConfigurationAndControlMinConstSpeedCommandParams); - result.put( - "readMinConstSpeedAttribute", - readPumpConfigurationAndControlMinConstSpeedAttributeInteractionInfo); - Map readPumpConfigurationAndControlMaxConstSpeedCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxConstSpeedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxConstSpeedAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MaxConstSpeedAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxConstSpeedAttributeCallback(), - readPumpConfigurationAndControlMaxConstSpeedCommandParams); - result.put( - "readMaxConstSpeedAttribute", - readPumpConfigurationAndControlMaxConstSpeedAttributeInteractionInfo); - Map readPumpConfigurationAndControlMinConstFlowCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMinConstFlowAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMinConstFlowAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MinConstFlowAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMinConstFlowAttributeCallback(), - readPumpConfigurationAndControlMinConstFlowCommandParams); - result.put( - "readMinConstFlowAttribute", - readPumpConfigurationAndControlMinConstFlowAttributeInteractionInfo); - Map readPumpConfigurationAndControlMaxConstFlowCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxConstFlowAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxConstFlowAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MaxConstFlowAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxConstFlowAttributeCallback(), - readPumpConfigurationAndControlMaxConstFlowCommandParams); - result.put( - "readMaxConstFlowAttribute", - readPumpConfigurationAndControlMaxConstFlowAttributeInteractionInfo); - Map readPumpConfigurationAndControlMinConstTempCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMinConstTempAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMinConstTempAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MinConstTempAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMinConstTempAttributeCallback(), - readPumpConfigurationAndControlMinConstTempCommandParams); - result.put( - "readMinConstTempAttribute", - readPumpConfigurationAndControlMinConstTempAttributeInteractionInfo); - Map readPumpConfigurationAndControlMaxConstTempCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlMaxConstTempAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readMaxConstTempAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .MaxConstTempAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterMaxConstTempAttributeCallback(), - readPumpConfigurationAndControlMaxConstTempCommandParams); - result.put( - "readMaxConstTempAttribute", - readPumpConfigurationAndControlMaxConstTempAttributeInteractionInfo); - Map readPumpConfigurationAndControlPumpStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlPumpStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readPumpStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPumpConfigurationAndControlPumpStatusCommandParams); - result.put( - "readPumpStatusAttribute", - readPumpConfigurationAndControlPumpStatusAttributeInteractionInfo); - Map - readPumpConfigurationAndControlEffectiveOperationModeCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlEffectiveOperationModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readEffectiveOperationModeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPumpConfigurationAndControlEffectiveOperationModeCommandParams); - result.put( - "readEffectiveOperationModeAttribute", - readPumpConfigurationAndControlEffectiveOperationModeAttributeInteractionInfo); - Map - readPumpConfigurationAndControlEffectiveControlModeCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlEffectiveControlModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readEffectiveControlModeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPumpConfigurationAndControlEffectiveControlModeCommandParams); - result.put( - "readEffectiveControlModeAttribute", - readPumpConfigurationAndControlEffectiveControlModeAttributeInteractionInfo); - Map readPumpConfigurationAndControlCapacityCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlCapacityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readCapacityAttribute( - (ChipClusters.PumpConfigurationAndControlCluster.CapacityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterCapacityAttributeCallback(), - readPumpConfigurationAndControlCapacityCommandParams); - result.put( - "readCapacityAttribute", readPumpConfigurationAndControlCapacityAttributeInteractionInfo); - Map readPumpConfigurationAndControlSpeedCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlSpeedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readSpeedAttribute( - (ChipClusters.PumpConfigurationAndControlCluster.SpeedAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterSpeedAttributeCallback(), - readPumpConfigurationAndControlSpeedCommandParams); - result.put("readSpeedAttribute", readPumpConfigurationAndControlSpeedAttributeInteractionInfo); - Map - readPumpConfigurationAndControlLifetimeRunningHoursCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readLifetimeRunningHoursAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .LifetimeRunningHoursAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterLifetimeRunningHoursAttributeCallback(), - readPumpConfigurationAndControlLifetimeRunningHoursCommandParams); - result.put( - "readLifetimeRunningHoursAttribute", - readPumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo); - Map readPumpConfigurationAndControlPowerCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlPowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readPowerAttribute( - (ChipClusters.PumpConfigurationAndControlCluster.PowerAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterPowerAttributeCallback(), - readPumpConfigurationAndControlPowerCommandParams); - result.put("readPowerAttribute", readPumpConfigurationAndControlPowerAttributeInteractionInfo); - Map - readPumpConfigurationAndControlLifetimeEnergyConsumedCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readLifetimeEnergyConsumedAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .LifetimeEnergyConsumedAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterLifetimeEnergyConsumedAttributeCallback(), - readPumpConfigurationAndControlLifetimeEnergyConsumedCommandParams); - result.put( - "readLifetimeEnergyConsumedAttribute", - readPumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo); - Map readPumpConfigurationAndControlOperationModeCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlOperationModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readOperationModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPumpConfigurationAndControlOperationModeCommandParams); - result.put( - "readOperationModeAttribute", - readPumpConfigurationAndControlOperationModeAttributeInteractionInfo); - Map readPumpConfigurationAndControlControlModeCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlControlModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readControlModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPumpConfigurationAndControlControlModeCommandParams); - result.put( - "readControlModeAttribute", - readPumpConfigurationAndControlControlModeAttributeInteractionInfo); - Map - readPumpConfigurationAndControlGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterGeneratedCommandListAttributeCallback(), - readPumpConfigurationAndControlGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readPumpConfigurationAndControlGeneratedCommandListAttributeInteractionInfo); - Map - readPumpConfigurationAndControlAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterAcceptedCommandListAttributeCallback(), - readPumpConfigurationAndControlAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readPumpConfigurationAndControlAcceptedCommandListAttributeInteractionInfo); - Map readPumpConfigurationAndControlEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readEventListAttribute( - (ChipClusters.PumpConfigurationAndControlCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterEventListAttributeCallback(), - readPumpConfigurationAndControlEventListCommandParams); - result.put( - "readEventListAttribute", readPumpConfigurationAndControlEventListAttributeInteractionInfo); - Map readPumpConfigurationAndControlAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.PumpConfigurationAndControlCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPumpConfigurationAndControlClusterAttributeListAttributeCallback(), - readPumpConfigurationAndControlAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readPumpConfigurationAndControlAttributeListAttributeInteractionInfo); - Map readPumpConfigurationAndControlFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPumpConfigurationAndControlFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readPumpConfigurationAndControlFeatureMapAttributeInteractionInfo); - Map readPumpConfigurationAndControlClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readPumpConfigurationAndControlClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPumpConfigurationAndControlClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readPumpConfigurationAndControlClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readThermostatInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readThermostatLocalTemperatureCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatLocalTemperatureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readLocalTemperatureAttribute( - (ChipClusters.ThermostatCluster.LocalTemperatureAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterLocalTemperatureAttributeCallback(), - readThermostatLocalTemperatureCommandParams); - result.put( - "readLocalTemperatureAttribute", readThermostatLocalTemperatureAttributeInteractionInfo); - Map readThermostatOutdoorTemperatureCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatOutdoorTemperatureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readOutdoorTemperatureAttribute( - (ChipClusters.ThermostatCluster.OutdoorTemperatureAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterOutdoorTemperatureAttributeCallback(), - readThermostatOutdoorTemperatureCommandParams); - result.put( - "readOutdoorTemperatureAttribute", - readThermostatOutdoorTemperatureAttributeInteractionInfo); - Map readThermostatOccupancyCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatOccupancyAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readOccupancyAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatOccupancyCommandParams); - result.put("readOccupancyAttribute", readThermostatOccupancyAttributeInteractionInfo); - Map readThermostatAbsMinHeatSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatAbsMinHeatSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readAbsMinHeatSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatAbsMinHeatSetpointLimitCommandParams); - result.put( - "readAbsMinHeatSetpointLimitAttribute", - readThermostatAbsMinHeatSetpointLimitAttributeInteractionInfo); - Map readThermostatAbsMaxHeatSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatAbsMaxHeatSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readAbsMaxHeatSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatAbsMaxHeatSetpointLimitCommandParams); - result.put( - "readAbsMaxHeatSetpointLimitAttribute", - readThermostatAbsMaxHeatSetpointLimitAttributeInteractionInfo); - Map readThermostatAbsMinCoolSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatAbsMinCoolSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readAbsMinCoolSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatAbsMinCoolSetpointLimitCommandParams); - result.put( - "readAbsMinCoolSetpointLimitAttribute", - readThermostatAbsMinCoolSetpointLimitAttributeInteractionInfo); - Map readThermostatAbsMaxCoolSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatAbsMaxCoolSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readAbsMaxCoolSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatAbsMaxCoolSetpointLimitCommandParams); - result.put( - "readAbsMaxCoolSetpointLimitAttribute", - readThermostatAbsMaxCoolSetpointLimitAttributeInteractionInfo); - Map readThermostatPICoolingDemandCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatPICoolingDemandAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readPICoolingDemandAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatPICoolingDemandCommandParams); - result.put( - "readPICoolingDemandAttribute", readThermostatPICoolingDemandAttributeInteractionInfo); - Map readThermostatPIHeatingDemandCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatPIHeatingDemandAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readPIHeatingDemandAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatPIHeatingDemandCommandParams); - result.put( - "readPIHeatingDemandAttribute", readThermostatPIHeatingDemandAttributeInteractionInfo); - Map readThermostatHVACSystemTypeConfigurationCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatHVACSystemTypeConfigurationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readHVACSystemTypeConfigurationAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatHVACSystemTypeConfigurationCommandParams); - result.put( - "readHVACSystemTypeConfigurationAttribute", - readThermostatHVACSystemTypeConfigurationAttributeInteractionInfo); - Map readThermostatLocalTemperatureCalibrationCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatLocalTemperatureCalibrationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readLocalTemperatureCalibrationAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatLocalTemperatureCalibrationCommandParams); - result.put( - "readLocalTemperatureCalibrationAttribute", - readThermostatLocalTemperatureCalibrationAttributeInteractionInfo); - Map readThermostatOccupiedCoolingSetpointCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatOccupiedCoolingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readOccupiedCoolingSetpointAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatOccupiedCoolingSetpointCommandParams); - result.put( - "readOccupiedCoolingSetpointAttribute", - readThermostatOccupiedCoolingSetpointAttributeInteractionInfo); - Map readThermostatOccupiedHeatingSetpointCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatOccupiedHeatingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readOccupiedHeatingSetpointAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatOccupiedHeatingSetpointCommandParams); - result.put( - "readOccupiedHeatingSetpointAttribute", - readThermostatOccupiedHeatingSetpointAttributeInteractionInfo); - Map readThermostatUnoccupiedCoolingSetpointCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readUnoccupiedCoolingSetpointAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatUnoccupiedCoolingSetpointCommandParams); - result.put( - "readUnoccupiedCoolingSetpointAttribute", - readThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo); - Map readThermostatUnoccupiedHeatingSetpointCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readUnoccupiedHeatingSetpointAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatUnoccupiedHeatingSetpointCommandParams); - result.put( - "readUnoccupiedHeatingSetpointAttribute", - readThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo); - Map readThermostatMinHeatSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatMinHeatSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readMinHeatSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatMinHeatSetpointLimitCommandParams); - result.put( - "readMinHeatSetpointLimitAttribute", - readThermostatMinHeatSetpointLimitAttributeInteractionInfo); - Map readThermostatMaxHeatSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatMaxHeatSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readMaxHeatSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatMaxHeatSetpointLimitCommandParams); - result.put( - "readMaxHeatSetpointLimitAttribute", - readThermostatMaxHeatSetpointLimitAttributeInteractionInfo); - Map readThermostatMinCoolSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatMinCoolSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readMinCoolSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatMinCoolSetpointLimitCommandParams); - result.put( - "readMinCoolSetpointLimitAttribute", - readThermostatMinCoolSetpointLimitAttributeInteractionInfo); - Map readThermostatMaxCoolSetpointLimitCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatMaxCoolSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readMaxCoolSetpointLimitAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatMaxCoolSetpointLimitCommandParams); - result.put( - "readMaxCoolSetpointLimitAttribute", - readThermostatMaxCoolSetpointLimitAttributeInteractionInfo); - Map readThermostatMinSetpointDeadBandCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatMinSetpointDeadBandAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readMinSetpointDeadBandAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatMinSetpointDeadBandCommandParams); - result.put( - "readMinSetpointDeadBandAttribute", - readThermostatMinSetpointDeadBandAttributeInteractionInfo); - Map readThermostatRemoteSensingCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatRemoteSensingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readRemoteSensingAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatRemoteSensingCommandParams); - result.put("readRemoteSensingAttribute", readThermostatRemoteSensingAttributeInteractionInfo); - Map readThermostatControlSequenceOfOperationCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatControlSequenceOfOperationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readControlSequenceOfOperationAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatControlSequenceOfOperationCommandParams); - result.put( - "readControlSequenceOfOperationAttribute", - readThermostatControlSequenceOfOperationAttributeInteractionInfo); - Map readThermostatSystemModeCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatSystemModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readSystemModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatSystemModeCommandParams); - result.put("readSystemModeAttribute", readThermostatSystemModeAttributeInteractionInfo); - Map readThermostatThermostatRunningModeCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatThermostatRunningModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readThermostatRunningModeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatThermostatRunningModeCommandParams); - result.put( - "readThermostatRunningModeAttribute", - readThermostatThermostatRunningModeAttributeInteractionInfo); - Map readThermostatStartOfWeekCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatStartOfWeekAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readStartOfWeekAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatStartOfWeekCommandParams); - result.put("readStartOfWeekAttribute", readThermostatStartOfWeekAttributeInteractionInfo); - Map readThermostatNumberOfWeeklyTransitionsCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatNumberOfWeeklyTransitionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readNumberOfWeeklyTransitionsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatNumberOfWeeklyTransitionsCommandParams); - result.put( - "readNumberOfWeeklyTransitionsAttribute", - readThermostatNumberOfWeeklyTransitionsAttributeInteractionInfo); - Map readThermostatNumberOfDailyTransitionsCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatNumberOfDailyTransitionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readNumberOfDailyTransitionsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatNumberOfDailyTransitionsCommandParams); - result.put( - "readNumberOfDailyTransitionsAttribute", - readThermostatNumberOfDailyTransitionsAttributeInteractionInfo); - Map readThermostatTemperatureSetpointHoldCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatTemperatureSetpointHoldAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readTemperatureSetpointHoldAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatTemperatureSetpointHoldCommandParams); - result.put( - "readTemperatureSetpointHoldAttribute", - readThermostatTemperatureSetpointHoldAttributeInteractionInfo); - Map readThermostatTemperatureSetpointHoldDurationCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readTemperatureSetpointHoldDurationAttribute( - (ChipClusters.ThermostatCluster - .TemperatureSetpointHoldDurationAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterTemperatureSetpointHoldDurationAttributeCallback(), - readThermostatTemperatureSetpointHoldDurationCommandParams); - result.put( - "readTemperatureSetpointHoldDurationAttribute", - readThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo); - Map - readThermostatThermostatProgrammingOperationModeCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatThermostatProgrammingOperationModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readThermostatProgrammingOperationModeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatThermostatProgrammingOperationModeCommandParams); - result.put( - "readThermostatProgrammingOperationModeAttribute", - readThermostatThermostatProgrammingOperationModeAttributeInteractionInfo); - Map readThermostatThermostatRunningStateCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatThermostatRunningStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readThermostatRunningStateAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatThermostatRunningStateCommandParams); - result.put( - "readThermostatRunningStateAttribute", - readThermostatThermostatRunningStateAttributeInteractionInfo); - Map readThermostatSetpointChangeSourceCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatSetpointChangeSourceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readSetpointChangeSourceAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatSetpointChangeSourceCommandParams); - result.put( - "readSetpointChangeSourceAttribute", - readThermostatSetpointChangeSourceAttributeInteractionInfo); - Map readThermostatSetpointChangeAmountCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatSetpointChangeAmountAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readSetpointChangeAmountAttribute( - (ChipClusters.ThermostatCluster.SetpointChangeAmountAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterSetpointChangeAmountAttributeCallback(), - readThermostatSetpointChangeAmountCommandParams); - result.put( - "readSetpointChangeAmountAttribute", - readThermostatSetpointChangeAmountAttributeInteractionInfo); - Map readThermostatSetpointChangeSourceTimestampCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatSetpointChangeSourceTimestampAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readSetpointChangeSourceTimestampAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThermostatSetpointChangeSourceTimestampCommandParams); - result.put( - "readSetpointChangeSourceTimestampAttribute", - readThermostatSetpointChangeSourceTimestampAttributeInteractionInfo); - Map readThermostatOccupiedSetbackCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatOccupiedSetbackAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readOccupiedSetbackAttribute( - (ChipClusters.ThermostatCluster.OccupiedSetbackAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedThermostatClusterOccupiedSetbackAttributeCallback(), - readThermostatOccupiedSetbackCommandParams); - result.put( - "readOccupiedSetbackAttribute", readThermostatOccupiedSetbackAttributeInteractionInfo); - Map readThermostatOccupiedSetbackMinCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatOccupiedSetbackMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readOccupiedSetbackMinAttribute( - (ChipClusters.ThermostatCluster.OccupiedSetbackMinAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterOccupiedSetbackMinAttributeCallback(), - readThermostatOccupiedSetbackMinCommandParams); - result.put( - "readOccupiedSetbackMinAttribute", - readThermostatOccupiedSetbackMinAttributeInteractionInfo); - Map readThermostatOccupiedSetbackMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatOccupiedSetbackMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readOccupiedSetbackMaxAttribute( - (ChipClusters.ThermostatCluster.OccupiedSetbackMaxAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterOccupiedSetbackMaxAttributeCallback(), - readThermostatOccupiedSetbackMaxCommandParams); - result.put( - "readOccupiedSetbackMaxAttribute", - readThermostatOccupiedSetbackMaxAttributeInteractionInfo); - Map readThermostatUnoccupiedSetbackCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUnoccupiedSetbackAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readUnoccupiedSetbackAttribute( - (ChipClusters.ThermostatCluster.UnoccupiedSetbackAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterUnoccupiedSetbackAttributeCallback(), - readThermostatUnoccupiedSetbackCommandParams); - result.put( - "readUnoccupiedSetbackAttribute", readThermostatUnoccupiedSetbackAttributeInteractionInfo); - Map readThermostatUnoccupiedSetbackMinCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUnoccupiedSetbackMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readUnoccupiedSetbackMinAttribute( - (ChipClusters.ThermostatCluster.UnoccupiedSetbackMinAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterUnoccupiedSetbackMinAttributeCallback(), - readThermostatUnoccupiedSetbackMinCommandParams); - result.put( - "readUnoccupiedSetbackMinAttribute", - readThermostatUnoccupiedSetbackMinAttributeInteractionInfo); - Map readThermostatUnoccupiedSetbackMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUnoccupiedSetbackMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readUnoccupiedSetbackMaxAttribute( - (ChipClusters.ThermostatCluster.UnoccupiedSetbackMaxAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterUnoccupiedSetbackMaxAttributeCallback(), - readThermostatUnoccupiedSetbackMaxCommandParams); - result.put( - "readUnoccupiedSetbackMaxAttribute", - readThermostatUnoccupiedSetbackMaxAttributeInteractionInfo); - Map readThermostatEmergencyHeatDeltaCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatEmergencyHeatDeltaAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readEmergencyHeatDeltaAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatEmergencyHeatDeltaCommandParams); - result.put( - "readEmergencyHeatDeltaAttribute", - readThermostatEmergencyHeatDeltaAttributeInteractionInfo); - Map readThermostatACTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatACTypeCommandParams); - result.put("readACTypeAttribute", readThermostatACTypeAttributeInteractionInfo); - Map readThermostatACCapacityCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACCapacityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACCapacityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatACCapacityCommandParams); - result.put("readACCapacityAttribute", readThermostatACCapacityAttributeInteractionInfo); - Map readThermostatACRefrigerantTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACRefrigerantTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACRefrigerantTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatACRefrigerantTypeCommandParams); - result.put( - "readACRefrigerantTypeAttribute", readThermostatACRefrigerantTypeAttributeInteractionInfo); - Map readThermostatACCompressorTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACCompressorTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACCompressorTypeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatACCompressorTypeCommandParams); - result.put( - "readACCompressorTypeAttribute", readThermostatACCompressorTypeAttributeInteractionInfo); - Map readThermostatACErrorCodeCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACErrorCodeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACErrorCodeAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThermostatACErrorCodeCommandParams); - result.put("readACErrorCodeAttribute", readThermostatACErrorCodeAttributeInteractionInfo); - Map readThermostatACLouverPositionCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACLouverPositionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACLouverPositionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatACLouverPositionCommandParams); - result.put( - "readACLouverPositionAttribute", readThermostatACLouverPositionAttributeInteractionInfo); - Map readThermostatACCoilTemperatureCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACCoilTemperatureAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACCoilTemperatureAttribute( - (ChipClusters.ThermostatCluster.ACCoilTemperatureAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterACCoilTemperatureAttributeCallback(), - readThermostatACCoilTemperatureCommandParams); - result.put( - "readACCoilTemperatureAttribute", readThermostatACCoilTemperatureAttributeInteractionInfo); - Map readThermostatACCapacityformatCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatACCapacityformatAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readACCapacityformatAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatACCapacityformatCommandParams); - result.put( - "readACCapacityformatAttribute", readThermostatACCapacityformatAttributeInteractionInfo); - Map readThermostatGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ThermostatCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterGeneratedCommandListAttributeCallback(), - readThermostatGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readThermostatGeneratedCommandListAttributeInteractionInfo); - Map readThermostatAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ThermostatCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatClusterAcceptedCommandListAttributeCallback(), - readThermostatAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readThermostatAcceptedCommandListAttributeInteractionInfo); - Map readThermostatEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readEventListAttribute( - (ChipClusters.ThermostatCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedThermostatClusterEventListAttributeCallback(), - readThermostatEventListCommandParams); - result.put("readEventListAttribute", readThermostatEventListAttributeInteractionInfo); - Map readThermostatAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ThermostatCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedThermostatClusterAttributeListAttributeCallback(), - readThermostatAttributeListCommandParams); - result.put("readAttributeListAttribute", readThermostatAttributeListAttributeInteractionInfo); - Map readThermostatFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThermostatFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readThermostatFeatureMapAttributeInteractionInfo); - Map readThermostatClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readThermostatClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readFanControlInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readFanControlFanModeCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlFanModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readFanModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlFanModeCommandParams); - result.put("readFanModeAttribute", readFanControlFanModeAttributeInteractionInfo); - Map readFanControlFanModeSequenceCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlFanModeSequenceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readFanModeSequenceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlFanModeSequenceCommandParams); - result.put( - "readFanModeSequenceAttribute", readFanControlFanModeSequenceAttributeInteractionInfo); - Map readFanControlPercentSettingCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlPercentSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readPercentSettingAttribute( - (ChipClusters.FanControlCluster.PercentSettingAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedFanControlClusterPercentSettingAttributeCallback(), - readFanControlPercentSettingCommandParams); - result.put("readPercentSettingAttribute", readFanControlPercentSettingAttributeInteractionInfo); - Map readFanControlPercentCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlPercentCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readPercentCurrentAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlPercentCurrentCommandParams); - result.put("readPercentCurrentAttribute", readFanControlPercentCurrentAttributeInteractionInfo); - Map readFanControlSpeedMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlSpeedMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readSpeedMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlSpeedMaxCommandParams); - result.put("readSpeedMaxAttribute", readFanControlSpeedMaxAttributeInteractionInfo); - Map readFanControlSpeedSettingCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlSpeedSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readSpeedSettingAttribute( - (ChipClusters.FanControlCluster.SpeedSettingAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFanControlClusterSpeedSettingAttributeCallback(), - readFanControlSpeedSettingCommandParams); - result.put("readSpeedSettingAttribute", readFanControlSpeedSettingAttributeInteractionInfo); - Map readFanControlSpeedCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlSpeedCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readSpeedCurrentAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlSpeedCurrentCommandParams); - result.put("readSpeedCurrentAttribute", readFanControlSpeedCurrentAttributeInteractionInfo); - Map readFanControlRockSupportCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlRockSupportAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readRockSupportAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlRockSupportCommandParams); - result.put("readRockSupportAttribute", readFanControlRockSupportAttributeInteractionInfo); - Map readFanControlRockSettingCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlRockSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readRockSettingAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlRockSettingCommandParams); - result.put("readRockSettingAttribute", readFanControlRockSettingAttributeInteractionInfo); - Map readFanControlWindSupportCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlWindSupportAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readWindSupportAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlWindSupportCommandParams); - result.put("readWindSupportAttribute", readFanControlWindSupportAttributeInteractionInfo); - Map readFanControlWindSettingCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlWindSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readWindSettingAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlWindSettingCommandParams); - result.put("readWindSettingAttribute", readFanControlWindSettingAttributeInteractionInfo); - Map readFanControlGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.FanControlCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFanControlClusterGeneratedCommandListAttributeCallback(), - readFanControlGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readFanControlGeneratedCommandListAttributeInteractionInfo); - Map readFanControlAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.FanControlCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFanControlClusterAcceptedCommandListAttributeCallback(), - readFanControlAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readFanControlAcceptedCommandListAttributeInteractionInfo); - Map readFanControlEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readEventListAttribute( - (ChipClusters.FanControlCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFanControlClusterEventListAttributeCallback(), - readFanControlEventListCommandParams); - result.put("readEventListAttribute", readFanControlEventListAttributeInteractionInfo); - Map readFanControlAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.FanControlCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFanControlClusterAttributeListAttributeCallback(), - readFanControlAttributeListCommandParams); - result.put("readAttributeListAttribute", readFanControlAttributeListAttributeInteractionInfo); - Map readFanControlFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readFanControlFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readFanControlFeatureMapAttributeInteractionInfo); - Map readFanControlClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readFanControlClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFanControlClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readFanControlClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map - readThermostatUserInterfaceConfigurationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map - readThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams = - new LinkedHashMap(); - InteractionInfo - readThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readTemperatureDisplayModeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams); - result.put( - "readTemperatureDisplayModeAttribute", - readThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationKeypadLockoutCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readKeypadLockoutAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatUserInterfaceConfigurationKeypadLockoutCommandParams); - result.put( - "readKeypadLockoutAttribute", - readThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams = - new LinkedHashMap(); - InteractionInfo - readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readScheduleProgrammingVisibilityAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams); - result.put( - "readScheduleProgrammingVisibilityAttribute", - readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo - readThermostatUserInterfaceConfigurationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ThermostatUserInterfaceConfigurationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatUserInterfaceConfigurationClusterGeneratedCommandListAttributeCallback(), - readThermostatUserInterfaceConfigurationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readThermostatUserInterfaceConfigurationGeneratedCommandListAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo - readThermostatUserInterfaceConfigurationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ThermostatUserInterfaceConfigurationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatUserInterfaceConfigurationClusterAcceptedCommandListAttributeCallback(), - readThermostatUserInterfaceConfigurationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readThermostatUserInterfaceConfigurationAcceptedCommandListAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUserInterfaceConfigurationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readEventListAttribute( - (ChipClusters.ThermostatUserInterfaceConfigurationCluster - .EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatUserInterfaceConfigurationClusterEventListAttributeCallback(), - readThermostatUserInterfaceConfigurationEventListCommandParams); - result.put( - "readEventListAttribute", - readThermostatUserInterfaceConfigurationEventListAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUserInterfaceConfigurationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ThermostatUserInterfaceConfigurationCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedThermostatUserInterfaceConfigurationClusterAttributeListAttributeCallback(), - readThermostatUserInterfaceConfigurationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readThermostatUserInterfaceConfigurationAttributeListAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readThermostatUserInterfaceConfigurationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readThermostatUserInterfaceConfigurationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readThermostatUserInterfaceConfigurationFeatureMapAttributeInteractionInfo); - Map - readThermostatUserInterfaceConfigurationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo - readThermostatUserInterfaceConfigurationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .readClusterRevisionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readThermostatUserInterfaceConfigurationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readThermostatUserInterfaceConfigurationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readColorControlInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readColorControlCurrentHueCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlCurrentHueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readCurrentHueAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlCurrentHueCommandParams); - result.put("readCurrentHueAttribute", readColorControlCurrentHueAttributeInteractionInfo); - Map readColorControlCurrentSaturationCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlCurrentSaturationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readCurrentSaturationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlCurrentSaturationCommandParams); - result.put( - "readCurrentSaturationAttribute", - readColorControlCurrentSaturationAttributeInteractionInfo); - Map readColorControlRemainingTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlRemainingTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readRemainingTimeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlRemainingTimeCommandParams); - result.put("readRemainingTimeAttribute", readColorControlRemainingTimeAttributeInteractionInfo); - Map readColorControlCurrentXCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlCurrentXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readCurrentXAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlCurrentXCommandParams); - result.put("readCurrentXAttribute", readColorControlCurrentXAttributeInteractionInfo); - Map readColorControlCurrentYCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlCurrentYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readCurrentYAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlCurrentYCommandParams); - result.put("readCurrentYAttribute", readColorControlCurrentYAttributeInteractionInfo); - Map readColorControlDriftCompensationCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlDriftCompensationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readDriftCompensationAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlDriftCompensationCommandParams); - result.put( - "readDriftCompensationAttribute", - readColorControlDriftCompensationAttributeInteractionInfo); - Map readColorControlCompensationTextCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlCompensationTextAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readCompensationTextAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readColorControlCompensationTextCommandParams); - result.put( - "readCompensationTextAttribute", readColorControlCompensationTextAttributeInteractionInfo); - Map readColorControlColorTemperatureMiredsCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorTemperatureMiredsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorTemperatureMiredsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorTemperatureMiredsCommandParams); - result.put( - "readColorTemperatureMiredsAttribute", - readColorControlColorTemperatureMiredsAttributeInteractionInfo); - Map readColorControlColorModeCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorModeCommandParams); - result.put("readColorModeAttribute", readColorControlColorModeAttributeInteractionInfo); - Map readColorControlOptionsCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlOptionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readOptionsAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlOptionsCommandParams); - result.put("readOptionsAttribute", readColorControlOptionsAttributeInteractionInfo); - Map readColorControlNumberOfPrimariesCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlNumberOfPrimariesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readNumberOfPrimariesAttribute( - (ChipClusters.ColorControlCluster.NumberOfPrimariesAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterNumberOfPrimariesAttributeCallback(), - readColorControlNumberOfPrimariesCommandParams); - result.put( - "readNumberOfPrimariesAttribute", - readColorControlNumberOfPrimariesAttributeInteractionInfo); - Map readColorControlPrimary1XCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary1XAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary1XAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary1XCommandParams); - result.put("readPrimary1XAttribute", readColorControlPrimary1XAttributeInteractionInfo); - Map readColorControlPrimary1YCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary1YAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary1YAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary1YCommandParams); - result.put("readPrimary1YAttribute", readColorControlPrimary1YAttributeInteractionInfo); - Map readColorControlPrimary1IntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary1IntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary1IntensityAttribute( - (ChipClusters.ColorControlCluster.Primary1IntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterPrimary1IntensityAttributeCallback(), - readColorControlPrimary1IntensityCommandParams); - result.put( - "readPrimary1IntensityAttribute", - readColorControlPrimary1IntensityAttributeInteractionInfo); - Map readColorControlPrimary2XCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary2XAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary2XAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary2XCommandParams); - result.put("readPrimary2XAttribute", readColorControlPrimary2XAttributeInteractionInfo); - Map readColorControlPrimary2YCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary2YAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary2YAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary2YCommandParams); - result.put("readPrimary2YAttribute", readColorControlPrimary2YAttributeInteractionInfo); - Map readColorControlPrimary2IntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary2IntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary2IntensityAttribute( - (ChipClusters.ColorControlCluster.Primary2IntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterPrimary2IntensityAttributeCallback(), - readColorControlPrimary2IntensityCommandParams); - result.put( - "readPrimary2IntensityAttribute", - readColorControlPrimary2IntensityAttributeInteractionInfo); - Map readColorControlPrimary3XCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary3XAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary3XAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary3XCommandParams); - result.put("readPrimary3XAttribute", readColorControlPrimary3XAttributeInteractionInfo); - Map readColorControlPrimary3YCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary3YAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary3YAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary3YCommandParams); - result.put("readPrimary3YAttribute", readColorControlPrimary3YAttributeInteractionInfo); - Map readColorControlPrimary3IntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary3IntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary3IntensityAttribute( - (ChipClusters.ColorControlCluster.Primary3IntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterPrimary3IntensityAttributeCallback(), - readColorControlPrimary3IntensityCommandParams); - result.put( - "readPrimary3IntensityAttribute", - readColorControlPrimary3IntensityAttributeInteractionInfo); - Map readColorControlPrimary4XCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary4XAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary4XAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary4XCommandParams); - result.put("readPrimary4XAttribute", readColorControlPrimary4XAttributeInteractionInfo); - Map readColorControlPrimary4YCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary4YAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary4YAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary4YCommandParams); - result.put("readPrimary4YAttribute", readColorControlPrimary4YAttributeInteractionInfo); - Map readColorControlPrimary4IntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary4IntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary4IntensityAttribute( - (ChipClusters.ColorControlCluster.Primary4IntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterPrimary4IntensityAttributeCallback(), - readColorControlPrimary4IntensityCommandParams); - result.put( - "readPrimary4IntensityAttribute", - readColorControlPrimary4IntensityAttributeInteractionInfo); - Map readColorControlPrimary5XCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary5XAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary5XAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary5XCommandParams); - result.put("readPrimary5XAttribute", readColorControlPrimary5XAttributeInteractionInfo); - Map readColorControlPrimary5YCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary5YAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary5YAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary5YCommandParams); - result.put("readPrimary5YAttribute", readColorControlPrimary5YAttributeInteractionInfo); - Map readColorControlPrimary5IntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary5IntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary5IntensityAttribute( - (ChipClusters.ColorControlCluster.Primary5IntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterPrimary5IntensityAttributeCallback(), - readColorControlPrimary5IntensityCommandParams); - result.put( - "readPrimary5IntensityAttribute", - readColorControlPrimary5IntensityAttributeInteractionInfo); - Map readColorControlPrimary6XCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary6XAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary6XAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary6XCommandParams); - result.put("readPrimary6XAttribute", readColorControlPrimary6XAttributeInteractionInfo); - Map readColorControlPrimary6YCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary6YAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary6YAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlPrimary6YCommandParams); - result.put("readPrimary6YAttribute", readColorControlPrimary6YAttributeInteractionInfo); - Map readColorControlPrimary6IntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlPrimary6IntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readPrimary6IntensityAttribute( - (ChipClusters.ColorControlCluster.Primary6IntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterPrimary6IntensityAttributeCallback(), - readColorControlPrimary6IntensityCommandParams); - result.put( - "readPrimary6IntensityAttribute", - readColorControlPrimary6IntensityAttributeInteractionInfo); - Map readColorControlWhitePointXCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlWhitePointXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readWhitePointXAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlWhitePointXCommandParams); - result.put("readWhitePointXAttribute", readColorControlWhitePointXAttributeInteractionInfo); - Map readColorControlWhitePointYCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlWhitePointYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readWhitePointYAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlWhitePointYCommandParams); - result.put("readWhitePointYAttribute", readColorControlWhitePointYAttributeInteractionInfo); - Map readColorControlColorPointRXCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointRXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointRXAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorPointRXCommandParams); - result.put("readColorPointRXAttribute", readColorControlColorPointRXAttributeInteractionInfo); - Map readColorControlColorPointRYCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointRYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointRYAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorPointRYCommandParams); - result.put("readColorPointRYAttribute", readColorControlColorPointRYAttributeInteractionInfo); - Map readColorControlColorPointRIntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointRIntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointRIntensityAttribute( - (ChipClusters.ColorControlCluster.ColorPointRIntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterColorPointRIntensityAttributeCallback(), - readColorControlColorPointRIntensityCommandParams); - result.put( - "readColorPointRIntensityAttribute", - readColorControlColorPointRIntensityAttributeInteractionInfo); - Map readColorControlColorPointGXCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointGXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointGXAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorPointGXCommandParams); - result.put("readColorPointGXAttribute", readColorControlColorPointGXAttributeInteractionInfo); - Map readColorControlColorPointGYCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointGYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointGYAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorPointGYCommandParams); - result.put("readColorPointGYAttribute", readColorControlColorPointGYAttributeInteractionInfo); - Map readColorControlColorPointGIntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointGIntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointGIntensityAttribute( - (ChipClusters.ColorControlCluster.ColorPointGIntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterColorPointGIntensityAttributeCallback(), - readColorControlColorPointGIntensityCommandParams); - result.put( - "readColorPointGIntensityAttribute", - readColorControlColorPointGIntensityAttributeInteractionInfo); - Map readColorControlColorPointBXCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointBXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointBXAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorPointBXCommandParams); - result.put("readColorPointBXAttribute", readColorControlColorPointBXAttributeInteractionInfo); - Map readColorControlColorPointBYCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointBYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointBYAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorPointBYCommandParams); - result.put("readColorPointBYAttribute", readColorControlColorPointBYAttributeInteractionInfo); - Map readColorControlColorPointBIntensityCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorPointBIntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorPointBIntensityAttribute( - (ChipClusters.ColorControlCluster.ColorPointBIntensityAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterColorPointBIntensityAttributeCallback(), - readColorControlColorPointBIntensityCommandParams); - result.put( - "readColorPointBIntensityAttribute", - readColorControlColorPointBIntensityAttributeInteractionInfo); - Map readColorControlEnhancedCurrentHueCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlEnhancedCurrentHueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readEnhancedCurrentHueAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlEnhancedCurrentHueCommandParams); - result.put( - "readEnhancedCurrentHueAttribute", - readColorControlEnhancedCurrentHueAttributeInteractionInfo); - Map readColorControlEnhancedColorModeCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlEnhancedColorModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readEnhancedColorModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlEnhancedColorModeCommandParams); - result.put( - "readEnhancedColorModeAttribute", - readColorControlEnhancedColorModeAttributeInteractionInfo); - Map readColorControlColorLoopActiveCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorLoopActiveAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorLoopActiveAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorLoopActiveCommandParams); - result.put( - "readColorLoopActiveAttribute", readColorControlColorLoopActiveAttributeInteractionInfo); - Map readColorControlColorLoopDirectionCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorLoopDirectionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorLoopDirectionAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorLoopDirectionCommandParams); - result.put( - "readColorLoopDirectionAttribute", - readColorControlColorLoopDirectionAttributeInteractionInfo); - Map readColorControlColorLoopTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorLoopTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorLoopTimeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorLoopTimeCommandParams); - result.put("readColorLoopTimeAttribute", readColorControlColorLoopTimeAttributeInteractionInfo); - Map readColorControlColorLoopStartEnhancedHueCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorLoopStartEnhancedHueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorLoopStartEnhancedHueAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorLoopStartEnhancedHueCommandParams); - result.put( - "readColorLoopStartEnhancedHueAttribute", - readColorControlColorLoopStartEnhancedHueAttributeInteractionInfo); - Map readColorControlColorLoopStoredEnhancedHueCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorLoopStoredEnhancedHueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorLoopStoredEnhancedHueAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorLoopStoredEnhancedHueCommandParams); - result.put( - "readColorLoopStoredEnhancedHueAttribute", - readColorControlColorLoopStoredEnhancedHueAttributeInteractionInfo); - Map readColorControlColorCapabilitiesCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorCapabilitiesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorCapabilitiesAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorCapabilitiesCommandParams); - result.put( - "readColorCapabilitiesAttribute", - readColorControlColorCapabilitiesAttributeInteractionInfo); - Map readColorControlColorTempPhysicalMinMiredsCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorTempPhysicalMinMiredsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorTempPhysicalMinMiredsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorTempPhysicalMinMiredsCommandParams); - result.put( - "readColorTempPhysicalMinMiredsAttribute", - readColorControlColorTempPhysicalMinMiredsAttributeInteractionInfo); - Map readColorControlColorTempPhysicalMaxMiredsCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlColorTempPhysicalMaxMiredsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readColorTempPhysicalMaxMiredsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlColorTempPhysicalMaxMiredsCommandParams); - result.put( - "readColorTempPhysicalMaxMiredsAttribute", - readColorControlColorTempPhysicalMaxMiredsAttributeInteractionInfo); - Map readColorControlCoupleColorTempToLevelMinMiredsCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlCoupleColorTempToLevelMinMiredsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readCoupleColorTempToLevelMinMiredsAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlCoupleColorTempToLevelMinMiredsCommandParams); - result.put( - "readCoupleColorTempToLevelMinMiredsAttribute", - readColorControlCoupleColorTempToLevelMinMiredsAttributeInteractionInfo); - Map readColorControlStartUpColorTemperatureMiredsCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readStartUpColorTemperatureMiredsAttribute( - (ChipClusters.ColorControlCluster - .StartUpColorTemperatureMiredsAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterStartUpColorTemperatureMiredsAttributeCallback(), - readColorControlStartUpColorTemperatureMiredsCommandParams); - result.put( - "readStartUpColorTemperatureMiredsAttribute", - readColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo); - Map readColorControlGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ColorControlCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterGeneratedCommandListAttributeCallback(), - readColorControlGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readColorControlGeneratedCommandListAttributeInteractionInfo); - Map readColorControlAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ColorControlCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedColorControlClusterAcceptedCommandListAttributeCallback(), - readColorControlAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readColorControlAcceptedCommandListAttributeInteractionInfo); - Map readColorControlEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readEventListAttribute( - (ChipClusters.ColorControlCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedColorControlClusterEventListAttributeCallback(), - readColorControlEventListCommandParams); - result.put("readEventListAttribute", readColorControlEventListAttributeInteractionInfo); - Map readColorControlAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ColorControlCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedColorControlClusterAttributeListAttributeCallback(), - readColorControlAttributeListCommandParams); - result.put("readAttributeListAttribute", readColorControlAttributeListAttributeInteractionInfo); - Map readColorControlFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readColorControlFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readColorControlFeatureMapAttributeInteractionInfo); - Map readColorControlClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readColorControlClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readColorControlClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readColorControlClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readBallastConfigurationInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readBallastConfigurationPhysicalMinLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationPhysicalMinLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readPhysicalMinLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationPhysicalMinLevelCommandParams); - result.put( - "readPhysicalMinLevelAttribute", - readBallastConfigurationPhysicalMinLevelAttributeInteractionInfo); - Map readBallastConfigurationPhysicalMaxLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationPhysicalMaxLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readPhysicalMaxLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationPhysicalMaxLevelCommandParams); - result.put( - "readPhysicalMaxLevelAttribute", - readBallastConfigurationPhysicalMaxLevelAttributeInteractionInfo); - Map readBallastConfigurationBallastStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationBallastStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readBallastStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationBallastStatusCommandParams); - result.put( - "readBallastStatusAttribute", - readBallastConfigurationBallastStatusAttributeInteractionInfo); - Map readBallastConfigurationMinLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationMinLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readMinLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationMinLevelCommandParams); - result.put("readMinLevelAttribute", readBallastConfigurationMinLevelAttributeInteractionInfo); - Map readBallastConfigurationMaxLevelCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationMaxLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readMaxLevelAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationMaxLevelCommandParams); - result.put("readMaxLevelAttribute", readBallastConfigurationMaxLevelAttributeInteractionInfo); - Map readBallastConfigurationIntrinsicBallastFactorCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readIntrinsicBallastFactorAttribute( - (ChipClusters.BallastConfigurationCluster - .IntrinsicBallastFactorAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterIntrinsicBallastFactorAttributeCallback(), - readBallastConfigurationIntrinsicBallastFactorCommandParams); - result.put( - "readIntrinsicBallastFactorAttribute", - readBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo); - Map readBallastConfigurationBallastFactorAdjustmentCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readBallastFactorAdjustmentAttribute( - (ChipClusters.BallastConfigurationCluster - .BallastFactorAdjustmentAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterBallastFactorAdjustmentAttributeCallback(), - readBallastConfigurationBallastFactorAdjustmentCommandParams); - result.put( - "readBallastFactorAdjustmentAttribute", - readBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo); - Map readBallastConfigurationLampQuantityCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationLampQuantityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readLampQuantityAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationLampQuantityCommandParams); - result.put( - "readLampQuantityAttribute", readBallastConfigurationLampQuantityAttributeInteractionInfo); - Map readBallastConfigurationLampTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationLampTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readLampTypeAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBallastConfigurationLampTypeCommandParams); - result.put("readLampTypeAttribute", readBallastConfigurationLampTypeAttributeInteractionInfo); - Map readBallastConfigurationLampManufacturerCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationLampManufacturerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readLampManufacturerAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readBallastConfigurationLampManufacturerCommandParams); - result.put( - "readLampManufacturerAttribute", - readBallastConfigurationLampManufacturerAttributeInteractionInfo); - Map readBallastConfigurationLampRatedHoursCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationLampRatedHoursAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readLampRatedHoursAttribute( - (ChipClusters.BallastConfigurationCluster.LampRatedHoursAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterLampRatedHoursAttributeCallback(), - readBallastConfigurationLampRatedHoursCommandParams); - result.put( - "readLampRatedHoursAttribute", - readBallastConfigurationLampRatedHoursAttributeInteractionInfo); - Map readBallastConfigurationLampBurnHoursCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationLampBurnHoursAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readLampBurnHoursAttribute( - (ChipClusters.BallastConfigurationCluster.LampBurnHoursAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterLampBurnHoursAttributeCallback(), - readBallastConfigurationLampBurnHoursCommandParams); - result.put( - "readLampBurnHoursAttribute", - readBallastConfigurationLampBurnHoursAttributeInteractionInfo); - Map readBallastConfigurationLampAlarmModeCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationLampAlarmModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readLampAlarmModeAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationLampAlarmModeCommandParams); - result.put( - "readLampAlarmModeAttribute", - readBallastConfigurationLampAlarmModeAttributeInteractionInfo); - Map readBallastConfigurationLampBurnHoursTripPointCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readLampBurnHoursTripPointAttribute( - (ChipClusters.BallastConfigurationCluster - .LampBurnHoursTripPointAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterLampBurnHoursTripPointAttributeCallback(), - readBallastConfigurationLampBurnHoursTripPointCommandParams); - result.put( - "readLampBurnHoursTripPointAttribute", - readBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo); - Map readBallastConfigurationGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.BallastConfigurationCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterGeneratedCommandListAttributeCallback(), - readBallastConfigurationGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readBallastConfigurationGeneratedCommandListAttributeInteractionInfo); - Map readBallastConfigurationAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.BallastConfigurationCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterAcceptedCommandListAttributeCallback(), - readBallastConfigurationAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readBallastConfigurationAcceptedCommandListAttributeInteractionInfo); - Map readBallastConfigurationEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readEventListAttribute( - (ChipClusters.BallastConfigurationCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterEventListAttributeCallback(), - readBallastConfigurationEventListCommandParams); - result.put("readEventListAttribute", readBallastConfigurationEventListAttributeInteractionInfo); - Map readBallastConfigurationAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.BallastConfigurationCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedBallastConfigurationClusterAttributeListAttributeCallback(), - readBallastConfigurationAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readBallastConfigurationAttributeListAttributeInteractionInfo); - Map readBallastConfigurationFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readBallastConfigurationFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readBallastConfigurationFeatureMapAttributeInteractionInfo); - Map readBallastConfigurationClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readBallastConfigurationClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readBallastConfigurationClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readBallastConfigurationClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readIlluminanceMeasurementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readIlluminanceMeasurementMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readMeasuredValueAttribute( - (ChipClusters.IlluminanceMeasurementCluster.MeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterMeasuredValueAttributeCallback(), - readIlluminanceMeasurementMeasuredValueCommandParams); - result.put( - "readMeasuredValueAttribute", - readIlluminanceMeasurementMeasuredValueAttributeInteractionInfo); - Map readIlluminanceMeasurementMinMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementMinMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readMinMeasuredValueAttribute( - (ChipClusters.IlluminanceMeasurementCluster.MinMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterMinMeasuredValueAttributeCallback(), - readIlluminanceMeasurementMinMeasuredValueCommandParams); - result.put( - "readMinMeasuredValueAttribute", - readIlluminanceMeasurementMinMeasuredValueAttributeInteractionInfo); - Map readIlluminanceMeasurementMaxMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementMaxMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readMaxMeasuredValueAttribute( - (ChipClusters.IlluminanceMeasurementCluster.MaxMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterMaxMeasuredValueAttributeCallback(), - readIlluminanceMeasurementMaxMeasuredValueCommandParams); - result.put( - "readMaxMeasuredValueAttribute", - readIlluminanceMeasurementMaxMeasuredValueAttributeInteractionInfo); - Map readIlluminanceMeasurementToleranceCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementToleranceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readToleranceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIlluminanceMeasurementToleranceCommandParams); - result.put( - "readToleranceAttribute", readIlluminanceMeasurementToleranceAttributeInteractionInfo); - Map readIlluminanceMeasurementLightSensorTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementLightSensorTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readLightSensorTypeAttribute( - (ChipClusters.IlluminanceMeasurementCluster.LightSensorTypeAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterLightSensorTypeAttributeCallback(), - readIlluminanceMeasurementLightSensorTypeCommandParams); - result.put( - "readLightSensorTypeAttribute", - readIlluminanceMeasurementLightSensorTypeAttributeInteractionInfo); - Map readIlluminanceMeasurementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.IlluminanceMeasurementCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterGeneratedCommandListAttributeCallback(), - readIlluminanceMeasurementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readIlluminanceMeasurementGeneratedCommandListAttributeInteractionInfo); - Map readIlluminanceMeasurementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.IlluminanceMeasurementCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterAcceptedCommandListAttributeCallback(), - readIlluminanceMeasurementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readIlluminanceMeasurementAcceptedCommandListAttributeInteractionInfo); - Map readIlluminanceMeasurementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readEventListAttribute( - (ChipClusters.IlluminanceMeasurementCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterEventListAttributeCallback(), - readIlluminanceMeasurementEventListCommandParams); - result.put( - "readEventListAttribute", readIlluminanceMeasurementEventListAttributeInteractionInfo); - Map readIlluminanceMeasurementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.IlluminanceMeasurementCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedIlluminanceMeasurementClusterAttributeListAttributeCallback(), - readIlluminanceMeasurementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readIlluminanceMeasurementAttributeListAttributeInteractionInfo); - Map readIlluminanceMeasurementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readIlluminanceMeasurementFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readIlluminanceMeasurementFeatureMapAttributeInteractionInfo); - Map readIlluminanceMeasurementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readIlluminanceMeasurementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IlluminanceMeasurementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readIlluminanceMeasurementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readIlluminanceMeasurementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readTemperatureMeasurementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readTemperatureMeasurementMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readMeasuredValueAttribute( - (ChipClusters.TemperatureMeasurementCluster.MeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureMeasurementClusterMeasuredValueAttributeCallback(), - readTemperatureMeasurementMeasuredValueCommandParams); - result.put( - "readMeasuredValueAttribute", - readTemperatureMeasurementMeasuredValueAttributeInteractionInfo); - Map readTemperatureMeasurementMinMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementMinMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readMinMeasuredValueAttribute( - (ChipClusters.TemperatureMeasurementCluster.MinMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureMeasurementClusterMinMeasuredValueAttributeCallback(), - readTemperatureMeasurementMinMeasuredValueCommandParams); - result.put( - "readMinMeasuredValueAttribute", - readTemperatureMeasurementMinMeasuredValueAttributeInteractionInfo); - Map readTemperatureMeasurementMaxMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementMaxMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readMaxMeasuredValueAttribute( - (ChipClusters.TemperatureMeasurementCluster.MaxMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureMeasurementClusterMaxMeasuredValueAttributeCallback(), - readTemperatureMeasurementMaxMeasuredValueCommandParams); - result.put( - "readMaxMeasuredValueAttribute", - readTemperatureMeasurementMaxMeasuredValueAttributeInteractionInfo); - Map readTemperatureMeasurementToleranceCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementToleranceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readToleranceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureMeasurementToleranceCommandParams); - result.put( - "readToleranceAttribute", readTemperatureMeasurementToleranceAttributeInteractionInfo); - Map readTemperatureMeasurementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.TemperatureMeasurementCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureMeasurementClusterGeneratedCommandListAttributeCallback(), - readTemperatureMeasurementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readTemperatureMeasurementGeneratedCommandListAttributeInteractionInfo); - Map readTemperatureMeasurementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.TemperatureMeasurementCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureMeasurementClusterAcceptedCommandListAttributeCallback(), - readTemperatureMeasurementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readTemperatureMeasurementAcceptedCommandListAttributeInteractionInfo); - Map readTemperatureMeasurementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readEventListAttribute( - (ChipClusters.TemperatureMeasurementCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureMeasurementClusterEventListAttributeCallback(), - readTemperatureMeasurementEventListCommandParams); - result.put( - "readEventListAttribute", readTemperatureMeasurementEventListAttributeInteractionInfo); - Map readTemperatureMeasurementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.TemperatureMeasurementCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTemperatureMeasurementClusterAttributeListAttributeCallback(), - readTemperatureMeasurementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readTemperatureMeasurementAttributeListAttributeInteractionInfo); - Map readTemperatureMeasurementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readTemperatureMeasurementFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readTemperatureMeasurementFeatureMapAttributeInteractionInfo); - Map readTemperatureMeasurementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readTemperatureMeasurementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TemperatureMeasurementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTemperatureMeasurementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readTemperatureMeasurementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readPressureMeasurementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readPressureMeasurementMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readMeasuredValueAttribute( - (ChipClusters.PressureMeasurementCluster.MeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterMeasuredValueAttributeCallback(), - readPressureMeasurementMeasuredValueCommandParams); - result.put( - "readMeasuredValueAttribute", readPressureMeasurementMeasuredValueAttributeInteractionInfo); - Map readPressureMeasurementMinMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementMinMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readMinMeasuredValueAttribute( - (ChipClusters.PressureMeasurementCluster.MinMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterMinMeasuredValueAttributeCallback(), - readPressureMeasurementMinMeasuredValueCommandParams); - result.put( - "readMinMeasuredValueAttribute", - readPressureMeasurementMinMeasuredValueAttributeInteractionInfo); - Map readPressureMeasurementMaxMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementMaxMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readMaxMeasuredValueAttribute( - (ChipClusters.PressureMeasurementCluster.MaxMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterMaxMeasuredValueAttributeCallback(), - readPressureMeasurementMaxMeasuredValueCommandParams); - result.put( - "readMaxMeasuredValueAttribute", - readPressureMeasurementMaxMeasuredValueAttributeInteractionInfo); - Map readPressureMeasurementToleranceCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementToleranceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readToleranceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPressureMeasurementToleranceCommandParams); - result.put("readToleranceAttribute", readPressureMeasurementToleranceAttributeInteractionInfo); - Map readPressureMeasurementScaledValueCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementScaledValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readScaledValueAttribute( - (ChipClusters.PressureMeasurementCluster.ScaledValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterScaledValueAttributeCallback(), - readPressureMeasurementScaledValueCommandParams); - result.put( - "readScaledValueAttribute", readPressureMeasurementScaledValueAttributeInteractionInfo); - Map readPressureMeasurementMinScaledValueCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementMinScaledValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readMinScaledValueAttribute( - (ChipClusters.PressureMeasurementCluster.MinScaledValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterMinScaledValueAttributeCallback(), - readPressureMeasurementMinScaledValueCommandParams); - result.put( - "readMinScaledValueAttribute", - readPressureMeasurementMinScaledValueAttributeInteractionInfo); - Map readPressureMeasurementMaxScaledValueCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementMaxScaledValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readMaxScaledValueAttribute( - (ChipClusters.PressureMeasurementCluster.MaxScaledValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterMaxScaledValueAttributeCallback(), - readPressureMeasurementMaxScaledValueCommandParams); - result.put( - "readMaxScaledValueAttribute", - readPressureMeasurementMaxScaledValueAttributeInteractionInfo); - Map readPressureMeasurementScaledToleranceCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementScaledToleranceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readScaledToleranceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPressureMeasurementScaledToleranceCommandParams); - result.put( - "readScaledToleranceAttribute", - readPressureMeasurementScaledToleranceAttributeInteractionInfo); - Map readPressureMeasurementScaleCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementScaleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readScaleAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPressureMeasurementScaleCommandParams); - result.put("readScaleAttribute", readPressureMeasurementScaleAttributeInteractionInfo); - Map readPressureMeasurementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.PressureMeasurementCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterGeneratedCommandListAttributeCallback(), - readPressureMeasurementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readPressureMeasurementGeneratedCommandListAttributeInteractionInfo); - Map readPressureMeasurementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.PressureMeasurementCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterAcceptedCommandListAttributeCallback(), - readPressureMeasurementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readPressureMeasurementAcceptedCommandListAttributeInteractionInfo); - Map readPressureMeasurementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readEventListAttribute( - (ChipClusters.PressureMeasurementCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterEventListAttributeCallback(), - readPressureMeasurementEventListCommandParams); - result.put("readEventListAttribute", readPressureMeasurementEventListAttributeInteractionInfo); - Map readPressureMeasurementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.PressureMeasurementCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedPressureMeasurementClusterAttributeListAttributeCallback(), - readPressureMeasurementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readPressureMeasurementAttributeListAttributeInteractionInfo); - Map readPressureMeasurementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readPressureMeasurementFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readPressureMeasurementFeatureMapAttributeInteractionInfo); - Map readPressureMeasurementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readPressureMeasurementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PressureMeasurementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readPressureMeasurementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readPressureMeasurementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readFlowMeasurementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readFlowMeasurementMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readMeasuredValueAttribute( - (ChipClusters.FlowMeasurementCluster.MeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFlowMeasurementClusterMeasuredValueAttributeCallback(), - readFlowMeasurementMeasuredValueCommandParams); - result.put( - "readMeasuredValueAttribute", readFlowMeasurementMeasuredValueAttributeInteractionInfo); - Map readFlowMeasurementMinMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementMinMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readMinMeasuredValueAttribute( - (ChipClusters.FlowMeasurementCluster.MinMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFlowMeasurementClusterMinMeasuredValueAttributeCallback(), - readFlowMeasurementMinMeasuredValueCommandParams); - result.put( - "readMinMeasuredValueAttribute", - readFlowMeasurementMinMeasuredValueAttributeInteractionInfo); - Map readFlowMeasurementMaxMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementMaxMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readMaxMeasuredValueAttribute( - (ChipClusters.FlowMeasurementCluster.MaxMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFlowMeasurementClusterMaxMeasuredValueAttributeCallback(), - readFlowMeasurementMaxMeasuredValueCommandParams); - result.put( - "readMaxMeasuredValueAttribute", - readFlowMeasurementMaxMeasuredValueAttributeInteractionInfo); - Map readFlowMeasurementToleranceCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementToleranceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readToleranceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFlowMeasurementToleranceCommandParams); - result.put("readToleranceAttribute", readFlowMeasurementToleranceAttributeInteractionInfo); - Map readFlowMeasurementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.FlowMeasurementCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFlowMeasurementClusterGeneratedCommandListAttributeCallback(), - readFlowMeasurementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readFlowMeasurementGeneratedCommandListAttributeInteractionInfo); - Map readFlowMeasurementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.FlowMeasurementCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFlowMeasurementClusterAcceptedCommandListAttributeCallback(), - readFlowMeasurementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readFlowMeasurementAcceptedCommandListAttributeInteractionInfo); - Map readFlowMeasurementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readEventListAttribute( - (ChipClusters.FlowMeasurementCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedFlowMeasurementClusterEventListAttributeCallback(), - readFlowMeasurementEventListCommandParams); - result.put("readEventListAttribute", readFlowMeasurementEventListAttributeInteractionInfo); - Map readFlowMeasurementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.FlowMeasurementCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFlowMeasurementClusterAttributeListAttributeCallback(), - readFlowMeasurementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readFlowMeasurementAttributeListAttributeInteractionInfo); - Map readFlowMeasurementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readFlowMeasurementFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readFlowMeasurementFeatureMapAttributeInteractionInfo); - Map readFlowMeasurementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readFlowMeasurementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FlowMeasurementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFlowMeasurementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readFlowMeasurementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readRelativeHumidityMeasurementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readRelativeHumidityMeasurementMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readMeasuredValueAttribute( - (ChipClusters.RelativeHumidityMeasurementCluster - .MeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRelativeHumidityMeasurementClusterMeasuredValueAttributeCallback(), - readRelativeHumidityMeasurementMeasuredValueCommandParams); - result.put( - "readMeasuredValueAttribute", - readRelativeHumidityMeasurementMeasuredValueAttributeInteractionInfo); - Map readRelativeHumidityMeasurementMinMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementMinMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readMinMeasuredValueAttribute( - (ChipClusters.RelativeHumidityMeasurementCluster - .MinMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRelativeHumidityMeasurementClusterMinMeasuredValueAttributeCallback(), - readRelativeHumidityMeasurementMinMeasuredValueCommandParams); - result.put( - "readMinMeasuredValueAttribute", - readRelativeHumidityMeasurementMinMeasuredValueAttributeInteractionInfo); - Map readRelativeHumidityMeasurementMaxMeasuredValueCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementMaxMeasuredValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readMaxMeasuredValueAttribute( - (ChipClusters.RelativeHumidityMeasurementCluster - .MaxMeasuredValueAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRelativeHumidityMeasurementClusterMaxMeasuredValueAttributeCallback(), - readRelativeHumidityMeasurementMaxMeasuredValueCommandParams); - result.put( - "readMaxMeasuredValueAttribute", - readRelativeHumidityMeasurementMaxMeasuredValueAttributeInteractionInfo); - Map readRelativeHumidityMeasurementToleranceCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementToleranceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readToleranceAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readRelativeHumidityMeasurementToleranceCommandParams); - result.put( - "readToleranceAttribute", readRelativeHumidityMeasurementToleranceAttributeInteractionInfo); - Map - readRelativeHumidityMeasurementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.RelativeHumidityMeasurementCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRelativeHumidityMeasurementClusterGeneratedCommandListAttributeCallback(), - readRelativeHumidityMeasurementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readRelativeHumidityMeasurementGeneratedCommandListAttributeInteractionInfo); - Map - readRelativeHumidityMeasurementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.RelativeHumidityMeasurementCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRelativeHumidityMeasurementClusterAcceptedCommandListAttributeCallback(), - readRelativeHumidityMeasurementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readRelativeHumidityMeasurementAcceptedCommandListAttributeInteractionInfo); - Map readRelativeHumidityMeasurementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readEventListAttribute( - (ChipClusters.RelativeHumidityMeasurementCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRelativeHumidityMeasurementClusterEventListAttributeCallback(), - readRelativeHumidityMeasurementEventListCommandParams); - result.put( - "readEventListAttribute", readRelativeHumidityMeasurementEventListAttributeInteractionInfo); - Map readRelativeHumidityMeasurementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.RelativeHumidityMeasurementCluster - .AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedRelativeHumidityMeasurementClusterAttributeListAttributeCallback(), - readRelativeHumidityMeasurementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readRelativeHumidityMeasurementAttributeListAttributeInteractionInfo); - Map readRelativeHumidityMeasurementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readRelativeHumidityMeasurementFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", - readRelativeHumidityMeasurementFeatureMapAttributeInteractionInfo); - Map readRelativeHumidityMeasurementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readRelativeHumidityMeasurementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readRelativeHumidityMeasurementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readRelativeHumidityMeasurementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readOccupancySensingInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readOccupancySensingOccupancyCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingOccupancyAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readOccupancyAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingOccupancyCommandParams); - result.put("readOccupancyAttribute", readOccupancySensingOccupancyAttributeInteractionInfo); - Map readOccupancySensingOccupancySensorTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingOccupancySensorTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readOccupancySensorTypeAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingOccupancySensorTypeCommandParams); - result.put( - "readOccupancySensorTypeAttribute", - readOccupancySensingOccupancySensorTypeAttributeInteractionInfo); - Map readOccupancySensingOccupancySensorTypeBitmapCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingOccupancySensorTypeBitmapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readOccupancySensorTypeBitmapAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingOccupancySensorTypeBitmapCommandParams); - result.put( - "readOccupancySensorTypeBitmapAttribute", - readOccupancySensingOccupancySensorTypeBitmapAttributeInteractionInfo); - Map - readOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readPIROccupiedToUnoccupiedDelayAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams); - result.put( - "readPIROccupiedToUnoccupiedDelayAttribute", - readOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo); - Map - readOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readPIRUnoccupiedToOccupiedDelayAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams); - result.put( - "readPIRUnoccupiedToOccupiedDelayAttribute", - readOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo); - Map - readOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readPIRUnoccupiedToOccupiedThresholdAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams); - result.put( - "readPIRUnoccupiedToOccupiedThresholdAttribute", - readOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo); - Map - readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams = - new LinkedHashMap(); - InteractionInfo - readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readUltrasonicOccupiedToUnoccupiedDelayAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams); - result.put( - "readUltrasonicOccupiedToUnoccupiedDelayAttribute", - readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo); - Map - readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams = - new LinkedHashMap(); - InteractionInfo - readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readUltrasonicUnoccupiedToOccupiedDelayAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams); - result.put( - "readUltrasonicUnoccupiedToOccupiedDelayAttribute", - readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo); - Map - readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams = - new LinkedHashMap(); - InteractionInfo - readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readUltrasonicUnoccupiedToOccupiedThresholdAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams); - result.put( - "readUltrasonicUnoccupiedToOccupiedThresholdAttribute", - readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo); - Map - readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams = - new LinkedHashMap(); - InteractionInfo - readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readPhysicalContactOccupiedToUnoccupiedDelayAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams); - result.put( - "readPhysicalContactOccupiedToUnoccupiedDelayAttribute", - readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo); - Map - readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams = - new LinkedHashMap(); - InteractionInfo - readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readPhysicalContactUnoccupiedToOccupiedDelayAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams); - result.put( - "readPhysicalContactUnoccupiedToOccupiedDelayAttribute", - readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo); - Map - readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams = - new LinkedHashMap(); - InteractionInfo - readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readPhysicalContactUnoccupiedToOccupiedThresholdAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams); - result.put( - "readPhysicalContactUnoccupiedToOccupiedThresholdAttribute", - readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo); - Map readOccupancySensingGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.OccupancySensingCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOccupancySensingClusterGeneratedCommandListAttributeCallback(), - readOccupancySensingGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readOccupancySensingGeneratedCommandListAttributeInteractionInfo); - Map readOccupancySensingAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.OccupancySensingCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOccupancySensingClusterAcceptedCommandListAttributeCallback(), - readOccupancySensingAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readOccupancySensingAcceptedCommandListAttributeInteractionInfo); - Map readOccupancySensingEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readEventListAttribute( - (ChipClusters.OccupancySensingCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedOccupancySensingClusterEventListAttributeCallback(), - readOccupancySensingEventListCommandParams); - result.put("readEventListAttribute", readOccupancySensingEventListAttributeInteractionInfo); - Map readOccupancySensingAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.OccupancySensingCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedOccupancySensingClusterAttributeListAttributeCallback(), - readOccupancySensingAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readOccupancySensingAttributeListAttributeInteractionInfo); - Map readOccupancySensingFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readOccupancySensingFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readOccupancySensingFeatureMapAttributeInteractionInfo); - Map readOccupancySensingClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readOccupancySensingClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readOccupancySensingClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readOccupancySensingClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readWakeOnLanInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readWakeOnLanMACAddressCommandParams = - new LinkedHashMap(); - InteractionInfo readWakeOnLanMACAddressAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WakeOnLanCluster) cluster) - .readMACAddressAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readWakeOnLanMACAddressCommandParams); - result.put("readMACAddressAttribute", readWakeOnLanMACAddressAttributeInteractionInfo); - Map readWakeOnLanGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWakeOnLanGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WakeOnLanCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.WakeOnLanCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWakeOnLanClusterGeneratedCommandListAttributeCallback(), - readWakeOnLanGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readWakeOnLanGeneratedCommandListAttributeInteractionInfo); - Map readWakeOnLanAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readWakeOnLanAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WakeOnLanCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.WakeOnLanCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedWakeOnLanClusterAcceptedCommandListAttributeCallback(), - readWakeOnLanAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readWakeOnLanAcceptedCommandListAttributeInteractionInfo); - Map readWakeOnLanEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readWakeOnLanEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WakeOnLanCluster) cluster) - .readEventListAttribute( - (ChipClusters.WakeOnLanCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedWakeOnLanClusterEventListAttributeCallback(), - readWakeOnLanEventListCommandParams); - result.put("readEventListAttribute", readWakeOnLanEventListAttributeInteractionInfo); - Map readWakeOnLanAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readWakeOnLanAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WakeOnLanCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.WakeOnLanCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedWakeOnLanClusterAttributeListAttributeCallback(), - readWakeOnLanAttributeListCommandParams); - result.put("readAttributeListAttribute", readWakeOnLanAttributeListAttributeInteractionInfo); - Map readWakeOnLanFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readWakeOnLanFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WakeOnLanCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readWakeOnLanFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readWakeOnLanFeatureMapAttributeInteractionInfo); - Map readWakeOnLanClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readWakeOnLanClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WakeOnLanCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readWakeOnLanClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readWakeOnLanClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readChannelInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readChannelChannelListCommandParams = - new LinkedHashMap(); - InteractionInfo readChannelChannelListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ChannelCluster) cluster) - .readChannelListAttribute( - (ChipClusters.ChannelCluster.ChannelListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedChannelClusterChannelListAttributeCallback(), - readChannelChannelListCommandParams); - result.put("readChannelListAttribute", readChannelChannelListAttributeInteractionInfo); - Map readChannelGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readChannelGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ChannelCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ChannelCluster.GeneratedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedChannelClusterGeneratedCommandListAttributeCallback(), - readChannelGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readChannelGeneratedCommandListAttributeInteractionInfo); - Map readChannelAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readChannelAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ChannelCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ChannelCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedChannelClusterAcceptedCommandListAttributeCallback(), - readChannelAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", readChannelAcceptedCommandListAttributeInteractionInfo); - Map readChannelEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readChannelEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ChannelCluster) cluster) - .readEventListAttribute( - (ChipClusters.ChannelCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedChannelClusterEventListAttributeCallback(), - readChannelEventListCommandParams); - result.put("readEventListAttribute", readChannelEventListAttributeInteractionInfo); - Map readChannelAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readChannelAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ChannelCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ChannelCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedChannelClusterAttributeListAttributeCallback(), - readChannelAttributeListCommandParams); - result.put("readAttributeListAttribute", readChannelAttributeListAttributeInteractionInfo); - Map readChannelFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readChannelFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ChannelCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readChannelFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readChannelFeatureMapAttributeInteractionInfo); - Map readChannelClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readChannelClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ChannelCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readChannelClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readChannelClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readTargetNavigatorInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readTargetNavigatorTargetListCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorTargetListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readTargetListAttribute( - (ChipClusters.TargetNavigatorCluster.TargetListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedTargetNavigatorClusterTargetListAttributeCallback(), - readTargetNavigatorTargetListCommandParams); - result.put("readTargetListAttribute", readTargetNavigatorTargetListAttributeInteractionInfo); - Map readTargetNavigatorCurrentTargetCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorCurrentTargetAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readCurrentTargetAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTargetNavigatorCurrentTargetCommandParams); - result.put( - "readCurrentTargetAttribute", readTargetNavigatorCurrentTargetAttributeInteractionInfo); - Map readTargetNavigatorGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.TargetNavigatorCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTargetNavigatorClusterGeneratedCommandListAttributeCallback(), - readTargetNavigatorGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readTargetNavigatorGeneratedCommandListAttributeInteractionInfo); - Map readTargetNavigatorAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.TargetNavigatorCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTargetNavigatorClusterAcceptedCommandListAttributeCallback(), - readTargetNavigatorAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readTargetNavigatorAcceptedCommandListAttributeInteractionInfo); - Map readTargetNavigatorEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readEventListAttribute( - (ChipClusters.TargetNavigatorCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedTargetNavigatorClusterEventListAttributeCallback(), - readTargetNavigatorEventListCommandParams); - result.put("readEventListAttribute", readTargetNavigatorEventListAttributeInteractionInfo); - Map readTargetNavigatorAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.TargetNavigatorCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedTargetNavigatorClusterAttributeListAttributeCallback(), - readTargetNavigatorAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readTargetNavigatorAttributeListAttributeInteractionInfo); - Map readTargetNavigatorFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readTargetNavigatorFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readTargetNavigatorFeatureMapAttributeInteractionInfo); - Map readTargetNavigatorClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readTargetNavigatorClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TargetNavigatorCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readTargetNavigatorClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readTargetNavigatorClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readMediaPlaybackInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readMediaPlaybackCurrentStateCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackCurrentStateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readCurrentStateAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readMediaPlaybackCurrentStateCommandParams); - result.put("readCurrentStateAttribute", readMediaPlaybackCurrentStateAttributeInteractionInfo); - Map readMediaPlaybackStartTimeCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackStartTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readStartTimeAttribute( - (ChipClusters.MediaPlaybackCluster.StartTimeAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterStartTimeAttributeCallback(), - readMediaPlaybackStartTimeCommandParams); - result.put("readStartTimeAttribute", readMediaPlaybackStartTimeAttributeInteractionInfo); - Map readMediaPlaybackDurationCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackDurationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readDurationAttribute( - (ChipClusters.MediaPlaybackCluster.DurationAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterDurationAttributeCallback(), - readMediaPlaybackDurationCommandParams); - result.put("readDurationAttribute", readMediaPlaybackDurationAttributeInteractionInfo); - Map readMediaPlaybackPlaybackSpeedCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackPlaybackSpeedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readPlaybackSpeedAttribute((ChipClusters.FloatAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFloatAttributeCallback(), - readMediaPlaybackPlaybackSpeedCommandParams); - result.put( - "readPlaybackSpeedAttribute", readMediaPlaybackPlaybackSpeedAttributeInteractionInfo); - Map readMediaPlaybackSeekRangeEndCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackSeekRangeEndAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readSeekRangeEndAttribute( - (ChipClusters.MediaPlaybackCluster.SeekRangeEndAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedMediaPlaybackClusterSeekRangeEndAttributeCallback(), - readMediaPlaybackSeekRangeEndCommandParams); - result.put("readSeekRangeEndAttribute", readMediaPlaybackSeekRangeEndAttributeInteractionInfo); - Map readMediaPlaybackSeekRangeStartCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackSeekRangeStartAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readSeekRangeStartAttribute( - (ChipClusters.MediaPlaybackCluster.SeekRangeStartAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedMediaPlaybackClusterSeekRangeStartAttributeCallback(), - readMediaPlaybackSeekRangeStartCommandParams); - result.put( - "readSeekRangeStartAttribute", readMediaPlaybackSeekRangeStartAttributeInteractionInfo); - Map readMediaPlaybackGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.MediaPlaybackCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedMediaPlaybackClusterGeneratedCommandListAttributeCallback(), - readMediaPlaybackGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readMediaPlaybackGeneratedCommandListAttributeInteractionInfo); - Map readMediaPlaybackAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.MediaPlaybackCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedMediaPlaybackClusterAcceptedCommandListAttributeCallback(), - readMediaPlaybackAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readMediaPlaybackAcceptedCommandListAttributeInteractionInfo); - Map readMediaPlaybackEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readEventListAttribute( - (ChipClusters.MediaPlaybackCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterEventListAttributeCallback(), - readMediaPlaybackEventListCommandParams); - result.put("readEventListAttribute", readMediaPlaybackEventListAttributeInteractionInfo); - Map readMediaPlaybackAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.MediaPlaybackCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedMediaPlaybackClusterAttributeListAttributeCallback(), - readMediaPlaybackAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readMediaPlaybackAttributeListAttributeInteractionInfo); - Map readMediaPlaybackFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readMediaPlaybackFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readMediaPlaybackFeatureMapAttributeInteractionInfo); - Map readMediaPlaybackClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaPlaybackClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaPlaybackCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readMediaPlaybackClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readMediaPlaybackClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readMediaInputInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readMediaInputInputListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputInputListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readInputListAttribute( - (ChipClusters.MediaInputCluster.InputListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedMediaInputClusterInputListAttributeCallback(), - readMediaInputInputListCommandParams); - result.put("readInputListAttribute", readMediaInputInputListAttributeInteractionInfo); - Map readMediaInputCurrentInputCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputCurrentInputAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readCurrentInputAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readMediaInputCurrentInputCommandParams); - result.put("readCurrentInputAttribute", readMediaInputCurrentInputAttributeInteractionInfo); - Map readMediaInputGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.MediaInputCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedMediaInputClusterGeneratedCommandListAttributeCallback(), - readMediaInputGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readMediaInputGeneratedCommandListAttributeInteractionInfo); - Map readMediaInputAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.MediaInputCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedMediaInputClusterAcceptedCommandListAttributeCallback(), - readMediaInputAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readMediaInputAcceptedCommandListAttributeInteractionInfo); - Map readMediaInputEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readEventListAttribute( - (ChipClusters.MediaInputCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedMediaInputClusterEventListAttributeCallback(), - readMediaInputEventListCommandParams); - result.put("readEventListAttribute", readMediaInputEventListAttributeInteractionInfo); - Map readMediaInputAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.MediaInputCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedMediaInputClusterAttributeListAttributeCallback(), - readMediaInputAttributeListCommandParams); - result.put("readAttributeListAttribute", readMediaInputAttributeListAttributeInteractionInfo); - Map readMediaInputFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readMediaInputFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readMediaInputFeatureMapAttributeInteractionInfo); - Map readMediaInputClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readMediaInputClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.MediaInputCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readMediaInputClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readMediaInputClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readLowPowerInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readLowPowerGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readLowPowerGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LowPowerCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.LowPowerCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLowPowerClusterGeneratedCommandListAttributeCallback(), - readLowPowerGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readLowPowerGeneratedCommandListAttributeInteractionInfo); - Map readLowPowerAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readLowPowerAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LowPowerCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.LowPowerCluster.AcceptedCommandListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedLowPowerClusterAcceptedCommandListAttributeCallback(), - readLowPowerAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readLowPowerAcceptedCommandListAttributeInteractionInfo); - Map readLowPowerEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readLowPowerEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LowPowerCluster) cluster) - .readEventListAttribute( - (ChipClusters.LowPowerCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLowPowerClusterEventListAttributeCallback(), - readLowPowerEventListCommandParams); - result.put("readEventListAttribute", readLowPowerEventListAttributeInteractionInfo); - Map readLowPowerAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readLowPowerAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LowPowerCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.LowPowerCluster.AttributeListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLowPowerClusterAttributeListAttributeCallback(), - readLowPowerAttributeListCommandParams); - result.put("readAttributeListAttribute", readLowPowerAttributeListAttributeInteractionInfo); - Map readLowPowerFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readLowPowerFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LowPowerCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readLowPowerFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readLowPowerFeatureMapAttributeInteractionInfo); - Map readLowPowerClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readLowPowerClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LowPowerCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readLowPowerClusterRevisionCommandParams); - result.put("readClusterRevisionAttribute", readLowPowerClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readKeypadInputInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readKeypadInputGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readKeypadInputGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.KeypadInputCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.KeypadInputCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedKeypadInputClusterGeneratedCommandListAttributeCallback(), - readKeypadInputGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readKeypadInputGeneratedCommandListAttributeInteractionInfo); - Map readKeypadInputAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readKeypadInputAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.KeypadInputCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.KeypadInputCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedKeypadInputClusterAcceptedCommandListAttributeCallback(), - readKeypadInputAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readKeypadInputAcceptedCommandListAttributeInteractionInfo); - Map readKeypadInputEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readKeypadInputEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.KeypadInputCluster) cluster) - .readEventListAttribute( - (ChipClusters.KeypadInputCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedKeypadInputClusterEventListAttributeCallback(), - readKeypadInputEventListCommandParams); - result.put("readEventListAttribute", readKeypadInputEventListAttributeInteractionInfo); - Map readKeypadInputAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readKeypadInputAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.KeypadInputCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.KeypadInputCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedKeypadInputClusterAttributeListAttributeCallback(), - readKeypadInputAttributeListCommandParams); - result.put("readAttributeListAttribute", readKeypadInputAttributeListAttributeInteractionInfo); - Map readKeypadInputFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readKeypadInputFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.KeypadInputCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readKeypadInputFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readKeypadInputFeatureMapAttributeInteractionInfo); - Map readKeypadInputClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readKeypadInputClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.KeypadInputCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readKeypadInputClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readKeypadInputClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readContentLauncherInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readContentLauncherAcceptHeaderCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherAcceptHeaderAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readAcceptHeaderAttribute( - (ChipClusters.ContentLauncherCluster.AcceptHeaderAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedContentLauncherClusterAcceptHeaderAttributeCallback(), - readContentLauncherAcceptHeaderCommandParams); - result.put( - "readAcceptHeaderAttribute", readContentLauncherAcceptHeaderAttributeInteractionInfo); - Map readContentLauncherSupportedStreamingProtocolsCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readSupportedStreamingProtocolsAttribute( - (ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readContentLauncherSupportedStreamingProtocolsCommandParams); - result.put( - "readSupportedStreamingProtocolsAttribute", - readContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo); - Map readContentLauncherGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ContentLauncherCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedContentLauncherClusterGeneratedCommandListAttributeCallback(), - readContentLauncherGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readContentLauncherGeneratedCommandListAttributeInteractionInfo); - Map readContentLauncherAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ContentLauncherCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedContentLauncherClusterAcceptedCommandListAttributeCallback(), - readContentLauncherAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readContentLauncherAcceptedCommandListAttributeInteractionInfo); - Map readContentLauncherEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readEventListAttribute( - (ChipClusters.ContentLauncherCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedContentLauncherClusterEventListAttributeCallback(), - readContentLauncherEventListCommandParams); - result.put("readEventListAttribute", readContentLauncherEventListAttributeInteractionInfo); - Map readContentLauncherAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ContentLauncherCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedContentLauncherClusterAttributeListAttributeCallback(), - readContentLauncherAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readContentLauncherAttributeListAttributeInteractionInfo); - Map readContentLauncherFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readContentLauncherFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readContentLauncherFeatureMapAttributeInteractionInfo); - Map readContentLauncherClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readContentLauncherClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readContentLauncherClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readContentLauncherClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readAudioOutputInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readAudioOutputOutputListCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputOutputListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readOutputListAttribute( - (ChipClusters.AudioOutputCluster.OutputListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAudioOutputClusterOutputListAttributeCallback(), - readAudioOutputOutputListCommandParams); - result.put("readOutputListAttribute", readAudioOutputOutputListAttributeInteractionInfo); - Map readAudioOutputCurrentOutputCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputCurrentOutputAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readCurrentOutputAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAudioOutputCurrentOutputCommandParams); - result.put("readCurrentOutputAttribute", readAudioOutputCurrentOutputAttributeInteractionInfo); - Map readAudioOutputGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.AudioOutputCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAudioOutputClusterGeneratedCommandListAttributeCallback(), - readAudioOutputGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readAudioOutputGeneratedCommandListAttributeInteractionInfo); - Map readAudioOutputAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.AudioOutputCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAudioOutputClusterAcceptedCommandListAttributeCallback(), - readAudioOutputAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readAudioOutputAcceptedCommandListAttributeInteractionInfo); - Map readAudioOutputEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readEventListAttribute( - (ChipClusters.AudioOutputCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAudioOutputClusterEventListAttributeCallback(), - readAudioOutputEventListCommandParams); - result.put("readEventListAttribute", readAudioOutputEventListAttributeInteractionInfo); - Map readAudioOutputAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.AudioOutputCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedAudioOutputClusterAttributeListAttributeCallback(), - readAudioOutputAttributeListCommandParams); - result.put("readAttributeListAttribute", readAudioOutputAttributeListAttributeInteractionInfo); - Map readAudioOutputFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readAudioOutputFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readAudioOutputFeatureMapAttributeInteractionInfo); - Map readAudioOutputClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readAudioOutputClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AudioOutputCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAudioOutputClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readAudioOutputClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readApplicationLauncherInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readApplicationLauncherCatalogListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationLauncherCatalogListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationLauncherCluster) cluster) - .readCatalogListAttribute( - (ChipClusters.ApplicationLauncherCluster.CatalogListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationLauncherClusterCatalogListAttributeCallback(), - readApplicationLauncherCatalogListCommandParams); - result.put( - "readCatalogListAttribute", readApplicationLauncherCatalogListAttributeInteractionInfo); - Map readApplicationLauncherGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationLauncherGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationLauncherCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ApplicationLauncherCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationLauncherClusterGeneratedCommandListAttributeCallback(), - readApplicationLauncherGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readApplicationLauncherGeneratedCommandListAttributeInteractionInfo); - Map readApplicationLauncherAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationLauncherAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationLauncherCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ApplicationLauncherCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationLauncherClusterAcceptedCommandListAttributeCallback(), - readApplicationLauncherAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readApplicationLauncherAcceptedCommandListAttributeInteractionInfo); - Map readApplicationLauncherEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationLauncherEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationLauncherCluster) cluster) - .readEventListAttribute( - (ChipClusters.ApplicationLauncherCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationLauncherClusterEventListAttributeCallback(), - readApplicationLauncherEventListCommandParams); - result.put("readEventListAttribute", readApplicationLauncherEventListAttributeInteractionInfo); - Map readApplicationLauncherAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationLauncherAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationLauncherCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ApplicationLauncherCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationLauncherClusterAttributeListAttributeCallback(), - readApplicationLauncherAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readApplicationLauncherAttributeListAttributeInteractionInfo); - Map readApplicationLauncherFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationLauncherFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationLauncherCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readApplicationLauncherFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readApplicationLauncherFeatureMapAttributeInteractionInfo); - Map readApplicationLauncherClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationLauncherClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationLauncherCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readApplicationLauncherClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readApplicationLauncherClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readApplicationBasicInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readApplicationBasicVendorNameCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicVendorNameAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readVendorNameAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readApplicationBasicVendorNameCommandParams); - result.put("readVendorNameAttribute", readApplicationBasicVendorNameAttributeInteractionInfo); - Map readApplicationBasicVendorIDCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicVendorIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readVendorIDAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readApplicationBasicVendorIDCommandParams); - result.put("readVendorIDAttribute", readApplicationBasicVendorIDAttributeInteractionInfo); - Map readApplicationBasicApplicationNameCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicApplicationNameAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readApplicationNameAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readApplicationBasicApplicationNameCommandParams); - result.put( - "readApplicationNameAttribute", - readApplicationBasicApplicationNameAttributeInteractionInfo); - Map readApplicationBasicProductIDCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicProductIDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readProductIDAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readApplicationBasicProductIDCommandParams); - result.put("readProductIDAttribute", readApplicationBasicProductIDAttributeInteractionInfo); - Map readApplicationBasicStatusCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicStatusAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readStatusAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readApplicationBasicStatusCommandParams); - result.put("readStatusAttribute", readApplicationBasicStatusAttributeInteractionInfo); - Map readApplicationBasicApplicationVersionCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicApplicationVersionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readApplicationVersionAttribute( - (ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readApplicationBasicApplicationVersionCommandParams); - result.put( - "readApplicationVersionAttribute", - readApplicationBasicApplicationVersionAttributeInteractionInfo); - Map readApplicationBasicAllowedVendorListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicAllowedVendorListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readAllowedVendorListAttribute( - (ChipClusters.ApplicationBasicCluster.AllowedVendorListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationBasicClusterAllowedVendorListAttributeCallback(), - readApplicationBasicAllowedVendorListCommandParams); - result.put( - "readAllowedVendorListAttribute", - readApplicationBasicAllowedVendorListAttributeInteractionInfo); - Map readApplicationBasicGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ApplicationBasicCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationBasicClusterGeneratedCommandListAttributeCallback(), - readApplicationBasicGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readApplicationBasicGeneratedCommandListAttributeInteractionInfo); - Map readApplicationBasicAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ApplicationBasicCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationBasicClusterAcceptedCommandListAttributeCallback(), - readApplicationBasicAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readApplicationBasicAcceptedCommandListAttributeInteractionInfo); - Map readApplicationBasicEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readEventListAttribute( - (ChipClusters.ApplicationBasicCluster.EventListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedApplicationBasicClusterEventListAttributeCallback(), - readApplicationBasicEventListCommandParams); - result.put("readEventListAttribute", readApplicationBasicEventListAttributeInteractionInfo); - Map readApplicationBasicAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ApplicationBasicCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedApplicationBasicClusterAttributeListAttributeCallback(), - readApplicationBasicAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readApplicationBasicAttributeListAttributeInteractionInfo); - Map readApplicationBasicFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readApplicationBasicFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readApplicationBasicFeatureMapAttributeInteractionInfo); - Map readApplicationBasicClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readApplicationBasicClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ApplicationBasicCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readApplicationBasicClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readApplicationBasicClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readAccountLoginInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readAccountLoginGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccountLoginGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccountLoginCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.AccountLoginCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAccountLoginClusterGeneratedCommandListAttributeCallback(), - readAccountLoginGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readAccountLoginGeneratedCommandListAttributeInteractionInfo); - Map readAccountLoginAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccountLoginAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccountLoginCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.AccountLoginCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedAccountLoginClusterAcceptedCommandListAttributeCallback(), - readAccountLoginAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readAccountLoginAcceptedCommandListAttributeInteractionInfo); - Map readAccountLoginEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccountLoginEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccountLoginCluster) cluster) - .readEventListAttribute( - (ChipClusters.AccountLoginCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedAccountLoginClusterEventListAttributeCallback(), - readAccountLoginEventListCommandParams); - result.put("readEventListAttribute", readAccountLoginEventListAttributeInteractionInfo); - Map readAccountLoginAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readAccountLoginAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccountLoginCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.AccountLoginCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedAccountLoginClusterAttributeListAttributeCallback(), - readAccountLoginAttributeListCommandParams); - result.put("readAttributeListAttribute", readAccountLoginAttributeListAttributeInteractionInfo); - Map readAccountLoginFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readAccountLoginFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccountLoginCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readAccountLoginFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readAccountLoginFeatureMapAttributeInteractionInfo); - Map readAccountLoginClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readAccountLoginClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.AccountLoginCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readAccountLoginClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readAccountLoginClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readElectricalMeasurementInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readElectricalMeasurementMeasurementTypeCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementMeasurementTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasurementTypeAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectricalMeasurementMeasurementTypeCommandParams); - result.put( - "readMeasurementTypeAttribute", - readElectricalMeasurementMeasurementTypeAttributeInteractionInfo); - Map readElectricalMeasurementDcVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcVoltageAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcVoltageCommandParams); - result.put( - "readDcVoltageAttribute", readElectricalMeasurementDcVoltageAttributeInteractionInfo); - Map readElectricalMeasurementDcVoltageMinCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcVoltageMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcVoltageMinAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcVoltageMinCommandParams); - result.put( - "readDcVoltageMinAttribute", readElectricalMeasurementDcVoltageMinAttributeInteractionInfo); - Map readElectricalMeasurementDcVoltageMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcVoltageMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcVoltageMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcVoltageMaxCommandParams); - result.put( - "readDcVoltageMaxAttribute", readElectricalMeasurementDcVoltageMaxAttributeInteractionInfo); - Map readElectricalMeasurementDcCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcCurrentAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcCurrentCommandParams); - result.put( - "readDcCurrentAttribute", readElectricalMeasurementDcCurrentAttributeInteractionInfo); - Map readElectricalMeasurementDcCurrentMinCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcCurrentMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcCurrentMinAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcCurrentMinCommandParams); - result.put( - "readDcCurrentMinAttribute", readElectricalMeasurementDcCurrentMinAttributeInteractionInfo); - Map readElectricalMeasurementDcCurrentMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcCurrentMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcCurrentMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcCurrentMaxCommandParams); - result.put( - "readDcCurrentMaxAttribute", readElectricalMeasurementDcCurrentMaxAttributeInteractionInfo); - Map readElectricalMeasurementDcPowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcPowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcPowerAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcPowerCommandParams); - result.put("readDcPowerAttribute", readElectricalMeasurementDcPowerAttributeInteractionInfo); - Map readElectricalMeasurementDcPowerMinCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcPowerMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcPowerMinAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcPowerMinCommandParams); - result.put( - "readDcPowerMinAttribute", readElectricalMeasurementDcPowerMinAttributeInteractionInfo); - Map readElectricalMeasurementDcPowerMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcPowerMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcPowerMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcPowerMaxCommandParams); - result.put( - "readDcPowerMaxAttribute", readElectricalMeasurementDcPowerMaxAttributeInteractionInfo); - Map readElectricalMeasurementDcVoltageMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcVoltageMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcVoltageMultiplierAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcVoltageMultiplierCommandParams); - result.put( - "readDcVoltageMultiplierAttribute", - readElectricalMeasurementDcVoltageMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementDcVoltageDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcVoltageDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcVoltageDivisorAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcVoltageDivisorCommandParams); - result.put( - "readDcVoltageDivisorAttribute", - readElectricalMeasurementDcVoltageDivisorAttributeInteractionInfo); - Map readElectricalMeasurementDcCurrentMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcCurrentMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcCurrentMultiplierAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcCurrentMultiplierCommandParams); - result.put( - "readDcCurrentMultiplierAttribute", - readElectricalMeasurementDcCurrentMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementDcCurrentDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcCurrentDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcCurrentDivisorAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcCurrentDivisorCommandParams); - result.put( - "readDcCurrentDivisorAttribute", - readElectricalMeasurementDcCurrentDivisorAttributeInteractionInfo); - Map readElectricalMeasurementDcPowerMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcPowerMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcPowerMultiplierAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcPowerMultiplierCommandParams); - result.put( - "readDcPowerMultiplierAttribute", - readElectricalMeasurementDcPowerMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementDcPowerDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementDcPowerDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readDcPowerDivisorAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementDcPowerDivisorCommandParams); - result.put( - "readDcPowerDivisorAttribute", - readElectricalMeasurementDcPowerDivisorAttributeInteractionInfo); - Map readElectricalMeasurementAcFrequencyCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcFrequencyAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcFrequencyAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcFrequencyCommandParams); - result.put( - "readAcFrequencyAttribute", readElectricalMeasurementAcFrequencyAttributeInteractionInfo); - Map readElectricalMeasurementAcFrequencyMinCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcFrequencyMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcFrequencyMinAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcFrequencyMinCommandParams); - result.put( - "readAcFrequencyMinAttribute", - readElectricalMeasurementAcFrequencyMinAttributeInteractionInfo); - Map readElectricalMeasurementAcFrequencyMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcFrequencyMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcFrequencyMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcFrequencyMaxCommandParams); - result.put( - "readAcFrequencyMaxAttribute", - readElectricalMeasurementAcFrequencyMaxAttributeInteractionInfo); - Map readElectricalMeasurementNeutralCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementNeutralCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readNeutralCurrentAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementNeutralCurrentCommandParams); - result.put( - "readNeutralCurrentAttribute", - readElectricalMeasurementNeutralCurrentAttributeInteractionInfo); - Map readElectricalMeasurementTotalActivePowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementTotalActivePowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readTotalActivePowerAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectricalMeasurementTotalActivePowerCommandParams); - result.put( - "readTotalActivePowerAttribute", - readElectricalMeasurementTotalActivePowerAttributeInteractionInfo); - Map readElectricalMeasurementTotalReactivePowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementTotalReactivePowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readTotalReactivePowerAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectricalMeasurementTotalReactivePowerCommandParams); - result.put( - "readTotalReactivePowerAttribute", - readElectricalMeasurementTotalReactivePowerAttributeInteractionInfo); - Map readElectricalMeasurementTotalApparentPowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementTotalApparentPowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readTotalApparentPowerAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectricalMeasurementTotalApparentPowerCommandParams); - result.put( - "readTotalApparentPowerAttribute", - readElectricalMeasurementTotalApparentPowerAttributeInteractionInfo); - Map - readElectricalMeasurementMeasured1stHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementMeasured1stHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasured1stHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasured1stHarmonicCurrentCommandParams); - result.put( - "readMeasured1stHarmonicCurrentAttribute", - readElectricalMeasurementMeasured1stHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasured3rdHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementMeasured3rdHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasured3rdHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasured3rdHarmonicCurrentCommandParams); - result.put( - "readMeasured3rdHarmonicCurrentAttribute", - readElectricalMeasurementMeasured3rdHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasured5thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementMeasured5thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasured5thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasured5thHarmonicCurrentCommandParams); - result.put( - "readMeasured5thHarmonicCurrentAttribute", - readElectricalMeasurementMeasured5thHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasured7thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementMeasured7thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasured7thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasured7thHarmonicCurrentCommandParams); - result.put( - "readMeasured7thHarmonicCurrentAttribute", - readElectricalMeasurementMeasured7thHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasured9thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementMeasured9thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasured9thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasured9thHarmonicCurrentCommandParams); - result.put( - "readMeasured9thHarmonicCurrentAttribute", - readElectricalMeasurementMeasured9thHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasured11thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementMeasured11thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasured11thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasured11thHarmonicCurrentCommandParams); - result.put( - "readMeasured11thHarmonicCurrentAttribute", - readElectricalMeasurementMeasured11thHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasuredPhase1stHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementMeasuredPhase1stHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasuredPhase1stHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasuredPhase1stHarmonicCurrentCommandParams); - result.put( - "readMeasuredPhase1stHarmonicCurrentAttribute", - readElectricalMeasurementMeasuredPhase1stHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasuredPhase3rdHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentCommandParams); - result.put( - "readMeasuredPhase3rdHarmonicCurrentAttribute", - readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasuredPhase5thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementMeasuredPhase5thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasuredPhase5thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasuredPhase5thHarmonicCurrentCommandParams); - result.put( - "readMeasuredPhase5thHarmonicCurrentAttribute", - readElectricalMeasurementMeasuredPhase5thHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasuredPhase7thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementMeasuredPhase7thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasuredPhase7thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasuredPhase7thHarmonicCurrentCommandParams); - result.put( - "readMeasuredPhase7thHarmonicCurrentAttribute", - readElectricalMeasurementMeasuredPhase7thHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasuredPhase9thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementMeasuredPhase9thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasuredPhase9thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasuredPhase9thHarmonicCurrentCommandParams); - result.put( - "readMeasuredPhase9thHarmonicCurrentAttribute", - readElectricalMeasurementMeasuredPhase9thHarmonicCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementMeasuredPhase11thHarmonicCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementMeasuredPhase11thHarmonicCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readMeasuredPhase11thHarmonicCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementMeasuredPhase11thHarmonicCurrentCommandParams); - result.put( - "readMeasuredPhase11thHarmonicCurrentAttribute", - readElectricalMeasurementMeasuredPhase11thHarmonicCurrentAttributeInteractionInfo); - Map readElectricalMeasurementAcFrequencyMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcFrequencyMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcFrequencyMultiplierAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcFrequencyMultiplierCommandParams); - result.put( - "readAcFrequencyMultiplierAttribute", - readElectricalMeasurementAcFrequencyMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementAcFrequencyDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcFrequencyDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcFrequencyDivisorAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcFrequencyDivisorCommandParams); - result.put( - "readAcFrequencyDivisorAttribute", - readElectricalMeasurementAcFrequencyDivisorAttributeInteractionInfo); - Map readElectricalMeasurementPowerMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementPowerMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readPowerMultiplierAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectricalMeasurementPowerMultiplierCommandParams); - result.put( - "readPowerMultiplierAttribute", - readElectricalMeasurementPowerMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementPowerDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementPowerDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readPowerDivisorAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectricalMeasurementPowerDivisorCommandParams); - result.put( - "readPowerDivisorAttribute", readElectricalMeasurementPowerDivisorAttributeInteractionInfo); - Map - readElectricalMeasurementHarmonicCurrentMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementHarmonicCurrentMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readHarmonicCurrentMultiplierAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementHarmonicCurrentMultiplierCommandParams); - result.put( - "readHarmonicCurrentMultiplierAttribute", - readElectricalMeasurementHarmonicCurrentMultiplierAttributeInteractionInfo); - Map - readElectricalMeasurementPhaseHarmonicCurrentMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementPhaseHarmonicCurrentMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readPhaseHarmonicCurrentMultiplierAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementPhaseHarmonicCurrentMultiplierCommandParams); - result.put( - "readPhaseHarmonicCurrentMultiplierAttribute", - readElectricalMeasurementPhaseHarmonicCurrentMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementInstantaneousVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementInstantaneousVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readInstantaneousVoltageAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementInstantaneousVoltageCommandParams); - result.put( - "readInstantaneousVoltageAttribute", - readElectricalMeasurementInstantaneousVoltageAttributeInteractionInfo); - Map - readElectricalMeasurementInstantaneousLineCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementInstantaneousLineCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readInstantaneousLineCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementInstantaneousLineCurrentCommandParams); - result.put( - "readInstantaneousLineCurrentAttribute", - readElectricalMeasurementInstantaneousLineCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementInstantaneousActiveCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementInstantaneousActiveCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readInstantaneousActiveCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementInstantaneousActiveCurrentCommandParams); - result.put( - "readInstantaneousActiveCurrentAttribute", - readElectricalMeasurementInstantaneousActiveCurrentAttributeInteractionInfo); - Map - readElectricalMeasurementInstantaneousReactiveCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementInstantaneousReactiveCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readInstantaneousReactiveCurrentAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementInstantaneousReactiveCurrentCommandParams); - result.put( - "readInstantaneousReactiveCurrentAttribute", - readElectricalMeasurementInstantaneousReactiveCurrentAttributeInteractionInfo); - Map readElectricalMeasurementInstantaneousPowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementInstantaneousPowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readInstantaneousPowerAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementInstantaneousPowerCommandParams); - result.put( - "readInstantaneousPowerAttribute", - readElectricalMeasurementInstantaneousPowerAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageCommandParams); - result.put( - "readRmsVoltageAttribute", readElectricalMeasurementRmsVoltageAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageMinCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageMinAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageMinCommandParams); - result.put( - "readRmsVoltageMinAttribute", - readElectricalMeasurementRmsVoltageMinAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageMaxCommandParams); - result.put( - "readRmsVoltageMaxAttribute", - readElectricalMeasurementRmsVoltageMaxAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentCommandParams); - result.put( - "readRmsCurrentAttribute", readElectricalMeasurementRmsCurrentAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentMinCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentMinAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentMinCommandParams); - result.put( - "readRmsCurrentMinAttribute", - readElectricalMeasurementRmsCurrentMinAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentMaxCommandParams); - result.put( - "readRmsCurrentMaxAttribute", - readElectricalMeasurementRmsCurrentMaxAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerCommandParams); - result.put( - "readActivePowerAttribute", readElectricalMeasurementActivePowerAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerMinCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerMinAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerMinAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerMinCommandParams); - result.put( - "readActivePowerMinAttribute", - readElectricalMeasurementActivePowerMinAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerMaxCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerMaxAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerMaxAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerMaxCommandParams); - result.put( - "readActivePowerMaxAttribute", - readElectricalMeasurementActivePowerMaxAttributeInteractionInfo); - Map readElectricalMeasurementReactivePowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementReactivePowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readReactivePowerAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementReactivePowerCommandParams); - result.put( - "readReactivePowerAttribute", - readElectricalMeasurementReactivePowerAttributeInteractionInfo); - Map readElectricalMeasurementApparentPowerCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementApparentPowerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readApparentPowerAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementApparentPowerCommandParams); - result.put( - "readApparentPowerAttribute", - readElectricalMeasurementApparentPowerAttributeInteractionInfo); - Map readElectricalMeasurementPowerFactorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementPowerFactorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readPowerFactorAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementPowerFactorCommandParams); - result.put( - "readPowerFactorAttribute", readElectricalMeasurementPowerFactorAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsVoltageMeasurementPeriodAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams); - result.put( - "readAverageRmsVoltageMeasurementPeriodAttribute", - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsUnderVoltageCounterAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams); - result.put( - "readAverageRmsUnderVoltageCounterAttribute", - readElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo); - Map - readElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeOverVoltagePeriodAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams); - result.put( - "readRmsExtremeOverVoltagePeriodAttribute", - readElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo); - Map - readElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeUnderVoltagePeriodAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams); - result.put( - "readRmsExtremeUnderVoltagePeriodAttribute", - readElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageSagPeriodCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSagPeriodAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSagPeriodCommandParams); - result.put( - "readRmsVoltageSagPeriodAttribute", - readElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageSwellPeriodCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSwellPeriodAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSwellPeriodCommandParams); - result.put( - "readRmsVoltageSwellPeriodAttribute", - readElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo); - Map readElectricalMeasurementAcVoltageMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcVoltageMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcVoltageMultiplierAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcVoltageMultiplierCommandParams); - result.put( - "readAcVoltageMultiplierAttribute", - readElectricalMeasurementAcVoltageMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementAcVoltageDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcVoltageDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcVoltageDivisorAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcVoltageDivisorCommandParams); - result.put( - "readAcVoltageDivisorAttribute", - readElectricalMeasurementAcVoltageDivisorAttributeInteractionInfo); - Map readElectricalMeasurementAcCurrentMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcCurrentMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcCurrentMultiplierAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcCurrentMultiplierCommandParams); - result.put( - "readAcCurrentMultiplierAttribute", - readElectricalMeasurementAcCurrentMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementAcCurrentDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcCurrentDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcCurrentDivisorAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcCurrentDivisorCommandParams); - result.put( - "readAcCurrentDivisorAttribute", - readElectricalMeasurementAcCurrentDivisorAttributeInteractionInfo); - Map readElectricalMeasurementAcPowerMultiplierCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcPowerMultiplierAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcPowerMultiplierAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcPowerMultiplierCommandParams); - result.put( - "readAcPowerMultiplierAttribute", - readElectricalMeasurementAcPowerMultiplierAttributeInteractionInfo); - Map readElectricalMeasurementAcPowerDivisorCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcPowerDivisorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcPowerDivisorAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcPowerDivisorCommandParams); - result.put( - "readAcPowerDivisorAttribute", - readElectricalMeasurementAcPowerDivisorAttributeInteractionInfo); - Map readElectricalMeasurementOverloadAlarmsMaskCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readOverloadAlarmsMaskAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementOverloadAlarmsMaskCommandParams); - result.put( - "readOverloadAlarmsMaskAttribute", - readElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo); - Map readElectricalMeasurementVoltageOverloadCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementVoltageOverloadAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readVoltageOverloadAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementVoltageOverloadCommandParams); - result.put( - "readVoltageOverloadAttribute", - readElectricalMeasurementVoltageOverloadAttributeInteractionInfo); - Map readElectricalMeasurementCurrentOverloadCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementCurrentOverloadAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readCurrentOverloadAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementCurrentOverloadCommandParams); - result.put( - "readCurrentOverloadAttribute", - readElectricalMeasurementCurrentOverloadAttributeInteractionInfo); - Map readElectricalMeasurementAcOverloadAlarmsMaskCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcOverloadAlarmsMaskAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcOverloadAlarmsMaskCommandParams); - result.put( - "readAcOverloadAlarmsMaskAttribute", - readElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo); - Map readElectricalMeasurementAcVoltageOverloadCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcVoltageOverloadAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcVoltageOverloadAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcVoltageOverloadCommandParams); - result.put( - "readAcVoltageOverloadAttribute", - readElectricalMeasurementAcVoltageOverloadAttributeInteractionInfo); - Map readElectricalMeasurementAcCurrentOverloadCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcCurrentOverloadAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcCurrentOverloadAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcCurrentOverloadCommandParams); - result.put( - "readAcCurrentOverloadAttribute", - readElectricalMeasurementAcCurrentOverloadAttributeInteractionInfo); - Map readElectricalMeasurementAcActivePowerOverloadCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcActivePowerOverloadAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcActivePowerOverloadAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcActivePowerOverloadCommandParams); - result.put( - "readAcActivePowerOverloadAttribute", - readElectricalMeasurementAcActivePowerOverloadAttributeInteractionInfo); - Map - readElectricalMeasurementAcReactivePowerOverloadCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcReactivePowerOverloadAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcReactivePowerOverloadAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAcReactivePowerOverloadCommandParams); - result.put( - "readAcReactivePowerOverloadAttribute", - readElectricalMeasurementAcReactivePowerOverloadAttributeInteractionInfo); - Map readElectricalMeasurementAverageRmsOverVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAverageRmsOverVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsOverVoltageAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsOverVoltageCommandParams); - result.put( - "readAverageRmsOverVoltageAttribute", - readElectricalMeasurementAverageRmsOverVoltageAttributeInteractionInfo); - Map readElectricalMeasurementAverageRmsUnderVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAverageRmsUnderVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsUnderVoltageAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsUnderVoltageCommandParams); - result.put( - "readAverageRmsUnderVoltageAttribute", - readElectricalMeasurementAverageRmsUnderVoltageAttributeInteractionInfo); - Map readElectricalMeasurementRmsExtremeOverVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsExtremeOverVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeOverVoltageAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeOverVoltageCommandParams); - result.put( - "readRmsExtremeOverVoltageAttribute", - readElectricalMeasurementRmsExtremeOverVoltageAttributeInteractionInfo); - Map readElectricalMeasurementRmsExtremeUnderVoltageCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsExtremeUnderVoltageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeUnderVoltageAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeUnderVoltageCommandParams); - result.put( - "readRmsExtremeUnderVoltageAttribute", - readElectricalMeasurementRmsExtremeUnderVoltageAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageSagCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSagAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSagAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSagCommandParams); - result.put( - "readRmsVoltageSagAttribute", - readElectricalMeasurementRmsVoltageSagAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageSwellCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSwellAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSwellAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSwellCommandParams); - result.put( - "readRmsVoltageSwellAttribute", - readElectricalMeasurementRmsVoltageSwellAttributeInteractionInfo); - Map readElectricalMeasurementLineCurrentPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementLineCurrentPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readLineCurrentPhaseBAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementLineCurrentPhaseBCommandParams); - result.put( - "readLineCurrentPhaseBAttribute", - readElectricalMeasurementLineCurrentPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementActiveCurrentPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActiveCurrentPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActiveCurrentPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActiveCurrentPhaseBCommandParams); - result.put( - "readActiveCurrentPhaseBAttribute", - readElectricalMeasurementActiveCurrentPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementReactiveCurrentPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementReactiveCurrentPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readReactiveCurrentPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementReactiveCurrentPhaseBCommandParams); - result.put( - "readReactiveCurrentPhaseBAttribute", - readElectricalMeasurementReactiveCurrentPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltagePhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltagePhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltagePhaseBAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltagePhaseBCommandParams); - result.put( - "readRmsVoltagePhaseBAttribute", - readElectricalMeasurementRmsVoltagePhaseBAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageMinPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageMinPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageMinPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageMinPhaseBCommandParams); - result.put( - "readRmsVoltageMinPhaseBAttribute", - readElectricalMeasurementRmsVoltageMinPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageMaxPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageMaxPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageMaxPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageMaxPhaseBCommandParams); - result.put( - "readRmsVoltageMaxPhaseBAttribute", - readElectricalMeasurementRmsVoltageMaxPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentPhaseBAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentPhaseBCommandParams); - result.put( - "readRmsCurrentPhaseBAttribute", - readElectricalMeasurementRmsCurrentPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentMinPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentMinPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentMinPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentMinPhaseBCommandParams); - result.put( - "readRmsCurrentMinPhaseBAttribute", - readElectricalMeasurementRmsCurrentMinPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentMaxPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentMaxPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentMaxPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentMaxPhaseBCommandParams); - result.put( - "readRmsCurrentMaxPhaseBAttribute", - readElectricalMeasurementRmsCurrentMaxPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerPhaseBAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerPhaseBCommandParams); - result.put( - "readActivePowerPhaseBAttribute", - readElectricalMeasurementActivePowerPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerMinPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerMinPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerMinPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerMinPhaseBCommandParams); - result.put( - "readActivePowerMinPhaseBAttribute", - readElectricalMeasurementActivePowerMinPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerMaxPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerMaxPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerMaxPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerMaxPhaseBCommandParams); - result.put( - "readActivePowerMaxPhaseBAttribute", - readElectricalMeasurementActivePowerMaxPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementReactivePowerPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementReactivePowerPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readReactivePowerPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementReactivePowerPhaseBCommandParams); - result.put( - "readReactivePowerPhaseBAttribute", - readElectricalMeasurementReactivePowerPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementApparentPowerPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementApparentPowerPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readApparentPowerPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementApparentPowerPhaseBCommandParams); - result.put( - "readApparentPowerPhaseBAttribute", - readElectricalMeasurementApparentPowerPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementPowerFactorPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementPowerFactorPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readPowerFactorPhaseBAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementPowerFactorPhaseBCommandParams); - result.put( - "readPowerFactorPhaseBAttribute", - readElectricalMeasurementPowerFactorPhaseBAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsVoltageMeasurementPeriodPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBCommandParams); - result.put( - "readAverageRmsVoltageMeasurementPeriodPhaseBAttribute", - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsOverVoltageCounterPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBCommandParams); - result.put( - "readAverageRmsOverVoltageCounterPhaseBAttribute", - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsUnderVoltageCounterPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBCommandParams); - result.put( - "readAverageRmsUnderVoltageCounterPhaseBAttribute", - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBAttributeInteractionInfo); - Map - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeOverVoltagePeriodPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBCommandParams); - result.put( - "readRmsExtremeOverVoltagePeriodPhaseBAttribute", - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBAttributeInteractionInfo); - Map - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeUnderVoltagePeriodPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBCommandParams); - result.put( - "readRmsExtremeUnderVoltagePeriodPhaseBAttribute", - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBAttributeInteractionInfo); - Map - readElectricalMeasurementRmsVoltageSagPeriodPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSagPeriodPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSagPeriodPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSagPeriodPhaseBCommandParams); - result.put( - "readRmsVoltageSagPeriodPhaseBAttribute", - readElectricalMeasurementRmsVoltageSagPeriodPhaseBAttributeInteractionInfo); - Map - readElectricalMeasurementRmsVoltageSwellPeriodPhaseBCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSwellPeriodPhaseBAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSwellPeriodPhaseBAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSwellPeriodPhaseBCommandParams); - result.put( - "readRmsVoltageSwellPeriodPhaseBAttribute", - readElectricalMeasurementRmsVoltageSwellPeriodPhaseBAttributeInteractionInfo); - Map readElectricalMeasurementLineCurrentPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementLineCurrentPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readLineCurrentPhaseCAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementLineCurrentPhaseCCommandParams); - result.put( - "readLineCurrentPhaseCAttribute", - readElectricalMeasurementLineCurrentPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementActiveCurrentPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActiveCurrentPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActiveCurrentPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActiveCurrentPhaseCCommandParams); - result.put( - "readActiveCurrentPhaseCAttribute", - readElectricalMeasurementActiveCurrentPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementReactiveCurrentPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementReactiveCurrentPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readReactiveCurrentPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementReactiveCurrentPhaseCCommandParams); - result.put( - "readReactiveCurrentPhaseCAttribute", - readElectricalMeasurementReactiveCurrentPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltagePhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltagePhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltagePhaseCAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltagePhaseCCommandParams); - result.put( - "readRmsVoltagePhaseCAttribute", - readElectricalMeasurementRmsVoltagePhaseCAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageMinPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageMinPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageMinPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageMinPhaseCCommandParams); - result.put( - "readRmsVoltageMinPhaseCAttribute", - readElectricalMeasurementRmsVoltageMinPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementRmsVoltageMaxPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageMaxPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageMaxPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageMaxPhaseCCommandParams); - result.put( - "readRmsVoltageMaxPhaseCAttribute", - readElectricalMeasurementRmsVoltageMaxPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentPhaseCAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentPhaseCCommandParams); - result.put( - "readRmsCurrentPhaseCAttribute", - readElectricalMeasurementRmsCurrentPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentMinPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentMinPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentMinPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentMinPhaseCCommandParams); - result.put( - "readRmsCurrentMinPhaseCAttribute", - readElectricalMeasurementRmsCurrentMinPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementRmsCurrentMaxPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsCurrentMaxPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsCurrentMaxPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsCurrentMaxPhaseCCommandParams); - result.put( - "readRmsCurrentMaxPhaseCAttribute", - readElectricalMeasurementRmsCurrentMaxPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerPhaseCAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerPhaseCCommandParams); - result.put( - "readActivePowerPhaseCAttribute", - readElectricalMeasurementActivePowerPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerMinPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerMinPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerMinPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerMinPhaseCCommandParams); - result.put( - "readActivePowerMinPhaseCAttribute", - readElectricalMeasurementActivePowerMinPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementActivePowerMaxPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementActivePowerMaxPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readActivePowerMaxPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementActivePowerMaxPhaseCCommandParams); - result.put( - "readActivePowerMaxPhaseCAttribute", - readElectricalMeasurementActivePowerMaxPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementReactivePowerPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementReactivePowerPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readReactivePowerPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementReactivePowerPhaseCCommandParams); - result.put( - "readReactivePowerPhaseCAttribute", - readElectricalMeasurementReactivePowerPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementApparentPowerPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementApparentPowerPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readApparentPowerPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementApparentPowerPhaseCCommandParams); - result.put( - "readApparentPowerPhaseCAttribute", - readElectricalMeasurementApparentPowerPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementPowerFactorPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementPowerFactorPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readPowerFactorPhaseCAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementPowerFactorPhaseCCommandParams); - result.put( - "readPowerFactorPhaseCAttribute", - readElectricalMeasurementPowerFactorPhaseCAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsVoltageMeasurementPeriodPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCCommandParams); - result.put( - "readAverageRmsVoltageMeasurementPeriodPhaseCAttribute", - readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsOverVoltageCounterPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCCommandParams); - result.put( - "readAverageRmsOverVoltageCounterPhaseCAttribute", - readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCAttributeInteractionInfo); - Map - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAverageRmsUnderVoltageCounterPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCCommandParams); - result.put( - "readAverageRmsUnderVoltageCounterPhaseCAttribute", - readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCAttributeInteractionInfo); - Map - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeOverVoltagePeriodPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCCommandParams); - result.put( - "readRmsExtremeOverVoltagePeriodPhaseCAttribute", - readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCAttributeInteractionInfo); - Map - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsExtremeUnderVoltagePeriodPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCCommandParams); - result.put( - "readRmsExtremeUnderVoltagePeriodPhaseCAttribute", - readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCAttributeInteractionInfo); - Map - readElectricalMeasurementRmsVoltageSagPeriodPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSagPeriodPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSagPeriodPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSagPeriodPhaseCCommandParams); - result.put( - "readRmsVoltageSagPeriodPhaseCAttribute", - readElectricalMeasurementRmsVoltageSagPeriodPhaseCAttributeInteractionInfo); - Map - readElectricalMeasurementRmsVoltageSwellPeriodPhaseCCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementRmsVoltageSwellPeriodPhaseCAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readRmsVoltageSwellPeriodPhaseCAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementRmsVoltageSwellPeriodPhaseCCommandParams); - result.put( - "readRmsVoltageSwellPeriodPhaseCAttribute", - readElectricalMeasurementRmsVoltageSwellPeriodPhaseCAttributeInteractionInfo); - Map readElectricalMeasurementGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.ElectricalMeasurementCluster - .GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectricalMeasurementClusterGeneratedCommandListAttributeCallback(), - readElectricalMeasurementGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readElectricalMeasurementGeneratedCommandListAttributeInteractionInfo); - Map readElectricalMeasurementAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.ElectricalMeasurementCluster - .AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectricalMeasurementClusterAcceptedCommandListAttributeCallback(), - readElectricalMeasurementAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readElectricalMeasurementAcceptedCommandListAttributeInteractionInfo); - Map readElectricalMeasurementEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readEventListAttribute( - (ChipClusters.ElectricalMeasurementCluster.EventListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectricalMeasurementClusterEventListAttributeCallback(), - readElectricalMeasurementEventListCommandParams); - result.put( - "readEventListAttribute", readElectricalMeasurementEventListAttributeInteractionInfo); - Map readElectricalMeasurementAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.ElectricalMeasurementCluster.AttributeListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedElectricalMeasurementClusterAttributeListAttributeCallback(), - readElectricalMeasurementAttributeListCommandParams); - result.put( - "readAttributeListAttribute", - readElectricalMeasurementAttributeListAttributeInteractionInfo); - Map readElectricalMeasurementFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readElectricalMeasurementFeatureMapCommandParams); - result.put( - "readFeatureMapAttribute", readElectricalMeasurementFeatureMapAttributeInteractionInfo); - Map readElectricalMeasurementClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readElectricalMeasurementClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readElectricalMeasurementClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", - readElectricalMeasurementClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readUnitTestingInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readUnitTestingBooleanCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readBooleanAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readUnitTestingBooleanCommandParams); - result.put("readBooleanAttribute", readUnitTestingBooleanAttributeInteractionInfo); - Map readUnitTestingBitmap8CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingBitmap8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readBitmap8Attribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingBitmap8CommandParams); - result.put("readBitmap8Attribute", readUnitTestingBitmap8AttributeInteractionInfo); - Map readUnitTestingBitmap16CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingBitmap16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readBitmap16Attribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingBitmap16CommandParams); - result.put("readBitmap16Attribute", readUnitTestingBitmap16AttributeInteractionInfo); - Map readUnitTestingBitmap32CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingBitmap32AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readBitmap32Attribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingBitmap32CommandParams); - result.put("readBitmap32Attribute", readUnitTestingBitmap32AttributeInteractionInfo); - Map readUnitTestingBitmap64CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingBitmap64AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readBitmap64Attribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingBitmap64CommandParams); - result.put("readBitmap64Attribute", readUnitTestingBitmap64AttributeInteractionInfo); - Map readUnitTestingInt8uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt8uAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingInt8uCommandParams); - result.put("readInt8uAttribute", readUnitTestingInt8uAttributeInteractionInfo); - Map readUnitTestingInt16uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt16uAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingInt16uCommandParams); - result.put("readInt16uAttribute", readUnitTestingInt16uAttributeInteractionInfo); - Map readUnitTestingInt24uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt24uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt24uAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt24uCommandParams); - result.put("readInt24uAttribute", readUnitTestingInt24uAttributeInteractionInfo); - Map readUnitTestingInt32uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt32uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt32uAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt32uCommandParams); - result.put("readInt32uAttribute", readUnitTestingInt32uAttributeInteractionInfo); - Map readUnitTestingInt40uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt40uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt40uAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt40uCommandParams); - result.put("readInt40uAttribute", readUnitTestingInt40uAttributeInteractionInfo); - Map readUnitTestingInt48uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt48uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt48uAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt48uCommandParams); - result.put("readInt48uAttribute", readUnitTestingInt48uAttributeInteractionInfo); - Map readUnitTestingInt56uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt56uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt56uAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt56uCommandParams); - result.put("readInt56uAttribute", readUnitTestingInt56uAttributeInteractionInfo); - Map readUnitTestingInt64uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt64uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt64uAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt64uCommandParams); - result.put("readInt64uAttribute", readUnitTestingInt64uAttributeInteractionInfo); - Map readUnitTestingInt8sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt8sAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingInt8sCommandParams); - result.put("readInt8sAttribute", readUnitTestingInt8sAttributeInteractionInfo); - Map readUnitTestingInt16sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt16sAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingInt16sCommandParams); - result.put("readInt16sAttribute", readUnitTestingInt16sAttributeInteractionInfo); - Map readUnitTestingInt24sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt24sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt24sAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt24sCommandParams); - result.put("readInt24sAttribute", readUnitTestingInt24sAttributeInteractionInfo); - Map readUnitTestingInt32sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt32sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt32sAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt32sCommandParams); - result.put("readInt32sAttribute", readUnitTestingInt32sAttributeInteractionInfo); - Map readUnitTestingInt40sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt40sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt40sAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt40sCommandParams); - result.put("readInt40sAttribute", readUnitTestingInt40sAttributeInteractionInfo); - Map readUnitTestingInt48sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt48sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt48sAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt48sCommandParams); - result.put("readInt48sAttribute", readUnitTestingInt48sAttributeInteractionInfo); - Map readUnitTestingInt56sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt56sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt56sAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt56sCommandParams); - result.put("readInt56sAttribute", readUnitTestingInt56sAttributeInteractionInfo); - Map readUnitTestingInt64sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingInt64sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readInt64sAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingInt64sCommandParams); - result.put("readInt64sAttribute", readUnitTestingInt64sAttributeInteractionInfo); - Map readUnitTestingEnum8CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingEnum8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readEnum8Attribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingEnum8CommandParams); - result.put("readEnum8Attribute", readUnitTestingEnum8AttributeInteractionInfo); - Map readUnitTestingEnum16CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingEnum16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readEnum16Attribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingEnum16CommandParams); - result.put("readEnum16Attribute", readUnitTestingEnum16AttributeInteractionInfo); - Map readUnitTestingFloatSingleCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingFloatSingleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readFloatSingleAttribute((ChipClusters.FloatAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFloatAttributeCallback(), - readUnitTestingFloatSingleCommandParams); - result.put("readFloatSingleAttribute", readUnitTestingFloatSingleAttributeInteractionInfo); - Map readUnitTestingFloatDoubleCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingFloatDoubleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readFloatDoubleAttribute((ChipClusters.DoubleAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedDoubleAttributeCallback(), - readUnitTestingFloatDoubleCommandParams); - result.put("readFloatDoubleAttribute", readUnitTestingFloatDoubleAttributeInteractionInfo); - Map readUnitTestingOctetStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readOctetStringAttribute((ChipClusters.OctetStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedOctetStringAttributeCallback(), - readUnitTestingOctetStringCommandParams); - result.put("readOctetStringAttribute", readUnitTestingOctetStringAttributeInteractionInfo); - Map readUnitTestingListInt8uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingListInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readListInt8uAttribute( - (ChipClusters.UnitTestingCluster.ListInt8uAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedUnitTestingClusterListInt8uAttributeCallback(), - readUnitTestingListInt8uCommandParams); - result.put("readListInt8uAttribute", readUnitTestingListInt8uAttributeInteractionInfo); - Map readUnitTestingListOctetStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingListOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readListOctetStringAttribute( - (ChipClusters.UnitTestingCluster.ListOctetStringAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterListOctetStringAttributeCallback(), - readUnitTestingListOctetStringCommandParams); - result.put( - "readListOctetStringAttribute", readUnitTestingListOctetStringAttributeInteractionInfo); - Map readUnitTestingListStructOctetStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingListStructOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readListStructOctetStringAttribute( - (ChipClusters.UnitTestingCluster.ListStructOctetStringAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterListStructOctetStringAttributeCallback(), - readUnitTestingListStructOctetStringCommandParams); - result.put( - "readListStructOctetStringAttribute", - readUnitTestingListStructOctetStringAttributeInteractionInfo); - Map readUnitTestingLongOctetStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingLongOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readLongOctetStringAttribute( - (ChipClusters.OctetStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedOctetStringAttributeCallback(), - readUnitTestingLongOctetStringCommandParams); - result.put( - "readLongOctetStringAttribute", readUnitTestingLongOctetStringAttributeInteractionInfo); - Map readUnitTestingCharStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingCharStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readCharStringAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readUnitTestingCharStringCommandParams); - result.put("readCharStringAttribute", readUnitTestingCharStringAttributeInteractionInfo); - Map readUnitTestingLongCharStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingLongCharStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readLongCharStringAttribute((ChipClusters.CharStringAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), - readUnitTestingLongCharStringCommandParams); - result.put( - "readLongCharStringAttribute", readUnitTestingLongCharStringAttributeInteractionInfo); - Map readUnitTestingEpochUsCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingEpochUsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readEpochUsAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingEpochUsCommandParams); - result.put("readEpochUsAttribute", readUnitTestingEpochUsAttributeInteractionInfo); - Map readUnitTestingEpochSCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingEpochSAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readEpochSAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingEpochSCommandParams); - result.put("readEpochSAttribute", readUnitTestingEpochSAttributeInteractionInfo); - Map readUnitTestingVendorIdCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingVendorIdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readVendorIdAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingVendorIdCommandParams); - result.put("readVendorIdAttribute", readUnitTestingVendorIdAttributeInteractionInfo); - Map readUnitTestingListNullablesAndOptionalsStructCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingListNullablesAndOptionalsStructAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readListNullablesAndOptionalsStructAttribute( - (ChipClusters.UnitTestingCluster - .ListNullablesAndOptionalsStructAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterListNullablesAndOptionalsStructAttributeCallback(), - readUnitTestingListNullablesAndOptionalsStructCommandParams); - result.put( - "readListNullablesAndOptionalsStructAttribute", - readUnitTestingListNullablesAndOptionalsStructAttributeInteractionInfo); - Map readUnitTestingEnumAttrCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingEnumAttrAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readEnumAttrAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingEnumAttrCommandParams); - result.put("readEnumAttrAttribute", readUnitTestingEnumAttrAttributeInteractionInfo); - Map readUnitTestingRangeRestrictedInt8uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingRangeRestrictedInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readRangeRestrictedInt8uAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingRangeRestrictedInt8uCommandParams); - result.put( - "readRangeRestrictedInt8uAttribute", - readUnitTestingRangeRestrictedInt8uAttributeInteractionInfo); - Map readUnitTestingRangeRestrictedInt8sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingRangeRestrictedInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readRangeRestrictedInt8sAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingRangeRestrictedInt8sCommandParams); - result.put( - "readRangeRestrictedInt8sAttribute", - readUnitTestingRangeRestrictedInt8sAttributeInteractionInfo); - Map readUnitTestingRangeRestrictedInt16uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingRangeRestrictedInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readRangeRestrictedInt16uAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingRangeRestrictedInt16uCommandParams); - result.put( - "readRangeRestrictedInt16uAttribute", - readUnitTestingRangeRestrictedInt16uAttributeInteractionInfo); - Map readUnitTestingRangeRestrictedInt16sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingRangeRestrictedInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readRangeRestrictedInt16sAttribute( - (ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingRangeRestrictedInt16sCommandParams); - result.put( - "readRangeRestrictedInt16sAttribute", - readUnitTestingRangeRestrictedInt16sAttributeInteractionInfo); - Map readUnitTestingListLongOctetStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingListLongOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readListLongOctetStringAttribute( - (ChipClusters.UnitTestingCluster.ListLongOctetStringAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterListLongOctetStringAttributeCallback(), - readUnitTestingListLongOctetStringCommandParams); - result.put( - "readListLongOctetStringAttribute", - readUnitTestingListLongOctetStringAttributeInteractionInfo); - Map readUnitTestingListFabricScopedCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingListFabricScopedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readListFabricScopedAttribute( - (ChipClusters.UnitTestingCluster.ListFabricScopedAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterListFabricScopedAttributeCallback(), - readUnitTestingListFabricScopedCommandParams); - result.put( - "readListFabricScopedAttribute", readUnitTestingListFabricScopedAttributeInteractionInfo); - Map readUnitTestingTimedWriteBooleanCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingTimedWriteBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readTimedWriteBooleanAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readUnitTestingTimedWriteBooleanCommandParams); - result.put( - "readTimedWriteBooleanAttribute", readUnitTestingTimedWriteBooleanAttributeInteractionInfo); - Map readUnitTestingGeneralErrorBooleanCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingGeneralErrorBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readGeneralErrorBooleanAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readUnitTestingGeneralErrorBooleanCommandParams); - result.put( - "readGeneralErrorBooleanAttribute", - readUnitTestingGeneralErrorBooleanAttributeInteractionInfo); - Map readUnitTestingClusterErrorBooleanCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingClusterErrorBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readClusterErrorBooleanAttribute( - (ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readUnitTestingClusterErrorBooleanCommandParams); - result.put( - "readClusterErrorBooleanAttribute", - readUnitTestingClusterErrorBooleanAttributeInteractionInfo); - Map readUnitTestingUnsupportedCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingUnsupportedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readUnsupportedAttribute((ChipClusters.BooleanAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), - readUnitTestingUnsupportedCommandParams); - result.put("readUnsupportedAttribute", readUnitTestingUnsupportedAttributeInteractionInfo); - Map readUnitTestingNullableBooleanCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableBooleanAttribute( - (ChipClusters.UnitTestingCluster.NullableBooleanAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableBooleanAttributeCallback(), - readUnitTestingNullableBooleanCommandParams); - result.put( - "readNullableBooleanAttribute", readUnitTestingNullableBooleanAttributeInteractionInfo); - Map readUnitTestingNullableBitmap8CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableBitmap8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableBitmap8Attribute( - (ChipClusters.UnitTestingCluster.NullableBitmap8AttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableBitmap8AttributeCallback(), - readUnitTestingNullableBitmap8CommandParams); - result.put( - "readNullableBitmap8Attribute", readUnitTestingNullableBitmap8AttributeInteractionInfo); - Map readUnitTestingNullableBitmap16CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableBitmap16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableBitmap16Attribute( - (ChipClusters.UnitTestingCluster.NullableBitmap16AttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableBitmap16AttributeCallback(), - readUnitTestingNullableBitmap16CommandParams); - result.put( - "readNullableBitmap16Attribute", readUnitTestingNullableBitmap16AttributeInteractionInfo); - Map readUnitTestingNullableBitmap32CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableBitmap32AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableBitmap32Attribute( - (ChipClusters.UnitTestingCluster.NullableBitmap32AttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableBitmap32AttributeCallback(), - readUnitTestingNullableBitmap32CommandParams); - result.put( - "readNullableBitmap32Attribute", readUnitTestingNullableBitmap32AttributeInteractionInfo); - Map readUnitTestingNullableBitmap64CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableBitmap64AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableBitmap64Attribute( - (ChipClusters.UnitTestingCluster.NullableBitmap64AttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableBitmap64AttributeCallback(), - readUnitTestingNullableBitmap64CommandParams); - result.put( - "readNullableBitmap64Attribute", readUnitTestingNullableBitmap64AttributeInteractionInfo); - Map readUnitTestingNullableInt8uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt8uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt8uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt8uAttributeCallback(), - readUnitTestingNullableInt8uCommandParams); - result.put("readNullableInt8uAttribute", readUnitTestingNullableInt8uAttributeInteractionInfo); - Map readUnitTestingNullableInt16uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt16uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt16uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt16uAttributeCallback(), - readUnitTestingNullableInt16uCommandParams); - result.put( - "readNullableInt16uAttribute", readUnitTestingNullableInt16uAttributeInteractionInfo); - Map readUnitTestingNullableInt24uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt24uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt24uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt24uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt24uAttributeCallback(), - readUnitTestingNullableInt24uCommandParams); - result.put( - "readNullableInt24uAttribute", readUnitTestingNullableInt24uAttributeInteractionInfo); - Map readUnitTestingNullableInt32uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt32uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt32uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt32uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt32uAttributeCallback(), - readUnitTestingNullableInt32uCommandParams); - result.put( - "readNullableInt32uAttribute", readUnitTestingNullableInt32uAttributeInteractionInfo); - Map readUnitTestingNullableInt40uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt40uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt40uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt40uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt40uAttributeCallback(), - readUnitTestingNullableInt40uCommandParams); - result.put( - "readNullableInt40uAttribute", readUnitTestingNullableInt40uAttributeInteractionInfo); - Map readUnitTestingNullableInt48uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt48uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt48uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt48uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt48uAttributeCallback(), - readUnitTestingNullableInt48uCommandParams); - result.put( - "readNullableInt48uAttribute", readUnitTestingNullableInt48uAttributeInteractionInfo); - Map readUnitTestingNullableInt56uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt56uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt56uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt56uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt56uAttributeCallback(), - readUnitTestingNullableInt56uCommandParams); - result.put( - "readNullableInt56uAttribute", readUnitTestingNullableInt56uAttributeInteractionInfo); - Map readUnitTestingNullableInt64uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt64uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt64uAttribute( - (ChipClusters.UnitTestingCluster.NullableInt64uAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt64uAttributeCallback(), - readUnitTestingNullableInt64uCommandParams); - result.put( - "readNullableInt64uAttribute", readUnitTestingNullableInt64uAttributeInteractionInfo); - Map readUnitTestingNullableInt8sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt8sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt8sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt8sAttributeCallback(), - readUnitTestingNullableInt8sCommandParams); - result.put("readNullableInt8sAttribute", readUnitTestingNullableInt8sAttributeInteractionInfo); - Map readUnitTestingNullableInt16sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt16sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt16sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt16sAttributeCallback(), - readUnitTestingNullableInt16sCommandParams); - result.put( - "readNullableInt16sAttribute", readUnitTestingNullableInt16sAttributeInteractionInfo); - Map readUnitTestingNullableInt24sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt24sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt24sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt24sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt24sAttributeCallback(), - readUnitTestingNullableInt24sCommandParams); - result.put( - "readNullableInt24sAttribute", readUnitTestingNullableInt24sAttributeInteractionInfo); - Map readUnitTestingNullableInt32sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt32sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt32sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt32sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt32sAttributeCallback(), - readUnitTestingNullableInt32sCommandParams); - result.put( - "readNullableInt32sAttribute", readUnitTestingNullableInt32sAttributeInteractionInfo); - Map readUnitTestingNullableInt40sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt40sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt40sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt40sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt40sAttributeCallback(), - readUnitTestingNullableInt40sCommandParams); - result.put( - "readNullableInt40sAttribute", readUnitTestingNullableInt40sAttributeInteractionInfo); - Map readUnitTestingNullableInt48sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt48sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt48sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt48sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt48sAttributeCallback(), - readUnitTestingNullableInt48sCommandParams); - result.put( - "readNullableInt48sAttribute", readUnitTestingNullableInt48sAttributeInteractionInfo); - Map readUnitTestingNullableInt56sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt56sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt56sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt56sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt56sAttributeCallback(), - readUnitTestingNullableInt56sCommandParams); - result.put( - "readNullableInt56sAttribute", readUnitTestingNullableInt56sAttributeInteractionInfo); - Map readUnitTestingNullableInt64sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableInt64sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableInt64sAttribute( - (ChipClusters.UnitTestingCluster.NullableInt64sAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt64sAttributeCallback(), - readUnitTestingNullableInt64sCommandParams); - result.put( - "readNullableInt64sAttribute", readUnitTestingNullableInt64sAttributeInteractionInfo); - Map readUnitTestingNullableEnum8CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableEnum8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableEnum8Attribute( - (ChipClusters.UnitTestingCluster.NullableEnum8AttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableEnum8AttributeCallback(), - readUnitTestingNullableEnum8CommandParams); - result.put("readNullableEnum8Attribute", readUnitTestingNullableEnum8AttributeInteractionInfo); - Map readUnitTestingNullableEnum16CommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableEnum16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableEnum16Attribute( - (ChipClusters.UnitTestingCluster.NullableEnum16AttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterNullableEnum16AttributeCallback(), - readUnitTestingNullableEnum16CommandParams); - result.put( - "readNullableEnum16Attribute", readUnitTestingNullableEnum16AttributeInteractionInfo); - Map readUnitTestingNullableFloatSingleCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableFloatSingleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableFloatSingleAttribute( - (ChipClusters.UnitTestingCluster.NullableFloatSingleAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableFloatSingleAttributeCallback(), - readUnitTestingNullableFloatSingleCommandParams); - result.put( - "readNullableFloatSingleAttribute", - readUnitTestingNullableFloatSingleAttributeInteractionInfo); - Map readUnitTestingNullableFloatDoubleCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableFloatDoubleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableFloatDoubleAttribute( - (ChipClusters.UnitTestingCluster.NullableFloatDoubleAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableFloatDoubleAttributeCallback(), - readUnitTestingNullableFloatDoubleCommandParams); - result.put( - "readNullableFloatDoubleAttribute", - readUnitTestingNullableFloatDoubleAttributeInteractionInfo); - Map readUnitTestingNullableOctetStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableOctetStringAttribute( - (ChipClusters.UnitTestingCluster.NullableOctetStringAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableOctetStringAttributeCallback(), - readUnitTestingNullableOctetStringCommandParams); - result.put( - "readNullableOctetStringAttribute", - readUnitTestingNullableOctetStringAttributeInteractionInfo); - Map readUnitTestingNullableCharStringCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableCharStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableCharStringAttribute( - (ChipClusters.UnitTestingCluster.NullableCharStringAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableCharStringAttributeCallback(), - readUnitTestingNullableCharStringCommandParams); - result.put( - "readNullableCharStringAttribute", - readUnitTestingNullableCharStringAttributeInteractionInfo); - Map readUnitTestingNullableEnumAttrCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableEnumAttrAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableEnumAttrAttribute( - (ChipClusters.UnitTestingCluster.NullableEnumAttrAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableEnumAttrAttributeCallback(), - readUnitTestingNullableEnumAttrCommandParams); - result.put( - "readNullableEnumAttrAttribute", readUnitTestingNullableEnumAttrAttributeInteractionInfo); - Map readUnitTestingNullableRangeRestrictedInt8uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableRangeRestrictedInt8uAttribute( - (ChipClusters.UnitTestingCluster - .NullableRangeRestrictedInt8uAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableRangeRestrictedInt8uAttributeCallback(), - readUnitTestingNullableRangeRestrictedInt8uCommandParams); - result.put( - "readNullableRangeRestrictedInt8uAttribute", - readUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo); - Map readUnitTestingNullableRangeRestrictedInt8sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableRangeRestrictedInt8sAttribute( - (ChipClusters.UnitTestingCluster - .NullableRangeRestrictedInt8sAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableRangeRestrictedInt8sAttributeCallback(), - readUnitTestingNullableRangeRestrictedInt8sCommandParams); - result.put( - "readNullableRangeRestrictedInt8sAttribute", - readUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo); - Map readUnitTestingNullableRangeRestrictedInt16uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableRangeRestrictedInt16uAttribute( - (ChipClusters.UnitTestingCluster - .NullableRangeRestrictedInt16uAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableRangeRestrictedInt16uAttributeCallback(), - readUnitTestingNullableRangeRestrictedInt16uCommandParams); - result.put( - "readNullableRangeRestrictedInt16uAttribute", - readUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo); - Map readUnitTestingNullableRangeRestrictedInt16sCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readNullableRangeRestrictedInt16sAttribute( - (ChipClusters.UnitTestingCluster - .NullableRangeRestrictedInt16sAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterNullableRangeRestrictedInt16sAttributeCallback(), - readUnitTestingNullableRangeRestrictedInt16sCommandParams); - result.put( - "readNullableRangeRestrictedInt16sAttribute", - readUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo); - Map readUnitTestingWriteOnlyInt8uCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingWriteOnlyInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readWriteOnlyInt8uAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingWriteOnlyInt8uCommandParams); - result.put( - "readWriteOnlyInt8uAttribute", readUnitTestingWriteOnlyInt8uAttributeInteractionInfo); - Map readUnitTestingGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.UnitTestingCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterGeneratedCommandListAttributeCallback(), - readUnitTestingGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readUnitTestingGeneratedCommandListAttributeInteractionInfo); - Map readUnitTestingAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.UnitTestingCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedUnitTestingClusterAcceptedCommandListAttributeCallback(), - readUnitTestingAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readUnitTestingAcceptedCommandListAttributeInteractionInfo); - Map readUnitTestingEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readEventListAttribute( - (ChipClusters.UnitTestingCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedUnitTestingClusterEventListAttributeCallback(), - readUnitTestingEventListCommandParams); - result.put("readEventListAttribute", readUnitTestingEventListAttributeInteractionInfo); - Map readUnitTestingAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.UnitTestingCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping.DelegatedUnitTestingClusterAttributeListAttributeCallback(), - readUnitTestingAttributeListCommandParams); - result.put("readAttributeListAttribute", readUnitTestingAttributeListAttributeInteractionInfo); - Map readUnitTestingFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readUnitTestingFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readUnitTestingFeatureMapAttributeInteractionInfo); - Map readUnitTestingClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readUnitTestingClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readUnitTestingClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readUnitTestingClusterRevisionAttributeInteractionInfo); - - return result; - } - - private static Map readFaultInjectionInteractionInfo() { - Map result = new LinkedHashMap<>(); - Map readFaultInjectionGeneratedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFaultInjectionGeneratedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FaultInjectionCluster) cluster) - .readGeneratedCommandListAttribute( - (ChipClusters.FaultInjectionCluster.GeneratedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFaultInjectionClusterGeneratedCommandListAttributeCallback(), - readFaultInjectionGeneratedCommandListCommandParams); - result.put( - "readGeneratedCommandListAttribute", - readFaultInjectionGeneratedCommandListAttributeInteractionInfo); - Map readFaultInjectionAcceptedCommandListCommandParams = - new LinkedHashMap(); - InteractionInfo readFaultInjectionAcceptedCommandListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FaultInjectionCluster) cluster) - .readAcceptedCommandListAttribute( - (ChipClusters.FaultInjectionCluster.AcceptedCommandListAttributeCallback) - callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFaultInjectionClusterAcceptedCommandListAttributeCallback(), - readFaultInjectionAcceptedCommandListCommandParams); - result.put( - "readAcceptedCommandListAttribute", - readFaultInjectionAcceptedCommandListAttributeInteractionInfo); - Map readFaultInjectionEventListCommandParams = - new LinkedHashMap(); - InteractionInfo readFaultInjectionEventListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FaultInjectionCluster) cluster) - .readEventListAttribute( - (ChipClusters.FaultInjectionCluster.EventListAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedFaultInjectionClusterEventListAttributeCallback(), - readFaultInjectionEventListCommandParams); - result.put("readEventListAttribute", readFaultInjectionEventListAttributeInteractionInfo); - Map readFaultInjectionAttributeListCommandParams = - new LinkedHashMap(); - InteractionInfo readFaultInjectionAttributeListAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FaultInjectionCluster) cluster) - .readAttributeListAttribute( - (ChipClusters.FaultInjectionCluster.AttributeListAttributeCallback) callback); - }, - () -> - new ClusterInfoMapping - .DelegatedFaultInjectionClusterAttributeListAttributeCallback(), - readFaultInjectionAttributeListCommandParams); - result.put( - "readAttributeListAttribute", readFaultInjectionAttributeListAttributeInteractionInfo); - Map readFaultInjectionFeatureMapCommandParams = - new LinkedHashMap(); - InteractionInfo readFaultInjectionFeatureMapAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FaultInjectionCluster) cluster) - .readFeatureMapAttribute((ChipClusters.LongAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), - readFaultInjectionFeatureMapCommandParams); - result.put("readFeatureMapAttribute", readFaultInjectionFeatureMapAttributeInteractionInfo); - Map readFaultInjectionClusterRevisionCommandParams = - new LinkedHashMap(); - InteractionInfo readFaultInjectionClusterRevisionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FaultInjectionCluster) cluster) - .readClusterRevisionAttribute((ChipClusters.IntegerAttributeCallback) callback); - }, - () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), - readFaultInjectionClusterRevisionCommandParams); - result.put( - "readClusterRevisionAttribute", readFaultInjectionClusterRevisionAttributeInteractionInfo); - - return result; - } - - @SuppressWarnings("serial") - public Map> getReadAttributeMap() { - - return new HashMap>() { - { - put("identify", readIdentifyInteractionInfo()); - put("groups", readGroupsInteractionInfo()); - put("scenes", readScenesInteractionInfo()); - put("onOff", readOnOffInteractionInfo()); - put("onOffSwitchConfiguration", readOnOffSwitchConfigurationInteractionInfo()); - put("levelControl", readLevelControlInteractionInfo()); - put("binaryInputBasic", readBinaryInputBasicInteractionInfo()); - put("pulseWidthModulation", readPulseWidthModulationInteractionInfo()); - put("descriptor", readDescriptorInteractionInfo()); - put("binding", readBindingInteractionInfo()); - put("accessControl", readAccessControlInteractionInfo()); - put("actions", readActionsInteractionInfo()); - put("basicInformation", readBasicInformationInteractionInfo()); - put("otaSoftwareUpdateProvider", readOtaSoftwareUpdateProviderInteractionInfo()); - put("otaSoftwareUpdateRequestor", readOtaSoftwareUpdateRequestorInteractionInfo()); - put("localizationConfiguration", readLocalizationConfigurationInteractionInfo()); - put("timeFormatLocalization", readTimeFormatLocalizationInteractionInfo()); - put("unitLocalization", readUnitLocalizationInteractionInfo()); - put("powerSourceConfiguration", readPowerSourceConfigurationInteractionInfo()); - put("powerSource", readPowerSourceInteractionInfo()); - put("generalCommissioning", readGeneralCommissioningInteractionInfo()); - put("networkCommissioning", readNetworkCommissioningInteractionInfo()); - put("diagnosticLogs", readDiagnosticLogsInteractionInfo()); - put("generalDiagnostics", readGeneralDiagnosticsInteractionInfo()); - put("softwareDiagnostics", readSoftwareDiagnosticsInteractionInfo()); - put("threadNetworkDiagnostics", readThreadNetworkDiagnosticsInteractionInfo()); - put("wiFiNetworkDiagnostics", readWiFiNetworkDiagnosticsInteractionInfo()); - put("ethernetNetworkDiagnostics", readEthernetNetworkDiagnosticsInteractionInfo()); - put("timeSynchronization", readTimeSynchronizationInteractionInfo()); - put("bridgedDeviceBasicInformation", readBridgedDeviceBasicInformationInteractionInfo()); - put("switch", readSwitchInteractionInfo()); - put("administratorCommissioning", readAdministratorCommissioningInteractionInfo()); - put("operationalCredentials", readOperationalCredentialsInteractionInfo()); - put("groupKeyManagement", readGroupKeyManagementInteractionInfo()); - put("fixedLabel", readFixedLabelInteractionInfo()); - put("userLabel", readUserLabelInteractionInfo()); - put("proxyConfiguration", readProxyConfigurationInteractionInfo()); - put("proxyDiscovery", readProxyDiscoveryInteractionInfo()); - put("proxyValid", readProxyValidInteractionInfo()); - put("booleanState", readBooleanStateInteractionInfo()); - put("icdManagement", readIcdManagementInteractionInfo()); - put("modeSelect", readModeSelectInteractionInfo()); - put("temperatureControl", readTemperatureControlInteractionInfo()); - put("refrigeratorAlarm", readRefrigeratorAlarmInteractionInfo()); - put("airQuality", readAirQualityInteractionInfo()); - put("smokeCoAlarm", readSmokeCoAlarmInteractionInfo()); - put("hepaFilterMonitoring", readHepaFilterMonitoringInteractionInfo()); - put( - "activatedCarbonFilterMonitoring", - readActivatedCarbonFilterMonitoringInteractionInfo()); - put("ceramicFilterMonitoring", readCeramicFilterMonitoringInteractionInfo()); - put("electrostaticFilterMonitoring", readElectrostaticFilterMonitoringInteractionInfo()); - put("uvFilterMonitoring", readUvFilterMonitoringInteractionInfo()); - put("ionizingFilterMonitoring", readIonizingFilterMonitoringInteractionInfo()); - put("zeoliteFilterMonitoring", readZeoliteFilterMonitoringInteractionInfo()); - put("ozoneFilterMonitoring", readOzoneFilterMonitoringInteractionInfo()); - put("waterTankMonitoring", readWaterTankMonitoringInteractionInfo()); - put("fuelTankMonitoring", readFuelTankMonitoringInteractionInfo()); - put("inkCartridgeMonitoring", readInkCartridgeMonitoringInteractionInfo()); - put("tonerCartridgeMonitoring", readTonerCartridgeMonitoringInteractionInfo()); - put("doorLock", readDoorLockInteractionInfo()); - put("windowCovering", readWindowCoveringInteractionInfo()); - put("barrierControl", readBarrierControlInteractionInfo()); - put("pumpConfigurationAndControl", readPumpConfigurationAndControlInteractionInfo()); - put("thermostat", readThermostatInteractionInfo()); - put("fanControl", readFanControlInteractionInfo()); - put( - "thermostatUserInterfaceConfiguration", - readThermostatUserInterfaceConfigurationInteractionInfo()); - put("colorControl", readColorControlInteractionInfo()); - put("ballastConfiguration", readBallastConfigurationInteractionInfo()); - put("illuminanceMeasurement", readIlluminanceMeasurementInteractionInfo()); - put("temperatureMeasurement", readTemperatureMeasurementInteractionInfo()); - put("pressureMeasurement", readPressureMeasurementInteractionInfo()); - put("flowMeasurement", readFlowMeasurementInteractionInfo()); - put("relativeHumidityMeasurement", readRelativeHumidityMeasurementInteractionInfo()); - put("occupancySensing", readOccupancySensingInteractionInfo()); - put("wakeOnLan", readWakeOnLanInteractionInfo()); - put("channel", readChannelInteractionInfo()); - put("targetNavigator", readTargetNavigatorInteractionInfo()); - put("mediaPlayback", readMediaPlaybackInteractionInfo()); - put("mediaInput", readMediaInputInteractionInfo()); - put("lowPower", readLowPowerInteractionInfo()); - put("keypadInput", readKeypadInputInteractionInfo()); - put("contentLauncher", readContentLauncherInteractionInfo()); - put("audioOutput", readAudioOutputInteractionInfo()); - put("applicationLauncher", readApplicationLauncherInteractionInfo()); - put("applicationBasic", readApplicationBasicInteractionInfo()); - put("accountLogin", readAccountLoginInteractionInfo()); - put("electricalMeasurement", readElectricalMeasurementInteractionInfo()); - put("unitTesting", readUnitTestingInteractionInfo()); - put("faultInjection", readFaultInjectionInteractionInfo()); - } - }; - } + private static Map readIdentifyInteractionInfo() { + Map result = new LinkedHashMap<>();Map readIdentifyIdentifyTimeCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyIdentifyTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readIdentifyTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIdentifyIdentifyTimeCommandParams + ); + result.put("readIdentifyTimeAttribute", readIdentifyIdentifyTimeAttributeInteractionInfo); + Map readIdentifyIdentifyTypeCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyIdentifyTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readIdentifyTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIdentifyIdentifyTypeCommandParams + ); + result.put("readIdentifyTypeAttribute", readIdentifyIdentifyTypeAttributeInteractionInfo); + Map readIdentifyGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.IdentifyCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIdentifyClusterGeneratedCommandListAttributeCallback(), + readIdentifyGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readIdentifyGeneratedCommandListAttributeInteractionInfo); + Map readIdentifyAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.IdentifyCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIdentifyClusterAcceptedCommandListAttributeCallback(), + readIdentifyAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readIdentifyAcceptedCommandListAttributeInteractionInfo); + Map readIdentifyEventListCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readEventListAttribute( + (ChipClusters.IdentifyCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIdentifyClusterEventListAttributeCallback(), + readIdentifyEventListCommandParams + ); + result.put("readEventListAttribute", readIdentifyEventListAttributeInteractionInfo); + Map readIdentifyAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readAttributeListAttribute( + (ChipClusters.IdentifyCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIdentifyClusterAttributeListAttributeCallback(), + readIdentifyAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readIdentifyAttributeListAttributeInteractionInfo); + Map readIdentifyFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readIdentifyFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readIdentifyFeatureMapAttributeInteractionInfo); + Map readIdentifyClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readIdentifyClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIdentifyClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readIdentifyClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readGroupsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readGroupsNameSupportCommandParams = new LinkedHashMap(); + InteractionInfo readGroupsNameSupportAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster).readNameSupportAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGroupsNameSupportCommandParams + ); + result.put("readNameSupportAttribute", readGroupsNameSupportAttributeInteractionInfo); + Map readGroupsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.GroupsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupsClusterGeneratedCommandListAttributeCallback(), + readGroupsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readGroupsGeneratedCommandListAttributeInteractionInfo); + Map readGroupsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.GroupsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupsClusterAcceptedCommandListAttributeCallback(), + readGroupsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readGroupsAcceptedCommandListAttributeInteractionInfo); + Map readGroupsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster).readEventListAttribute( + (ChipClusters.GroupsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupsClusterEventListAttributeCallback(), + readGroupsEventListCommandParams + ); + result.put("readEventListAttribute", readGroupsEventListAttributeInteractionInfo); + Map readGroupsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster).readAttributeListAttribute( + (ChipClusters.GroupsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupsClusterAttributeListAttributeCallback(), + readGroupsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readGroupsAttributeListAttributeInteractionInfo); + Map readGroupsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readGroupsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readGroupsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readGroupsFeatureMapAttributeInteractionInfo); + Map readGroupsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readGroupsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGroupsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readGroupsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readScenesInteractionInfo() { + Map result = new LinkedHashMap<>();Map readScenesSceneCountCommandParams = new LinkedHashMap(); + InteractionInfo readScenesSceneCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readSceneCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readScenesSceneCountCommandParams + ); + result.put("readSceneCountAttribute", readScenesSceneCountAttributeInteractionInfo); + Map readScenesCurrentSceneCommandParams = new LinkedHashMap(); + InteractionInfo readScenesCurrentSceneAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readCurrentSceneAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readScenesCurrentSceneCommandParams + ); + result.put("readCurrentSceneAttribute", readScenesCurrentSceneAttributeInteractionInfo); + Map readScenesCurrentGroupCommandParams = new LinkedHashMap(); + InteractionInfo readScenesCurrentGroupAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readCurrentGroupAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readScenesCurrentGroupCommandParams + ); + result.put("readCurrentGroupAttribute", readScenesCurrentGroupAttributeInteractionInfo); + Map readScenesSceneValidCommandParams = new LinkedHashMap(); + InteractionInfo readScenesSceneValidAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readSceneValidAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readScenesSceneValidCommandParams + ); + result.put("readSceneValidAttribute", readScenesSceneValidAttributeInteractionInfo); + Map readScenesNameSupportCommandParams = new LinkedHashMap(); + InteractionInfo readScenesNameSupportAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readNameSupportAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readScenesNameSupportCommandParams + ); + result.put("readNameSupportAttribute", readScenesNameSupportAttributeInteractionInfo); + Map readScenesLastConfiguredByCommandParams = new LinkedHashMap(); + InteractionInfo readScenesLastConfiguredByAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readLastConfiguredByAttribute( + (ChipClusters.ScenesCluster.LastConfiguredByAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedScenesClusterLastConfiguredByAttributeCallback(), + readScenesLastConfiguredByCommandParams + ); + result.put("readLastConfiguredByAttribute", readScenesLastConfiguredByAttributeInteractionInfo); + Map readScenesGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readScenesGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ScenesCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedScenesClusterGeneratedCommandListAttributeCallback(), + readScenesGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readScenesGeneratedCommandListAttributeInteractionInfo); + Map readScenesAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readScenesAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ScenesCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedScenesClusterAcceptedCommandListAttributeCallback(), + readScenesAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readScenesAcceptedCommandListAttributeInteractionInfo); + Map readScenesEventListCommandParams = new LinkedHashMap(); + InteractionInfo readScenesEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readEventListAttribute( + (ChipClusters.ScenesCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedScenesClusterEventListAttributeCallback(), + readScenesEventListCommandParams + ); + result.put("readEventListAttribute", readScenesEventListAttributeInteractionInfo); + Map readScenesAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readScenesAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readAttributeListAttribute( + (ChipClusters.ScenesCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedScenesClusterAttributeListAttributeCallback(), + readScenesAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readScenesAttributeListAttributeInteractionInfo); + Map readScenesFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readScenesFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readScenesFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readScenesFeatureMapAttributeInteractionInfo); + Map readScenesClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readScenesClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readScenesClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readScenesClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readOnOffInteractionInfo() { + Map result = new LinkedHashMap<>();Map readOnOffOnOffCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffOnOffAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readOnOffAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readOnOffOnOffCommandParams + ); + result.put("readOnOffAttribute", readOnOffOnOffAttributeInteractionInfo); + Map readOnOffGlobalSceneControlCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffGlobalSceneControlAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readGlobalSceneControlAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readOnOffGlobalSceneControlCommandParams + ); + result.put("readGlobalSceneControlAttribute", readOnOffGlobalSceneControlAttributeInteractionInfo); + Map readOnOffOnTimeCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffOnTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readOnTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOnOffOnTimeCommandParams + ); + result.put("readOnTimeAttribute", readOnOffOnTimeAttributeInteractionInfo); + Map readOnOffOffWaitTimeCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffOffWaitTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readOffWaitTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOnOffOffWaitTimeCommandParams + ); + result.put("readOffWaitTimeAttribute", readOnOffOffWaitTimeAttributeInteractionInfo); + Map readOnOffStartUpOnOffCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffStartUpOnOffAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readStartUpOnOffAttribute( + (ChipClusters.OnOffCluster.StartUpOnOffAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffClusterStartUpOnOffAttributeCallback(), + readOnOffStartUpOnOffCommandParams + ); + result.put("readStartUpOnOffAttribute", readOnOffStartUpOnOffAttributeInteractionInfo); + Map readOnOffGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.OnOffCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffClusterGeneratedCommandListAttributeCallback(), + readOnOffGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readOnOffGeneratedCommandListAttributeInteractionInfo); + Map readOnOffAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.OnOffCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffClusterAcceptedCommandListAttributeCallback(), + readOnOffAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readOnOffAcceptedCommandListAttributeInteractionInfo); + Map readOnOffEventListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readEventListAttribute( + (ChipClusters.OnOffCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffClusterEventListAttributeCallback(), + readOnOffEventListCommandParams + ); + result.put("readEventListAttribute", readOnOffEventListAttributeInteractionInfo); + Map readOnOffAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readAttributeListAttribute( + (ChipClusters.OnOffCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffClusterAttributeListAttributeCallback(), + readOnOffAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readOnOffAttributeListAttributeInteractionInfo); + Map readOnOffFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readOnOffFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readOnOffFeatureMapAttributeInteractionInfo); + Map readOnOffClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOnOffClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readOnOffClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readOnOffSwitchConfigurationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readOnOffSwitchConfigurationSwitchTypeCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationSwitchTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readSwitchTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOnOffSwitchConfigurationSwitchTypeCommandParams + ); + result.put("readSwitchTypeAttribute", readOnOffSwitchConfigurationSwitchTypeAttributeInteractionInfo); + Map readOnOffSwitchConfigurationSwitchActionsCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readSwitchActionsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOnOffSwitchConfigurationSwitchActionsCommandParams + ); + result.put("readSwitchActionsAttribute", readOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo); + Map readOnOffSwitchConfigurationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.OnOffSwitchConfigurationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffSwitchConfigurationClusterGeneratedCommandListAttributeCallback(), + readOnOffSwitchConfigurationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readOnOffSwitchConfigurationGeneratedCommandListAttributeInteractionInfo); + Map readOnOffSwitchConfigurationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.OnOffSwitchConfigurationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffSwitchConfigurationClusterAcceptedCommandListAttributeCallback(), + readOnOffSwitchConfigurationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readOnOffSwitchConfigurationAcceptedCommandListAttributeInteractionInfo); + Map readOnOffSwitchConfigurationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readEventListAttribute( + (ChipClusters.OnOffSwitchConfigurationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffSwitchConfigurationClusterEventListAttributeCallback(), + readOnOffSwitchConfigurationEventListCommandParams + ); + result.put("readEventListAttribute", readOnOffSwitchConfigurationEventListAttributeInteractionInfo); + Map readOnOffSwitchConfigurationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readAttributeListAttribute( + (ChipClusters.OnOffSwitchConfigurationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOnOffSwitchConfigurationClusterAttributeListAttributeCallback(), + readOnOffSwitchConfigurationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readOnOffSwitchConfigurationAttributeListAttributeInteractionInfo); + Map readOnOffSwitchConfigurationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readOnOffSwitchConfigurationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readOnOffSwitchConfigurationFeatureMapAttributeInteractionInfo); + Map readOnOffSwitchConfigurationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOnOffSwitchConfigurationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readOnOffSwitchConfigurationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readLevelControlInteractionInfo() { + Map result = new LinkedHashMap<>();Map readLevelControlCurrentLevelCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlCurrentLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readCurrentLevelAttribute( + (ChipClusters.LevelControlCluster.CurrentLevelAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterCurrentLevelAttributeCallback(), + readLevelControlCurrentLevelCommandParams + ); + result.put("readCurrentLevelAttribute", readLevelControlCurrentLevelAttributeInteractionInfo); + Map readLevelControlRemainingTimeCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlRemainingTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readRemainingTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlRemainingTimeCommandParams + ); + result.put("readRemainingTimeAttribute", readLevelControlRemainingTimeAttributeInteractionInfo); + Map readLevelControlMinLevelCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlMinLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readMinLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlMinLevelCommandParams + ); + result.put("readMinLevelAttribute", readLevelControlMinLevelAttributeInteractionInfo); + Map readLevelControlMaxLevelCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlMaxLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readMaxLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlMaxLevelCommandParams + ); + result.put("readMaxLevelAttribute", readLevelControlMaxLevelAttributeInteractionInfo); + Map readLevelControlCurrentFrequencyCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlCurrentFrequencyAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readCurrentFrequencyAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlCurrentFrequencyCommandParams + ); + result.put("readCurrentFrequencyAttribute", readLevelControlCurrentFrequencyAttributeInteractionInfo); + Map readLevelControlMinFrequencyCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlMinFrequencyAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readMinFrequencyAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlMinFrequencyCommandParams + ); + result.put("readMinFrequencyAttribute", readLevelControlMinFrequencyAttributeInteractionInfo); + Map readLevelControlMaxFrequencyCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlMaxFrequencyAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readMaxFrequencyAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlMaxFrequencyCommandParams + ); + result.put("readMaxFrequencyAttribute", readLevelControlMaxFrequencyAttributeInteractionInfo); + Map readLevelControlOptionsCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlOptionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readOptionsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlOptionsCommandParams + ); + result.put("readOptionsAttribute", readLevelControlOptionsAttributeInteractionInfo); + Map readLevelControlOnOffTransitionTimeCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlOnOffTransitionTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readOnOffTransitionTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlOnOffTransitionTimeCommandParams + ); + result.put("readOnOffTransitionTimeAttribute", readLevelControlOnOffTransitionTimeAttributeInteractionInfo); + Map readLevelControlOnLevelCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlOnLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readOnLevelAttribute( + (ChipClusters.LevelControlCluster.OnLevelAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterOnLevelAttributeCallback(), + readLevelControlOnLevelCommandParams + ); + result.put("readOnLevelAttribute", readLevelControlOnLevelAttributeInteractionInfo); + Map readLevelControlOnTransitionTimeCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlOnTransitionTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readOnTransitionTimeAttribute( + (ChipClusters.LevelControlCluster.OnTransitionTimeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterOnTransitionTimeAttributeCallback(), + readLevelControlOnTransitionTimeCommandParams + ); + result.put("readOnTransitionTimeAttribute", readLevelControlOnTransitionTimeAttributeInteractionInfo); + Map readLevelControlOffTransitionTimeCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlOffTransitionTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readOffTransitionTimeAttribute( + (ChipClusters.LevelControlCluster.OffTransitionTimeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterOffTransitionTimeAttributeCallback(), + readLevelControlOffTransitionTimeCommandParams + ); + result.put("readOffTransitionTimeAttribute", readLevelControlOffTransitionTimeAttributeInteractionInfo); + Map readLevelControlDefaultMoveRateCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlDefaultMoveRateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readDefaultMoveRateAttribute( + (ChipClusters.LevelControlCluster.DefaultMoveRateAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterDefaultMoveRateAttributeCallback(), + readLevelControlDefaultMoveRateCommandParams + ); + result.put("readDefaultMoveRateAttribute", readLevelControlDefaultMoveRateAttributeInteractionInfo); + Map readLevelControlStartUpCurrentLevelCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlStartUpCurrentLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readStartUpCurrentLevelAttribute( + (ChipClusters.LevelControlCluster.StartUpCurrentLevelAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterStartUpCurrentLevelAttributeCallback(), + readLevelControlStartUpCurrentLevelCommandParams + ); + result.put("readStartUpCurrentLevelAttribute", readLevelControlStartUpCurrentLevelAttributeInteractionInfo); + Map readLevelControlGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.LevelControlCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterGeneratedCommandListAttributeCallback(), + readLevelControlGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readLevelControlGeneratedCommandListAttributeInteractionInfo); + Map readLevelControlAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.LevelControlCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterAcceptedCommandListAttributeCallback(), + readLevelControlAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readLevelControlAcceptedCommandListAttributeInteractionInfo); + Map readLevelControlEventListCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readEventListAttribute( + (ChipClusters.LevelControlCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterEventListAttributeCallback(), + readLevelControlEventListCommandParams + ); + result.put("readEventListAttribute", readLevelControlEventListAttributeInteractionInfo); + Map readLevelControlAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readAttributeListAttribute( + (ChipClusters.LevelControlCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLevelControlClusterAttributeListAttributeCallback(), + readLevelControlAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readLevelControlAttributeListAttributeInteractionInfo); + Map readLevelControlFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readLevelControlFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readLevelControlFeatureMapAttributeInteractionInfo); + Map readLevelControlClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readLevelControlClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLevelControlClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readLevelControlClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readBinaryInputBasicInteractionInfo() { + Map result = new LinkedHashMap<>();Map readBinaryInputBasicActiveTextCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicActiveTextAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readActiveTextAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBinaryInputBasicActiveTextCommandParams + ); + result.put("readActiveTextAttribute", readBinaryInputBasicActiveTextAttributeInteractionInfo); + Map readBinaryInputBasicDescriptionCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicDescriptionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readDescriptionAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBinaryInputBasicDescriptionCommandParams + ); + result.put("readDescriptionAttribute", readBinaryInputBasicDescriptionAttributeInteractionInfo); + Map readBinaryInputBasicInactiveTextCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicInactiveTextAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readInactiveTextAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBinaryInputBasicInactiveTextCommandParams + ); + result.put("readInactiveTextAttribute", readBinaryInputBasicInactiveTextAttributeInteractionInfo); + Map readBinaryInputBasicOutOfServiceCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicOutOfServiceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readOutOfServiceAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readBinaryInputBasicOutOfServiceCommandParams + ); + result.put("readOutOfServiceAttribute", readBinaryInputBasicOutOfServiceAttributeInteractionInfo); + Map readBinaryInputBasicPolarityCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicPolarityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readPolarityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBinaryInputBasicPolarityCommandParams + ); + result.put("readPolarityAttribute", readBinaryInputBasicPolarityAttributeInteractionInfo); + Map readBinaryInputBasicPresentValueCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicPresentValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readPresentValueAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readBinaryInputBasicPresentValueCommandParams + ); + result.put("readPresentValueAttribute", readBinaryInputBasicPresentValueAttributeInteractionInfo); + Map readBinaryInputBasicReliabilityCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicReliabilityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readReliabilityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBinaryInputBasicReliabilityCommandParams + ); + result.put("readReliabilityAttribute", readBinaryInputBasicReliabilityAttributeInteractionInfo); + Map readBinaryInputBasicStatusFlagsCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicStatusFlagsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readStatusFlagsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBinaryInputBasicStatusFlagsCommandParams + ); + result.put("readStatusFlagsAttribute", readBinaryInputBasicStatusFlagsAttributeInteractionInfo); + Map readBinaryInputBasicApplicationTypeCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicApplicationTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readApplicationTypeAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBinaryInputBasicApplicationTypeCommandParams + ); + result.put("readApplicationTypeAttribute", readBinaryInputBasicApplicationTypeAttributeInteractionInfo); + Map readBinaryInputBasicGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.BinaryInputBasicCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBinaryInputBasicClusterGeneratedCommandListAttributeCallback(), + readBinaryInputBasicGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readBinaryInputBasicGeneratedCommandListAttributeInteractionInfo); + Map readBinaryInputBasicAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.BinaryInputBasicCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBinaryInputBasicClusterAcceptedCommandListAttributeCallback(), + readBinaryInputBasicAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readBinaryInputBasicAcceptedCommandListAttributeInteractionInfo); + Map readBinaryInputBasicEventListCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readEventListAttribute( + (ChipClusters.BinaryInputBasicCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBinaryInputBasicClusterEventListAttributeCallback(), + readBinaryInputBasicEventListCommandParams + ); + result.put("readEventListAttribute", readBinaryInputBasicEventListAttributeInteractionInfo); + Map readBinaryInputBasicAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readAttributeListAttribute( + (ChipClusters.BinaryInputBasicCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBinaryInputBasicClusterAttributeListAttributeCallback(), + readBinaryInputBasicAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readBinaryInputBasicAttributeListAttributeInteractionInfo); + Map readBinaryInputBasicFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBinaryInputBasicFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readBinaryInputBasicFeatureMapAttributeInteractionInfo); + Map readBinaryInputBasicClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBinaryInputBasicClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBinaryInputBasicClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readBinaryInputBasicClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readPulseWidthModulationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readPulseWidthModulationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPulseWidthModulationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PulseWidthModulationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.PulseWidthModulationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPulseWidthModulationClusterGeneratedCommandListAttributeCallback(), + readPulseWidthModulationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readPulseWidthModulationGeneratedCommandListAttributeInteractionInfo); + Map readPulseWidthModulationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPulseWidthModulationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PulseWidthModulationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.PulseWidthModulationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPulseWidthModulationClusterAcceptedCommandListAttributeCallback(), + readPulseWidthModulationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readPulseWidthModulationAcceptedCommandListAttributeInteractionInfo); + Map readPulseWidthModulationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readPulseWidthModulationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PulseWidthModulationCluster) cluster).readEventListAttribute( + (ChipClusters.PulseWidthModulationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPulseWidthModulationClusterEventListAttributeCallback(), + readPulseWidthModulationEventListCommandParams + ); + result.put("readEventListAttribute", readPulseWidthModulationEventListAttributeInteractionInfo); + Map readPulseWidthModulationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readPulseWidthModulationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PulseWidthModulationCluster) cluster).readAttributeListAttribute( + (ChipClusters.PulseWidthModulationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPulseWidthModulationClusterAttributeListAttributeCallback(), + readPulseWidthModulationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readPulseWidthModulationAttributeListAttributeInteractionInfo); + Map readPulseWidthModulationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readPulseWidthModulationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PulseWidthModulationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPulseWidthModulationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readPulseWidthModulationFeatureMapAttributeInteractionInfo); + Map readPulseWidthModulationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readPulseWidthModulationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PulseWidthModulationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPulseWidthModulationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readPulseWidthModulationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readDescriptorInteractionInfo() { + Map result = new LinkedHashMap<>();Map readDescriptorDeviceTypeListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorDeviceTypeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readDeviceTypeListAttribute( + (ChipClusters.DescriptorCluster.DeviceTypeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterDeviceTypeListAttributeCallback(), + readDescriptorDeviceTypeListCommandParams + ); + result.put("readDeviceTypeListAttribute", readDescriptorDeviceTypeListAttributeInteractionInfo); + Map readDescriptorServerListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorServerListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readServerListAttribute( + (ChipClusters.DescriptorCluster.ServerListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterServerListAttributeCallback(), + readDescriptorServerListCommandParams + ); + result.put("readServerListAttribute", readDescriptorServerListAttributeInteractionInfo); + Map readDescriptorClientListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorClientListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readClientListAttribute( + (ChipClusters.DescriptorCluster.ClientListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterClientListAttributeCallback(), + readDescriptorClientListCommandParams + ); + result.put("readClientListAttribute", readDescriptorClientListAttributeInteractionInfo); + Map readDescriptorPartsListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorPartsListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readPartsListAttribute( + (ChipClusters.DescriptorCluster.PartsListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterPartsListAttributeCallback(), + readDescriptorPartsListCommandParams + ); + result.put("readPartsListAttribute", readDescriptorPartsListAttributeInteractionInfo); + Map readDescriptorGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.DescriptorCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterGeneratedCommandListAttributeCallback(), + readDescriptorGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readDescriptorGeneratedCommandListAttributeInteractionInfo); + Map readDescriptorAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.DescriptorCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterAcceptedCommandListAttributeCallback(), + readDescriptorAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readDescriptorAcceptedCommandListAttributeInteractionInfo); + Map readDescriptorEventListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readEventListAttribute( + (ChipClusters.DescriptorCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterEventListAttributeCallback(), + readDescriptorEventListCommandParams + ); + result.put("readEventListAttribute", readDescriptorEventListAttributeInteractionInfo); + Map readDescriptorAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readAttributeListAttribute( + (ChipClusters.DescriptorCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDescriptorClusterAttributeListAttributeCallback(), + readDescriptorAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readDescriptorAttributeListAttributeInteractionInfo); + Map readDescriptorFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readDescriptorFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readDescriptorFeatureMapAttributeInteractionInfo); + Map readDescriptorClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readDescriptorClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDescriptorClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readDescriptorClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readBindingInteractionInfo() { + Map result = new LinkedHashMap<>();Map readBindingBindingCommandParams = new LinkedHashMap(); + InteractionInfo readBindingBindingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster).readBindingAttribute( + (ChipClusters.BindingCluster.BindingAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBindingClusterBindingAttributeCallback(), + readBindingBindingCommandParams + ); + result.put("readBindingAttribute", readBindingBindingAttributeInteractionInfo); + Map readBindingGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBindingGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.BindingCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBindingClusterGeneratedCommandListAttributeCallback(), + readBindingGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readBindingGeneratedCommandListAttributeInteractionInfo); + Map readBindingAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBindingAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.BindingCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBindingClusterAcceptedCommandListAttributeCallback(), + readBindingAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readBindingAcceptedCommandListAttributeInteractionInfo); + Map readBindingEventListCommandParams = new LinkedHashMap(); + InteractionInfo readBindingEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster).readEventListAttribute( + (ChipClusters.BindingCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBindingClusterEventListAttributeCallback(), + readBindingEventListCommandParams + ); + result.put("readEventListAttribute", readBindingEventListAttributeInteractionInfo); + Map readBindingAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readBindingAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster).readAttributeListAttribute( + (ChipClusters.BindingCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBindingClusterAttributeListAttributeCallback(), + readBindingAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readBindingAttributeListAttributeInteractionInfo); + Map readBindingFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readBindingFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBindingFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readBindingFeatureMapAttributeInteractionInfo); + Map readBindingClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBindingClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBindingClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readBindingClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readAccessControlInteractionInfo() { + Map result = new LinkedHashMap<>();Map readAccessControlAclCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlAclAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readAclAttribute( + (ChipClusters.AccessControlCluster.AclAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccessControlClusterAclAttributeCallback(), + readAccessControlAclCommandParams + ); + result.put("readAclAttribute", readAccessControlAclAttributeInteractionInfo); + Map readAccessControlExtensionCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlExtensionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readExtensionAttribute( + (ChipClusters.AccessControlCluster.ExtensionAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccessControlClusterExtensionAttributeCallback(), + readAccessControlExtensionCommandParams + ); + result.put("readExtensionAttribute", readAccessControlExtensionAttributeInteractionInfo); + Map readAccessControlSubjectsPerAccessControlEntryCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlSubjectsPerAccessControlEntryAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readSubjectsPerAccessControlEntryAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAccessControlSubjectsPerAccessControlEntryCommandParams + ); + result.put("readSubjectsPerAccessControlEntryAttribute", readAccessControlSubjectsPerAccessControlEntryAttributeInteractionInfo); + Map readAccessControlTargetsPerAccessControlEntryCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlTargetsPerAccessControlEntryAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readTargetsPerAccessControlEntryAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAccessControlTargetsPerAccessControlEntryCommandParams + ); + result.put("readTargetsPerAccessControlEntryAttribute", readAccessControlTargetsPerAccessControlEntryAttributeInteractionInfo); + Map readAccessControlAccessControlEntriesPerFabricCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlAccessControlEntriesPerFabricAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readAccessControlEntriesPerFabricAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAccessControlAccessControlEntriesPerFabricCommandParams + ); + result.put("readAccessControlEntriesPerFabricAttribute", readAccessControlAccessControlEntriesPerFabricAttributeInteractionInfo); + Map readAccessControlGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.AccessControlCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccessControlClusterGeneratedCommandListAttributeCallback(), + readAccessControlGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readAccessControlGeneratedCommandListAttributeInteractionInfo); + Map readAccessControlAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.AccessControlCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccessControlClusterAcceptedCommandListAttributeCallback(), + readAccessControlAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readAccessControlAcceptedCommandListAttributeInteractionInfo); + Map readAccessControlEventListCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readEventListAttribute( + (ChipClusters.AccessControlCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccessControlClusterEventListAttributeCallback(), + readAccessControlEventListCommandParams + ); + result.put("readEventListAttribute", readAccessControlEventListAttributeInteractionInfo); + Map readAccessControlAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readAttributeListAttribute( + (ChipClusters.AccessControlCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccessControlClusterAttributeListAttributeCallback(), + readAccessControlAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readAccessControlAttributeListAttributeInteractionInfo); + Map readAccessControlFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readAccessControlFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readAccessControlFeatureMapAttributeInteractionInfo); + Map readAccessControlClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readAccessControlClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAccessControlClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readAccessControlClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readActionsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readActionsActionListCommandParams = new LinkedHashMap(); + InteractionInfo readActionsActionListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readActionListAttribute( + (ChipClusters.ActionsCluster.ActionListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActionsClusterActionListAttributeCallback(), + readActionsActionListCommandParams + ); + result.put("readActionListAttribute", readActionsActionListAttributeInteractionInfo); + Map readActionsEndpointListsCommandParams = new LinkedHashMap(); + InteractionInfo readActionsEndpointListsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readEndpointListsAttribute( + (ChipClusters.ActionsCluster.EndpointListsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActionsClusterEndpointListsAttributeCallback(), + readActionsEndpointListsCommandParams + ); + result.put("readEndpointListsAttribute", readActionsEndpointListsAttributeInteractionInfo); + Map readActionsSetupURLCommandParams = new LinkedHashMap(); + InteractionInfo readActionsSetupURLAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readSetupURLAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readActionsSetupURLCommandParams + ); + result.put("readSetupURLAttribute", readActionsSetupURLAttributeInteractionInfo); + Map readActionsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readActionsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ActionsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActionsClusterGeneratedCommandListAttributeCallback(), + readActionsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readActionsGeneratedCommandListAttributeInteractionInfo); + Map readActionsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readActionsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ActionsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActionsClusterAcceptedCommandListAttributeCallback(), + readActionsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readActionsAcceptedCommandListAttributeInteractionInfo); + Map readActionsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readActionsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readEventListAttribute( + (ChipClusters.ActionsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActionsClusterEventListAttributeCallback(), + readActionsEventListCommandParams + ); + result.put("readEventListAttribute", readActionsEventListAttributeInteractionInfo); + Map readActionsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readActionsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readAttributeListAttribute( + (ChipClusters.ActionsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActionsClusterAttributeListAttributeCallback(), + readActionsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readActionsAttributeListAttributeInteractionInfo); + Map readActionsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readActionsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readActionsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readActionsFeatureMapAttributeInteractionInfo); + Map readActionsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readActionsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActionsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readActionsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readActionsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readBasicInformationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readBasicInformationDataModelRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationDataModelRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readDataModelRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBasicInformationDataModelRevisionCommandParams + ); + result.put("readDataModelRevisionAttribute", readBasicInformationDataModelRevisionAttributeInteractionInfo); + Map readBasicInformationVendorNameCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationVendorNameAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readVendorNameAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationVendorNameCommandParams + ); + result.put("readVendorNameAttribute", readBasicInformationVendorNameAttributeInteractionInfo); + Map readBasicInformationVendorIDCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationVendorIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readVendorIDAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBasicInformationVendorIDCommandParams + ); + result.put("readVendorIDAttribute", readBasicInformationVendorIDAttributeInteractionInfo); + Map readBasicInformationProductNameCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationProductNameAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readProductNameAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationProductNameCommandParams + ); + result.put("readProductNameAttribute", readBasicInformationProductNameAttributeInteractionInfo); + Map readBasicInformationProductIDCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationProductIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readProductIDAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBasicInformationProductIDCommandParams + ); + result.put("readProductIDAttribute", readBasicInformationProductIDAttributeInteractionInfo); + Map readBasicInformationNodeLabelCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationNodeLabelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readNodeLabelAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationNodeLabelCommandParams + ); + result.put("readNodeLabelAttribute", readBasicInformationNodeLabelAttributeInteractionInfo); + Map readBasicInformationLocationCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationLocationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readLocationAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationLocationCommandParams + ); + result.put("readLocationAttribute", readBasicInformationLocationAttributeInteractionInfo); + Map readBasicInformationHardwareVersionCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationHardwareVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readHardwareVersionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBasicInformationHardwareVersionCommandParams + ); + result.put("readHardwareVersionAttribute", readBasicInformationHardwareVersionAttributeInteractionInfo); + Map readBasicInformationHardwareVersionStringCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationHardwareVersionStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readHardwareVersionStringAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationHardwareVersionStringCommandParams + ); + result.put("readHardwareVersionStringAttribute", readBasicInformationHardwareVersionStringAttributeInteractionInfo); + Map readBasicInformationSoftwareVersionCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationSoftwareVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readSoftwareVersionAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBasicInformationSoftwareVersionCommandParams + ); + result.put("readSoftwareVersionAttribute", readBasicInformationSoftwareVersionAttributeInteractionInfo); + Map readBasicInformationSoftwareVersionStringCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationSoftwareVersionStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readSoftwareVersionStringAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationSoftwareVersionStringCommandParams + ); + result.put("readSoftwareVersionStringAttribute", readBasicInformationSoftwareVersionStringAttributeInteractionInfo); + Map readBasicInformationManufacturingDateCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationManufacturingDateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readManufacturingDateAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationManufacturingDateCommandParams + ); + result.put("readManufacturingDateAttribute", readBasicInformationManufacturingDateAttributeInteractionInfo); + Map readBasicInformationPartNumberCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationPartNumberAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readPartNumberAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationPartNumberCommandParams + ); + result.put("readPartNumberAttribute", readBasicInformationPartNumberAttributeInteractionInfo); + Map readBasicInformationProductURLCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationProductURLAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readProductURLAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationProductURLCommandParams + ); + result.put("readProductURLAttribute", readBasicInformationProductURLAttributeInteractionInfo); + Map readBasicInformationProductLabelCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationProductLabelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readProductLabelAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationProductLabelCommandParams + ); + result.put("readProductLabelAttribute", readBasicInformationProductLabelAttributeInteractionInfo); + Map readBasicInformationSerialNumberCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationSerialNumberAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readSerialNumberAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationSerialNumberCommandParams + ); + result.put("readSerialNumberAttribute", readBasicInformationSerialNumberAttributeInteractionInfo); + Map readBasicInformationLocalConfigDisabledCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationLocalConfigDisabledAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readLocalConfigDisabledAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readBasicInformationLocalConfigDisabledCommandParams + ); + result.put("readLocalConfigDisabledAttribute", readBasicInformationLocalConfigDisabledAttributeInteractionInfo); + Map readBasicInformationReachableCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationReachableAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readReachableAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readBasicInformationReachableCommandParams + ); + result.put("readReachableAttribute", readBasicInformationReachableAttributeInteractionInfo); + Map readBasicInformationUniqueIDCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationUniqueIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readUniqueIDAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBasicInformationUniqueIDCommandParams + ); + result.put("readUniqueIDAttribute", readBasicInformationUniqueIDAttributeInteractionInfo); + Map readBasicInformationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.BasicInformationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBasicInformationClusterGeneratedCommandListAttributeCallback(), + readBasicInformationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readBasicInformationGeneratedCommandListAttributeInteractionInfo); + Map readBasicInformationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.BasicInformationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBasicInformationClusterAcceptedCommandListAttributeCallback(), + readBasicInformationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readBasicInformationAcceptedCommandListAttributeInteractionInfo); + Map readBasicInformationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readEventListAttribute( + (ChipClusters.BasicInformationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBasicInformationClusterEventListAttributeCallback(), + readBasicInformationEventListCommandParams + ); + result.put("readEventListAttribute", readBasicInformationEventListAttributeInteractionInfo); + Map readBasicInformationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readAttributeListAttribute( + (ChipClusters.BasicInformationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBasicInformationClusterAttributeListAttributeCallback(), + readBasicInformationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readBasicInformationAttributeListAttributeInteractionInfo); + Map readBasicInformationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBasicInformationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readBasicInformationFeatureMapAttributeInteractionInfo); + Map readBasicInformationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBasicInformationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBasicInformationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readBasicInformationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readOtaSoftwareUpdateProviderInteractionInfo() { + Map result = new LinkedHashMap<>();Map readOtaSoftwareUpdateProviderGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateProviderGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.OtaSoftwareUpdateProviderCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateProviderClusterGeneratedCommandListAttributeCallback(), + readOtaSoftwareUpdateProviderGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readOtaSoftwareUpdateProviderGeneratedCommandListAttributeInteractionInfo); + Map readOtaSoftwareUpdateProviderAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateProviderAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.OtaSoftwareUpdateProviderCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateProviderClusterAcceptedCommandListAttributeCallback(), + readOtaSoftwareUpdateProviderAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readOtaSoftwareUpdateProviderAcceptedCommandListAttributeInteractionInfo); + Map readOtaSoftwareUpdateProviderEventListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateProviderEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster).readEventListAttribute( + (ChipClusters.OtaSoftwareUpdateProviderCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateProviderClusterEventListAttributeCallback(), + readOtaSoftwareUpdateProviderEventListCommandParams + ); + result.put("readEventListAttribute", readOtaSoftwareUpdateProviderEventListAttributeInteractionInfo); + Map readOtaSoftwareUpdateProviderAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateProviderAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster).readAttributeListAttribute( + (ChipClusters.OtaSoftwareUpdateProviderCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateProviderClusterAttributeListAttributeCallback(), + readOtaSoftwareUpdateProviderAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readOtaSoftwareUpdateProviderAttributeListAttributeInteractionInfo); + Map readOtaSoftwareUpdateProviderFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateProviderFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readOtaSoftwareUpdateProviderFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readOtaSoftwareUpdateProviderFeatureMapAttributeInteractionInfo); + Map readOtaSoftwareUpdateProviderClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateProviderClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOtaSoftwareUpdateProviderClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readOtaSoftwareUpdateProviderClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readOtaSoftwareUpdateRequestorInteractionInfo() { + Map result = new LinkedHashMap<>();Map readOtaSoftwareUpdateRequestorDefaultOTAProvidersCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorDefaultOTAProvidersAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readDefaultOTAProvidersAttribute( + (ChipClusters.OtaSoftwareUpdateRequestorCluster.DefaultOTAProvidersAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateRequestorClusterDefaultOTAProvidersAttributeCallback(), + readOtaSoftwareUpdateRequestorDefaultOTAProvidersCommandParams + ); + result.put("readDefaultOTAProvidersAttribute", readOtaSoftwareUpdateRequestorDefaultOTAProvidersAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorUpdatePossibleCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorUpdatePossibleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readUpdatePossibleAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readOtaSoftwareUpdateRequestorUpdatePossibleCommandParams + ); + result.put("readUpdatePossibleAttribute", readOtaSoftwareUpdateRequestorUpdatePossibleAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorUpdateStateCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorUpdateStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readUpdateStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOtaSoftwareUpdateRequestorUpdateStateCommandParams + ); + result.put("readUpdateStateAttribute", readOtaSoftwareUpdateRequestorUpdateStateAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorUpdateStateProgressCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorUpdateStateProgressAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readUpdateStateProgressAttribute( + (ChipClusters.OtaSoftwareUpdateRequestorCluster.UpdateStateProgressAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateRequestorClusterUpdateStateProgressAttributeCallback(), + readOtaSoftwareUpdateRequestorUpdateStateProgressCommandParams + ); + result.put("readUpdateStateProgressAttribute", readOtaSoftwareUpdateRequestorUpdateStateProgressAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.OtaSoftwareUpdateRequestorCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateRequestorClusterGeneratedCommandListAttributeCallback(), + readOtaSoftwareUpdateRequestorGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readOtaSoftwareUpdateRequestorGeneratedCommandListAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.OtaSoftwareUpdateRequestorCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateRequestorClusterAcceptedCommandListAttributeCallback(), + readOtaSoftwareUpdateRequestorAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readOtaSoftwareUpdateRequestorAcceptedCommandListAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorEventListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readEventListAttribute( + (ChipClusters.OtaSoftwareUpdateRequestorCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateRequestorClusterEventListAttributeCallback(), + readOtaSoftwareUpdateRequestorEventListCommandParams + ); + result.put("readEventListAttribute", readOtaSoftwareUpdateRequestorEventListAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readAttributeListAttribute( + (ChipClusters.OtaSoftwareUpdateRequestorCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOtaSoftwareUpdateRequestorClusterAttributeListAttributeCallback(), + readOtaSoftwareUpdateRequestorAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readOtaSoftwareUpdateRequestorAttributeListAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readOtaSoftwareUpdateRequestorFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readOtaSoftwareUpdateRequestorFeatureMapAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOtaSoftwareUpdateRequestorClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readOtaSoftwareUpdateRequestorClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readLocalizationConfigurationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readLocalizationConfigurationActiveLocaleCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationActiveLocaleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readActiveLocaleAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readLocalizationConfigurationActiveLocaleCommandParams + ); + result.put("readActiveLocaleAttribute", readLocalizationConfigurationActiveLocaleAttributeInteractionInfo); + Map readLocalizationConfigurationSupportedLocalesCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationSupportedLocalesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readSupportedLocalesAttribute( + (ChipClusters.LocalizationConfigurationCluster.SupportedLocalesAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLocalizationConfigurationClusterSupportedLocalesAttributeCallback(), + readLocalizationConfigurationSupportedLocalesCommandParams + ); + result.put("readSupportedLocalesAttribute", readLocalizationConfigurationSupportedLocalesAttributeInteractionInfo); + Map readLocalizationConfigurationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.LocalizationConfigurationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLocalizationConfigurationClusterGeneratedCommandListAttributeCallback(), + readLocalizationConfigurationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readLocalizationConfigurationGeneratedCommandListAttributeInteractionInfo); + Map readLocalizationConfigurationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.LocalizationConfigurationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLocalizationConfigurationClusterAcceptedCommandListAttributeCallback(), + readLocalizationConfigurationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readLocalizationConfigurationAcceptedCommandListAttributeInteractionInfo); + Map readLocalizationConfigurationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readEventListAttribute( + (ChipClusters.LocalizationConfigurationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLocalizationConfigurationClusterEventListAttributeCallback(), + readLocalizationConfigurationEventListCommandParams + ); + result.put("readEventListAttribute", readLocalizationConfigurationEventListAttributeInteractionInfo); + Map readLocalizationConfigurationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readAttributeListAttribute( + (ChipClusters.LocalizationConfigurationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLocalizationConfigurationClusterAttributeListAttributeCallback(), + readLocalizationConfigurationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readLocalizationConfigurationAttributeListAttributeInteractionInfo); + Map readLocalizationConfigurationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readLocalizationConfigurationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readLocalizationConfigurationFeatureMapAttributeInteractionInfo); + Map readLocalizationConfigurationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readLocalizationConfigurationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLocalizationConfigurationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readLocalizationConfigurationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readTimeFormatLocalizationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readTimeFormatLocalizationHourFormatCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationHourFormatAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readHourFormatAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeFormatLocalizationHourFormatCommandParams + ); + result.put("readHourFormatAttribute", readTimeFormatLocalizationHourFormatAttributeInteractionInfo); + Map readTimeFormatLocalizationActiveCalendarTypeCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readActiveCalendarTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeFormatLocalizationActiveCalendarTypeCommandParams + ); + result.put("readActiveCalendarTypeAttribute", readTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo); + Map readTimeFormatLocalizationSupportedCalendarTypesCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationSupportedCalendarTypesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readSupportedCalendarTypesAttribute( + (ChipClusters.TimeFormatLocalizationCluster.SupportedCalendarTypesAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeFormatLocalizationClusterSupportedCalendarTypesAttributeCallback(), + readTimeFormatLocalizationSupportedCalendarTypesCommandParams + ); + result.put("readSupportedCalendarTypesAttribute", readTimeFormatLocalizationSupportedCalendarTypesAttributeInteractionInfo); + Map readTimeFormatLocalizationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.TimeFormatLocalizationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeFormatLocalizationClusterGeneratedCommandListAttributeCallback(), + readTimeFormatLocalizationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readTimeFormatLocalizationGeneratedCommandListAttributeInteractionInfo); + Map readTimeFormatLocalizationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.TimeFormatLocalizationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeFormatLocalizationClusterAcceptedCommandListAttributeCallback(), + readTimeFormatLocalizationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readTimeFormatLocalizationAcceptedCommandListAttributeInteractionInfo); + Map readTimeFormatLocalizationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readEventListAttribute( + (ChipClusters.TimeFormatLocalizationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeFormatLocalizationClusterEventListAttributeCallback(), + readTimeFormatLocalizationEventListCommandParams + ); + result.put("readEventListAttribute", readTimeFormatLocalizationEventListAttributeInteractionInfo); + Map readTimeFormatLocalizationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readAttributeListAttribute( + (ChipClusters.TimeFormatLocalizationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeFormatLocalizationClusterAttributeListAttributeCallback(), + readTimeFormatLocalizationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readTimeFormatLocalizationAttributeListAttributeInteractionInfo); + Map readTimeFormatLocalizationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readTimeFormatLocalizationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readTimeFormatLocalizationFeatureMapAttributeInteractionInfo); + Map readTimeFormatLocalizationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readTimeFormatLocalizationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeFormatLocalizationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readTimeFormatLocalizationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readUnitLocalizationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readUnitLocalizationTemperatureUnitCommandParams = new LinkedHashMap(); + InteractionInfo readUnitLocalizationTemperatureUnitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).readTemperatureUnitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitLocalizationTemperatureUnitCommandParams + ); + result.put("readTemperatureUnitAttribute", readUnitLocalizationTemperatureUnitAttributeInteractionInfo); + Map readUnitLocalizationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitLocalizationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.UnitLocalizationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitLocalizationClusterGeneratedCommandListAttributeCallback(), + readUnitLocalizationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readUnitLocalizationGeneratedCommandListAttributeInteractionInfo); + Map readUnitLocalizationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitLocalizationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.UnitLocalizationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitLocalizationClusterAcceptedCommandListAttributeCallback(), + readUnitLocalizationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readUnitLocalizationAcceptedCommandListAttributeInteractionInfo); + Map readUnitLocalizationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitLocalizationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).readEventListAttribute( + (ChipClusters.UnitLocalizationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitLocalizationClusterEventListAttributeCallback(), + readUnitLocalizationEventListCommandParams + ); + result.put("readEventListAttribute", readUnitLocalizationEventListAttributeInteractionInfo); + Map readUnitLocalizationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitLocalizationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).readAttributeListAttribute( + (ChipClusters.UnitLocalizationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitLocalizationClusterAttributeListAttributeCallback(), + readUnitLocalizationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readUnitLocalizationAttributeListAttributeInteractionInfo); + Map readUnitLocalizationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readUnitLocalizationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitLocalizationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readUnitLocalizationFeatureMapAttributeInteractionInfo); + Map readUnitLocalizationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readUnitLocalizationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitLocalizationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readUnitLocalizationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readPowerSourceConfigurationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readPowerSourceConfigurationSourcesCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationSourcesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster).readSourcesAttribute( + (ChipClusters.PowerSourceConfigurationCluster.SourcesAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceConfigurationClusterSourcesAttributeCallback(), + readPowerSourceConfigurationSourcesCommandParams + ); + result.put("readSourcesAttribute", readPowerSourceConfigurationSourcesAttributeInteractionInfo); + Map readPowerSourceConfigurationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.PowerSourceConfigurationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceConfigurationClusterGeneratedCommandListAttributeCallback(), + readPowerSourceConfigurationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readPowerSourceConfigurationGeneratedCommandListAttributeInteractionInfo); + Map readPowerSourceConfigurationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.PowerSourceConfigurationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceConfigurationClusterAcceptedCommandListAttributeCallback(), + readPowerSourceConfigurationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readPowerSourceConfigurationAcceptedCommandListAttributeInteractionInfo); + Map readPowerSourceConfigurationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster).readEventListAttribute( + (ChipClusters.PowerSourceConfigurationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceConfigurationClusterEventListAttributeCallback(), + readPowerSourceConfigurationEventListCommandParams + ); + result.put("readEventListAttribute", readPowerSourceConfigurationEventListAttributeInteractionInfo); + Map readPowerSourceConfigurationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster).readAttributeListAttribute( + (ChipClusters.PowerSourceConfigurationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceConfigurationClusterAttributeListAttributeCallback(), + readPowerSourceConfigurationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readPowerSourceConfigurationAttributeListAttributeInteractionInfo); + Map readPowerSourceConfigurationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPowerSourceConfigurationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readPowerSourceConfigurationFeatureMapAttributeInteractionInfo); + Map readPowerSourceConfigurationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceConfigurationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readPowerSourceConfigurationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readPowerSourceInteractionInfo() { + Map result = new LinkedHashMap<>();Map readPowerSourceStatusCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceStatusCommandParams + ); + result.put("readStatusAttribute", readPowerSourceStatusAttributeInteractionInfo); + Map readPowerSourceOrderCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceOrderAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readOrderAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceOrderCommandParams + ); + result.put("readOrderAttribute", readPowerSourceOrderAttributeInteractionInfo); + Map readPowerSourceDescriptionCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceDescriptionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readDescriptionAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readPowerSourceDescriptionCommandParams + ); + result.put("readDescriptionAttribute", readPowerSourceDescriptionAttributeInteractionInfo); + Map readPowerSourceWiredAssessedInputVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceWiredAssessedInputVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readWiredAssessedInputVoltageAttribute( + (ChipClusters.PowerSourceCluster.WiredAssessedInputVoltageAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterWiredAssessedInputVoltageAttributeCallback(), + readPowerSourceWiredAssessedInputVoltageCommandParams + ); + result.put("readWiredAssessedInputVoltageAttribute", readPowerSourceWiredAssessedInputVoltageAttributeInteractionInfo); + Map readPowerSourceWiredAssessedInputFrequencyCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceWiredAssessedInputFrequencyAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readWiredAssessedInputFrequencyAttribute( + (ChipClusters.PowerSourceCluster.WiredAssessedInputFrequencyAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterWiredAssessedInputFrequencyAttributeCallback(), + readPowerSourceWiredAssessedInputFrequencyCommandParams + ); + result.put("readWiredAssessedInputFrequencyAttribute", readPowerSourceWiredAssessedInputFrequencyAttributeInteractionInfo); + Map readPowerSourceWiredCurrentTypeCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceWiredCurrentTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readWiredCurrentTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceWiredCurrentTypeCommandParams + ); + result.put("readWiredCurrentTypeAttribute", readPowerSourceWiredCurrentTypeAttributeInteractionInfo); + Map readPowerSourceWiredAssessedCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceWiredAssessedCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readWiredAssessedCurrentAttribute( + (ChipClusters.PowerSourceCluster.WiredAssessedCurrentAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterWiredAssessedCurrentAttributeCallback(), + readPowerSourceWiredAssessedCurrentCommandParams + ); + result.put("readWiredAssessedCurrentAttribute", readPowerSourceWiredAssessedCurrentAttributeInteractionInfo); + Map readPowerSourceWiredNominalVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceWiredNominalVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readWiredNominalVoltageAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPowerSourceWiredNominalVoltageCommandParams + ); + result.put("readWiredNominalVoltageAttribute", readPowerSourceWiredNominalVoltageAttributeInteractionInfo); + Map readPowerSourceWiredMaximumCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceWiredMaximumCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readWiredMaximumCurrentAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPowerSourceWiredMaximumCurrentCommandParams + ); + result.put("readWiredMaximumCurrentAttribute", readPowerSourceWiredMaximumCurrentAttributeInteractionInfo); + Map readPowerSourceWiredPresentCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceWiredPresentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readWiredPresentAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readPowerSourceWiredPresentCommandParams + ); + result.put("readWiredPresentAttribute", readPowerSourceWiredPresentAttributeInteractionInfo); + Map readPowerSourceActiveWiredFaultsCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceActiveWiredFaultsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readActiveWiredFaultsAttribute( + (ChipClusters.PowerSourceCluster.ActiveWiredFaultsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterActiveWiredFaultsAttributeCallback(), + readPowerSourceActiveWiredFaultsCommandParams + ); + result.put("readActiveWiredFaultsAttribute", readPowerSourceActiveWiredFaultsAttributeInteractionInfo); + Map readPowerSourceBatVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatVoltageAttribute( + (ChipClusters.PowerSourceCluster.BatVoltageAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterBatVoltageAttributeCallback(), + readPowerSourceBatVoltageCommandParams + ); + result.put("readBatVoltageAttribute", readPowerSourceBatVoltageAttributeInteractionInfo); + Map readPowerSourceBatPercentRemainingCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatPercentRemainingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatPercentRemainingAttribute( + (ChipClusters.PowerSourceCluster.BatPercentRemainingAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterBatPercentRemainingAttributeCallback(), + readPowerSourceBatPercentRemainingCommandParams + ); + result.put("readBatPercentRemainingAttribute", readPowerSourceBatPercentRemainingAttributeInteractionInfo); + Map readPowerSourceBatTimeRemainingCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatTimeRemainingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatTimeRemainingAttribute( + (ChipClusters.PowerSourceCluster.BatTimeRemainingAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterBatTimeRemainingAttributeCallback(), + readPowerSourceBatTimeRemainingCommandParams + ); + result.put("readBatTimeRemainingAttribute", readPowerSourceBatTimeRemainingAttributeInteractionInfo); + Map readPowerSourceBatChargeLevelCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatChargeLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatChargeLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceBatChargeLevelCommandParams + ); + result.put("readBatChargeLevelAttribute", readPowerSourceBatChargeLevelAttributeInteractionInfo); + Map readPowerSourceBatReplacementNeededCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatReplacementNeededAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatReplacementNeededAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readPowerSourceBatReplacementNeededCommandParams + ); + result.put("readBatReplacementNeededAttribute", readPowerSourceBatReplacementNeededAttributeInteractionInfo); + Map readPowerSourceBatReplaceabilityCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatReplaceabilityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatReplaceabilityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceBatReplaceabilityCommandParams + ); + result.put("readBatReplaceabilityAttribute", readPowerSourceBatReplaceabilityAttributeInteractionInfo); + Map readPowerSourceBatPresentCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatPresentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatPresentAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readPowerSourceBatPresentCommandParams + ); + result.put("readBatPresentAttribute", readPowerSourceBatPresentAttributeInteractionInfo); + Map readPowerSourceActiveBatFaultsCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceActiveBatFaultsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readActiveBatFaultsAttribute( + (ChipClusters.PowerSourceCluster.ActiveBatFaultsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterActiveBatFaultsAttributeCallback(), + readPowerSourceActiveBatFaultsCommandParams + ); + result.put("readActiveBatFaultsAttribute", readPowerSourceActiveBatFaultsAttributeInteractionInfo); + Map readPowerSourceBatReplacementDescriptionCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatReplacementDescriptionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatReplacementDescriptionAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readPowerSourceBatReplacementDescriptionCommandParams + ); + result.put("readBatReplacementDescriptionAttribute", readPowerSourceBatReplacementDescriptionAttributeInteractionInfo); + Map readPowerSourceBatCommonDesignationCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatCommonDesignationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatCommonDesignationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceBatCommonDesignationCommandParams + ); + result.put("readBatCommonDesignationAttribute", readPowerSourceBatCommonDesignationAttributeInteractionInfo); + Map readPowerSourceBatANSIDesignationCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatANSIDesignationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatANSIDesignationAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readPowerSourceBatANSIDesignationCommandParams + ); + result.put("readBatANSIDesignationAttribute", readPowerSourceBatANSIDesignationAttributeInteractionInfo); + Map readPowerSourceBatIECDesignationCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatIECDesignationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatIECDesignationAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readPowerSourceBatIECDesignationCommandParams + ); + result.put("readBatIECDesignationAttribute", readPowerSourceBatIECDesignationAttributeInteractionInfo); + Map readPowerSourceBatApprovedChemistryCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatApprovedChemistryAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatApprovedChemistryAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceBatApprovedChemistryCommandParams + ); + result.put("readBatApprovedChemistryAttribute", readPowerSourceBatApprovedChemistryAttributeInteractionInfo); + Map readPowerSourceBatCapacityCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatCapacityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatCapacityAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPowerSourceBatCapacityCommandParams + ); + result.put("readBatCapacityAttribute", readPowerSourceBatCapacityAttributeInteractionInfo); + Map readPowerSourceBatQuantityCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatQuantityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatQuantityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceBatQuantityCommandParams + ); + result.put("readBatQuantityAttribute", readPowerSourceBatQuantityAttributeInteractionInfo); + Map readPowerSourceBatChargeStateCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatChargeStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatChargeStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceBatChargeStateCommandParams + ); + result.put("readBatChargeStateAttribute", readPowerSourceBatChargeStateAttributeInteractionInfo); + Map readPowerSourceBatTimeToFullChargeCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatTimeToFullChargeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatTimeToFullChargeAttribute( + (ChipClusters.PowerSourceCluster.BatTimeToFullChargeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterBatTimeToFullChargeAttributeCallback(), + readPowerSourceBatTimeToFullChargeCommandParams + ); + result.put("readBatTimeToFullChargeAttribute", readPowerSourceBatTimeToFullChargeAttributeInteractionInfo); + Map readPowerSourceBatFunctionalWhileChargingCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatFunctionalWhileChargingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatFunctionalWhileChargingAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readPowerSourceBatFunctionalWhileChargingCommandParams + ); + result.put("readBatFunctionalWhileChargingAttribute", readPowerSourceBatFunctionalWhileChargingAttributeInteractionInfo); + Map readPowerSourceBatChargingCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceBatChargingCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readBatChargingCurrentAttribute( + (ChipClusters.PowerSourceCluster.BatChargingCurrentAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterBatChargingCurrentAttributeCallback(), + readPowerSourceBatChargingCurrentCommandParams + ); + result.put("readBatChargingCurrentAttribute", readPowerSourceBatChargingCurrentAttributeInteractionInfo); + Map readPowerSourceActiveBatChargeFaultsCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceActiveBatChargeFaultsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readActiveBatChargeFaultsAttribute( + (ChipClusters.PowerSourceCluster.ActiveBatChargeFaultsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterActiveBatChargeFaultsAttributeCallback(), + readPowerSourceActiveBatChargeFaultsCommandParams + ); + result.put("readActiveBatChargeFaultsAttribute", readPowerSourceActiveBatChargeFaultsAttributeInteractionInfo); + Map readPowerSourceGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.PowerSourceCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterGeneratedCommandListAttributeCallback(), + readPowerSourceGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readPowerSourceGeneratedCommandListAttributeInteractionInfo); + Map readPowerSourceAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.PowerSourceCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterAcceptedCommandListAttributeCallback(), + readPowerSourceAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readPowerSourceAcceptedCommandListAttributeInteractionInfo); + Map readPowerSourceEventListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readEventListAttribute( + (ChipClusters.PowerSourceCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterEventListAttributeCallback(), + readPowerSourceEventListCommandParams + ); + result.put("readEventListAttribute", readPowerSourceEventListAttributeInteractionInfo); + Map readPowerSourceAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readAttributeListAttribute( + (ChipClusters.PowerSourceCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPowerSourceClusterAttributeListAttributeCallback(), + readPowerSourceAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readPowerSourceAttributeListAttributeInteractionInfo); + Map readPowerSourceFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPowerSourceFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readPowerSourceFeatureMapAttributeInteractionInfo); + Map readPowerSourceClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readPowerSourceClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPowerSourceClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readPowerSourceClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readGeneralCommissioningInteractionInfo() { + Map result = new LinkedHashMap<>();Map readGeneralCommissioningBreadcrumbCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningBreadcrumbAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readBreadcrumbAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readGeneralCommissioningBreadcrumbCommandParams + ); + result.put("readBreadcrumbAttribute", readGeneralCommissioningBreadcrumbAttributeInteractionInfo); + Map readGeneralCommissioningRegulatoryConfigCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningRegulatoryConfigAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readRegulatoryConfigAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGeneralCommissioningRegulatoryConfigCommandParams + ); + result.put("readRegulatoryConfigAttribute", readGeneralCommissioningRegulatoryConfigAttributeInteractionInfo); + Map readGeneralCommissioningLocationCapabilityCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningLocationCapabilityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readLocationCapabilityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGeneralCommissioningLocationCapabilityCommandParams + ); + result.put("readLocationCapabilityAttribute", readGeneralCommissioningLocationCapabilityAttributeInteractionInfo); + Map readGeneralCommissioningSupportsConcurrentConnectionCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningSupportsConcurrentConnectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readSupportsConcurrentConnectionAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readGeneralCommissioningSupportsConcurrentConnectionCommandParams + ); + result.put("readSupportsConcurrentConnectionAttribute", readGeneralCommissioningSupportsConcurrentConnectionAttributeInteractionInfo); + Map readGeneralCommissioningGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.GeneralCommissioningCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralCommissioningClusterGeneratedCommandListAttributeCallback(), + readGeneralCommissioningGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readGeneralCommissioningGeneratedCommandListAttributeInteractionInfo); + Map readGeneralCommissioningAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.GeneralCommissioningCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralCommissioningClusterAcceptedCommandListAttributeCallback(), + readGeneralCommissioningAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readGeneralCommissioningAcceptedCommandListAttributeInteractionInfo); + Map readGeneralCommissioningEventListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readEventListAttribute( + (ChipClusters.GeneralCommissioningCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralCommissioningClusterEventListAttributeCallback(), + readGeneralCommissioningEventListCommandParams + ); + result.put("readEventListAttribute", readGeneralCommissioningEventListAttributeInteractionInfo); + Map readGeneralCommissioningAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readAttributeListAttribute( + (ChipClusters.GeneralCommissioningCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralCommissioningClusterAttributeListAttributeCallback(), + readGeneralCommissioningAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readGeneralCommissioningAttributeListAttributeInteractionInfo); + Map readGeneralCommissioningFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readGeneralCommissioningFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readGeneralCommissioningFeatureMapAttributeInteractionInfo); + Map readGeneralCommissioningClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralCommissioningClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGeneralCommissioningClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readGeneralCommissioningClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readNetworkCommissioningInteractionInfo() { + Map result = new LinkedHashMap<>();Map readNetworkCommissioningMaxNetworksCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningMaxNetworksAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readMaxNetworksAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readNetworkCommissioningMaxNetworksCommandParams + ); + result.put("readMaxNetworksAttribute", readNetworkCommissioningMaxNetworksAttributeInteractionInfo); + Map readNetworkCommissioningNetworksCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningNetworksAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readNetworksAttribute( + (ChipClusters.NetworkCommissioningCluster.NetworksAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterNetworksAttributeCallback(), + readNetworkCommissioningNetworksCommandParams + ); + result.put("readNetworksAttribute", readNetworkCommissioningNetworksAttributeInteractionInfo); + Map readNetworkCommissioningScanMaxTimeSecondsCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningScanMaxTimeSecondsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readScanMaxTimeSecondsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readNetworkCommissioningScanMaxTimeSecondsCommandParams + ); + result.put("readScanMaxTimeSecondsAttribute", readNetworkCommissioningScanMaxTimeSecondsAttributeInteractionInfo); + Map readNetworkCommissioningConnectMaxTimeSecondsCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningConnectMaxTimeSecondsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readConnectMaxTimeSecondsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readNetworkCommissioningConnectMaxTimeSecondsCommandParams + ); + result.put("readConnectMaxTimeSecondsAttribute", readNetworkCommissioningConnectMaxTimeSecondsAttributeInteractionInfo); + Map readNetworkCommissioningInterfaceEnabledCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningInterfaceEnabledAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readInterfaceEnabledAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readNetworkCommissioningInterfaceEnabledCommandParams + ); + result.put("readInterfaceEnabledAttribute", readNetworkCommissioningInterfaceEnabledAttributeInteractionInfo); + Map readNetworkCommissioningLastNetworkingStatusCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningLastNetworkingStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readLastNetworkingStatusAttribute( + (ChipClusters.NetworkCommissioningCluster.LastNetworkingStatusAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterLastNetworkingStatusAttributeCallback(), + readNetworkCommissioningLastNetworkingStatusCommandParams + ); + result.put("readLastNetworkingStatusAttribute", readNetworkCommissioningLastNetworkingStatusAttributeInteractionInfo); + Map readNetworkCommissioningLastNetworkIDCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningLastNetworkIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readLastNetworkIDAttribute( + (ChipClusters.NetworkCommissioningCluster.LastNetworkIDAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterLastNetworkIDAttributeCallback(), + readNetworkCommissioningLastNetworkIDCommandParams + ); + result.put("readLastNetworkIDAttribute", readNetworkCommissioningLastNetworkIDAttributeInteractionInfo); + Map readNetworkCommissioningLastConnectErrorValueCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningLastConnectErrorValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readLastConnectErrorValueAttribute( + (ChipClusters.NetworkCommissioningCluster.LastConnectErrorValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterLastConnectErrorValueAttributeCallback(), + readNetworkCommissioningLastConnectErrorValueCommandParams + ); + result.put("readLastConnectErrorValueAttribute", readNetworkCommissioningLastConnectErrorValueAttributeInteractionInfo); + Map readNetworkCommissioningGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.NetworkCommissioningCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterGeneratedCommandListAttributeCallback(), + readNetworkCommissioningGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readNetworkCommissioningGeneratedCommandListAttributeInteractionInfo); + Map readNetworkCommissioningAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.NetworkCommissioningCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterAcceptedCommandListAttributeCallback(), + readNetworkCommissioningAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readNetworkCommissioningAcceptedCommandListAttributeInteractionInfo); + Map readNetworkCommissioningEventListCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readEventListAttribute( + (ChipClusters.NetworkCommissioningCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterEventListAttributeCallback(), + readNetworkCommissioningEventListCommandParams + ); + result.put("readEventListAttribute", readNetworkCommissioningEventListAttributeInteractionInfo); + Map readNetworkCommissioningAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readAttributeListAttribute( + (ChipClusters.NetworkCommissioningCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedNetworkCommissioningClusterAttributeListAttributeCallback(), + readNetworkCommissioningAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readNetworkCommissioningAttributeListAttributeInteractionInfo); + Map readNetworkCommissioningFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readNetworkCommissioningFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readNetworkCommissioningFeatureMapAttributeInteractionInfo); + Map readNetworkCommissioningClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readNetworkCommissioningClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readNetworkCommissioningClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readNetworkCommissioningClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readDiagnosticLogsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readDiagnosticLogsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readDiagnosticLogsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DiagnosticLogsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.DiagnosticLogsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDiagnosticLogsClusterGeneratedCommandListAttributeCallback(), + readDiagnosticLogsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readDiagnosticLogsGeneratedCommandListAttributeInteractionInfo); + Map readDiagnosticLogsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readDiagnosticLogsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DiagnosticLogsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.DiagnosticLogsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDiagnosticLogsClusterAcceptedCommandListAttributeCallback(), + readDiagnosticLogsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readDiagnosticLogsAcceptedCommandListAttributeInteractionInfo); + Map readDiagnosticLogsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readDiagnosticLogsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DiagnosticLogsCluster) cluster).readEventListAttribute( + (ChipClusters.DiagnosticLogsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDiagnosticLogsClusterEventListAttributeCallback(), + readDiagnosticLogsEventListCommandParams + ); + result.put("readEventListAttribute", readDiagnosticLogsEventListAttributeInteractionInfo); + Map readDiagnosticLogsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readDiagnosticLogsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DiagnosticLogsCluster) cluster).readAttributeListAttribute( + (ChipClusters.DiagnosticLogsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDiagnosticLogsClusterAttributeListAttributeCallback(), + readDiagnosticLogsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readDiagnosticLogsAttributeListAttributeInteractionInfo); + Map readDiagnosticLogsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readDiagnosticLogsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DiagnosticLogsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readDiagnosticLogsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readDiagnosticLogsFeatureMapAttributeInteractionInfo); + Map readDiagnosticLogsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readDiagnosticLogsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DiagnosticLogsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDiagnosticLogsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readDiagnosticLogsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readGeneralDiagnosticsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readGeneralDiagnosticsNetworkInterfacesCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsNetworkInterfacesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readNetworkInterfacesAttribute( + (ChipClusters.GeneralDiagnosticsCluster.NetworkInterfacesAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterNetworkInterfacesAttributeCallback(), + readGeneralDiagnosticsNetworkInterfacesCommandParams + ); + result.put("readNetworkInterfacesAttribute", readGeneralDiagnosticsNetworkInterfacesAttributeInteractionInfo); + Map readGeneralDiagnosticsRebootCountCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsRebootCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readRebootCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGeneralDiagnosticsRebootCountCommandParams + ); + result.put("readRebootCountAttribute", readGeneralDiagnosticsRebootCountAttributeInteractionInfo); + Map readGeneralDiagnosticsUpTimeCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsUpTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readUpTimeAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readGeneralDiagnosticsUpTimeCommandParams + ); + result.put("readUpTimeAttribute", readGeneralDiagnosticsUpTimeAttributeInteractionInfo); + Map readGeneralDiagnosticsTotalOperationalHoursCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsTotalOperationalHoursAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readTotalOperationalHoursAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readGeneralDiagnosticsTotalOperationalHoursCommandParams + ); + result.put("readTotalOperationalHoursAttribute", readGeneralDiagnosticsTotalOperationalHoursAttributeInteractionInfo); + Map readGeneralDiagnosticsBootReasonCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsBootReasonAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readBootReasonAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGeneralDiagnosticsBootReasonCommandParams + ); + result.put("readBootReasonAttribute", readGeneralDiagnosticsBootReasonAttributeInteractionInfo); + Map readGeneralDiagnosticsActiveHardwareFaultsCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsActiveHardwareFaultsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readActiveHardwareFaultsAttribute( + (ChipClusters.GeneralDiagnosticsCluster.ActiveHardwareFaultsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterActiveHardwareFaultsAttributeCallback(), + readGeneralDiagnosticsActiveHardwareFaultsCommandParams + ); + result.put("readActiveHardwareFaultsAttribute", readGeneralDiagnosticsActiveHardwareFaultsAttributeInteractionInfo); + Map readGeneralDiagnosticsActiveRadioFaultsCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsActiveRadioFaultsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readActiveRadioFaultsAttribute( + (ChipClusters.GeneralDiagnosticsCluster.ActiveRadioFaultsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterActiveRadioFaultsAttributeCallback(), + readGeneralDiagnosticsActiveRadioFaultsCommandParams + ); + result.put("readActiveRadioFaultsAttribute", readGeneralDiagnosticsActiveRadioFaultsAttributeInteractionInfo); + Map readGeneralDiagnosticsActiveNetworkFaultsCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsActiveNetworkFaultsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readActiveNetworkFaultsAttribute( + (ChipClusters.GeneralDiagnosticsCluster.ActiveNetworkFaultsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterActiveNetworkFaultsAttributeCallback(), + readGeneralDiagnosticsActiveNetworkFaultsCommandParams + ); + result.put("readActiveNetworkFaultsAttribute", readGeneralDiagnosticsActiveNetworkFaultsAttributeInteractionInfo); + Map readGeneralDiagnosticsTestEventTriggersEnabledCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsTestEventTriggersEnabledAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readTestEventTriggersEnabledAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readGeneralDiagnosticsTestEventTriggersEnabledCommandParams + ); + result.put("readTestEventTriggersEnabledAttribute", readGeneralDiagnosticsTestEventTriggersEnabledAttributeInteractionInfo); + Map readGeneralDiagnosticsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.GeneralDiagnosticsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterGeneratedCommandListAttributeCallback(), + readGeneralDiagnosticsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readGeneralDiagnosticsGeneratedCommandListAttributeInteractionInfo); + Map readGeneralDiagnosticsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.GeneralDiagnosticsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterAcceptedCommandListAttributeCallback(), + readGeneralDiagnosticsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readGeneralDiagnosticsAcceptedCommandListAttributeInteractionInfo); + Map readGeneralDiagnosticsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readEventListAttribute( + (ChipClusters.GeneralDiagnosticsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterEventListAttributeCallback(), + readGeneralDiagnosticsEventListCommandParams + ); + result.put("readEventListAttribute", readGeneralDiagnosticsEventListAttributeInteractionInfo); + Map readGeneralDiagnosticsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readAttributeListAttribute( + (ChipClusters.GeneralDiagnosticsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGeneralDiagnosticsClusterAttributeListAttributeCallback(), + readGeneralDiagnosticsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readGeneralDiagnosticsAttributeListAttributeInteractionInfo); + Map readGeneralDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readGeneralDiagnosticsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readGeneralDiagnosticsFeatureMapAttributeInteractionInfo); + Map readGeneralDiagnosticsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGeneralDiagnosticsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readGeneralDiagnosticsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readSoftwareDiagnosticsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readSoftwareDiagnosticsThreadMetricsCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsThreadMetricsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readThreadMetricsAttribute( + (ChipClusters.SoftwareDiagnosticsCluster.ThreadMetricsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSoftwareDiagnosticsClusterThreadMetricsAttributeCallback(), + readSoftwareDiagnosticsThreadMetricsCommandParams + ); + result.put("readThreadMetricsAttribute", readSoftwareDiagnosticsThreadMetricsAttributeInteractionInfo); + Map readSoftwareDiagnosticsCurrentHeapFreeCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsCurrentHeapFreeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readCurrentHeapFreeAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readSoftwareDiagnosticsCurrentHeapFreeCommandParams + ); + result.put("readCurrentHeapFreeAttribute", readSoftwareDiagnosticsCurrentHeapFreeAttributeInteractionInfo); + Map readSoftwareDiagnosticsCurrentHeapUsedCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsCurrentHeapUsedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readCurrentHeapUsedAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readSoftwareDiagnosticsCurrentHeapUsedCommandParams + ); + result.put("readCurrentHeapUsedAttribute", readSoftwareDiagnosticsCurrentHeapUsedAttributeInteractionInfo); + Map readSoftwareDiagnosticsCurrentHeapHighWatermarkCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsCurrentHeapHighWatermarkAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readCurrentHeapHighWatermarkAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readSoftwareDiagnosticsCurrentHeapHighWatermarkCommandParams + ); + result.put("readCurrentHeapHighWatermarkAttribute", readSoftwareDiagnosticsCurrentHeapHighWatermarkAttributeInteractionInfo); + Map readSoftwareDiagnosticsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.SoftwareDiagnosticsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSoftwareDiagnosticsClusterGeneratedCommandListAttributeCallback(), + readSoftwareDiagnosticsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readSoftwareDiagnosticsGeneratedCommandListAttributeInteractionInfo); + Map readSoftwareDiagnosticsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.SoftwareDiagnosticsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSoftwareDiagnosticsClusterAcceptedCommandListAttributeCallback(), + readSoftwareDiagnosticsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readSoftwareDiagnosticsAcceptedCommandListAttributeInteractionInfo); + Map readSoftwareDiagnosticsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readEventListAttribute( + (ChipClusters.SoftwareDiagnosticsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSoftwareDiagnosticsClusterEventListAttributeCallback(), + readSoftwareDiagnosticsEventListCommandParams + ); + result.put("readEventListAttribute", readSoftwareDiagnosticsEventListAttributeInteractionInfo); + Map readSoftwareDiagnosticsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readAttributeListAttribute( + (ChipClusters.SoftwareDiagnosticsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSoftwareDiagnosticsClusterAttributeListAttributeCallback(), + readSoftwareDiagnosticsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readSoftwareDiagnosticsAttributeListAttributeInteractionInfo); + Map readSoftwareDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readSoftwareDiagnosticsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readSoftwareDiagnosticsFeatureMapAttributeInteractionInfo); + Map readSoftwareDiagnosticsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSoftwareDiagnosticsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readSoftwareDiagnosticsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readThreadNetworkDiagnosticsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readThreadNetworkDiagnosticsChannelCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsChannelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readChannelAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.ChannelAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterChannelAttributeCallback(), + readThreadNetworkDiagnosticsChannelCommandParams + ); + result.put("readChannelAttribute", readThreadNetworkDiagnosticsChannelAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRoutingRoleCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRoutingRoleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRoutingRoleAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.RoutingRoleAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback(), + readThreadNetworkDiagnosticsRoutingRoleCommandParams + ); + result.put("readRoutingRoleAttribute", readThreadNetworkDiagnosticsRoutingRoleAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsNetworkNameCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsNetworkNameAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readNetworkNameAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.NetworkNameAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterNetworkNameAttributeCallback(), + readThreadNetworkDiagnosticsNetworkNameCommandParams + ); + result.put("readNetworkNameAttribute", readThreadNetworkDiagnosticsNetworkNameAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsPanIdCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsPanIdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readPanIdAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.PanIdAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterPanIdAttributeCallback(), + readThreadNetworkDiagnosticsPanIdCommandParams + ); + result.put("readPanIdAttribute", readThreadNetworkDiagnosticsPanIdAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsExtendedPanIdCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsExtendedPanIdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readExtendedPanIdAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.ExtendedPanIdAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterExtendedPanIdAttributeCallback(), + readThreadNetworkDiagnosticsExtendedPanIdCommandParams + ); + result.put("readExtendedPanIdAttribute", readThreadNetworkDiagnosticsExtendedPanIdAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsMeshLocalPrefixCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsMeshLocalPrefixAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readMeshLocalPrefixAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.MeshLocalPrefixAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterMeshLocalPrefixAttributeCallback(), + readThreadNetworkDiagnosticsMeshLocalPrefixCommandParams + ); + result.put("readMeshLocalPrefixAttribute", readThreadNetworkDiagnosticsMeshLocalPrefixAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsOverrunCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsOverrunCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readOverrunCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsOverrunCountCommandParams + ); + result.put("readOverrunCountAttribute", readThreadNetworkDiagnosticsOverrunCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsNeighborTableCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsNeighborTableAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readNeighborTableAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.NeighborTableAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterNeighborTableAttributeCallback(), + readThreadNetworkDiagnosticsNeighborTableCommandParams + ); + result.put("readNeighborTableAttribute", readThreadNetworkDiagnosticsNeighborTableAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRouteTableCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRouteTableAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRouteTableAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.RouteTableAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterRouteTableAttributeCallback(), + readThreadNetworkDiagnosticsRouteTableCommandParams + ); + result.put("readRouteTableAttribute", readThreadNetworkDiagnosticsRouteTableAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsPartitionIdCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsPartitionIdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readPartitionIdAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.PartitionIdAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterPartitionIdAttributeCallback(), + readThreadNetworkDiagnosticsPartitionIdCommandParams + ); + result.put("readPartitionIdAttribute", readThreadNetworkDiagnosticsPartitionIdAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsWeightingCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsWeightingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readWeightingAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.WeightingAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterWeightingAttributeCallback(), + readThreadNetworkDiagnosticsWeightingCommandParams + ); + result.put("readWeightingAttribute", readThreadNetworkDiagnosticsWeightingAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsDataVersionCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsDataVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readDataVersionAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.DataVersionAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterDataVersionAttributeCallback(), + readThreadNetworkDiagnosticsDataVersionCommandParams + ); + result.put("readDataVersionAttribute", readThreadNetworkDiagnosticsDataVersionAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsStableDataVersionCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsStableDataVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readStableDataVersionAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.StableDataVersionAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterStableDataVersionAttributeCallback(), + readThreadNetworkDiagnosticsStableDataVersionCommandParams + ); + result.put("readStableDataVersionAttribute", readThreadNetworkDiagnosticsStableDataVersionAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsLeaderRouterIdCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsLeaderRouterIdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readLeaderRouterIdAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.LeaderRouterIdAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterLeaderRouterIdAttributeCallback(), + readThreadNetworkDiagnosticsLeaderRouterIdCommandParams + ); + result.put("readLeaderRouterIdAttribute", readThreadNetworkDiagnosticsLeaderRouterIdAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsDetachedRoleCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsDetachedRoleCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readDetachedRoleCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsDetachedRoleCountCommandParams + ); + result.put("readDetachedRoleCountAttribute", readThreadNetworkDiagnosticsDetachedRoleCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsChildRoleCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsChildRoleCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readChildRoleCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsChildRoleCountCommandParams + ); + result.put("readChildRoleCountAttribute", readThreadNetworkDiagnosticsChildRoleCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRouterRoleCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRouterRoleCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRouterRoleCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsRouterRoleCountCommandParams + ); + result.put("readRouterRoleCountAttribute", readThreadNetworkDiagnosticsRouterRoleCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsLeaderRoleCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsLeaderRoleCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readLeaderRoleCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsLeaderRoleCountCommandParams + ); + result.put("readLeaderRoleCountAttribute", readThreadNetworkDiagnosticsLeaderRoleCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsAttachAttemptCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsAttachAttemptCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readAttachAttemptCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsAttachAttemptCountCommandParams + ); + result.put("readAttachAttemptCountAttribute", readThreadNetworkDiagnosticsAttachAttemptCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsPartitionIdChangeCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsPartitionIdChangeCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readPartitionIdChangeCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsPartitionIdChangeCountCommandParams + ); + result.put("readPartitionIdChangeCountAttribute", readThreadNetworkDiagnosticsPartitionIdChangeCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readBetterPartitionAttachAttemptCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountCommandParams + ); + result.put("readBetterPartitionAttachAttemptCountAttribute", readThreadNetworkDiagnosticsBetterPartitionAttachAttemptCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsParentChangeCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsParentChangeCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readParentChangeCountAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsParentChangeCountCommandParams + ); + result.put("readParentChangeCountAttribute", readThreadNetworkDiagnosticsParentChangeCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxTotalCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxTotalCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxTotalCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxTotalCountCommandParams + ); + result.put("readTxTotalCountAttribute", readThreadNetworkDiagnosticsTxTotalCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxUnicastCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxUnicastCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxUnicastCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxUnicastCountCommandParams + ); + result.put("readTxUnicastCountAttribute", readThreadNetworkDiagnosticsTxUnicastCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxBroadcastCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxBroadcastCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxBroadcastCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxBroadcastCountCommandParams + ); + result.put("readTxBroadcastCountAttribute", readThreadNetworkDiagnosticsTxBroadcastCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxAckRequestedCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxAckRequestedCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxAckRequestedCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxAckRequestedCountCommandParams + ); + result.put("readTxAckRequestedCountAttribute", readThreadNetworkDiagnosticsTxAckRequestedCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxAckedCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxAckedCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxAckedCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxAckedCountCommandParams + ); + result.put("readTxAckedCountAttribute", readThreadNetworkDiagnosticsTxAckedCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxNoAckRequestedCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxNoAckRequestedCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxNoAckRequestedCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxNoAckRequestedCountCommandParams + ); + result.put("readTxNoAckRequestedCountAttribute", readThreadNetworkDiagnosticsTxNoAckRequestedCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxDataCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxDataCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxDataCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxDataCountCommandParams + ); + result.put("readTxDataCountAttribute", readThreadNetworkDiagnosticsTxDataCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxDataPollCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxDataPollCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxDataPollCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxDataPollCountCommandParams + ); + result.put("readTxDataPollCountAttribute", readThreadNetworkDiagnosticsTxDataPollCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxBeaconCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxBeaconCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxBeaconCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxBeaconCountCommandParams + ); + result.put("readTxBeaconCountAttribute", readThreadNetworkDiagnosticsTxBeaconCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxBeaconRequestCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxBeaconRequestCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxBeaconRequestCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxBeaconRequestCountCommandParams + ); + result.put("readTxBeaconRequestCountAttribute", readThreadNetworkDiagnosticsTxBeaconRequestCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxOtherCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxOtherCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxOtherCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxOtherCountCommandParams + ); + result.put("readTxOtherCountAttribute", readThreadNetworkDiagnosticsTxOtherCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxRetryCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxRetryCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxRetryCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxRetryCountCommandParams + ); + result.put("readTxRetryCountAttribute", readThreadNetworkDiagnosticsTxRetryCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxDirectMaxRetryExpiryCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountCommandParams + ); + result.put("readTxDirectMaxRetryExpiryCountAttribute", readThreadNetworkDiagnosticsTxDirectMaxRetryExpiryCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxIndirectMaxRetryExpiryCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountCommandParams + ); + result.put("readTxIndirectMaxRetryExpiryCountAttribute", readThreadNetworkDiagnosticsTxIndirectMaxRetryExpiryCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxErrCcaCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxErrCcaCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxErrCcaCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxErrCcaCountCommandParams + ); + result.put("readTxErrCcaCountAttribute", readThreadNetworkDiagnosticsTxErrCcaCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxErrAbortCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxErrAbortCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxErrAbortCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxErrAbortCountCommandParams + ); + result.put("readTxErrAbortCountAttribute", readThreadNetworkDiagnosticsTxErrAbortCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsTxErrBusyChannelCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsTxErrBusyChannelCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readTxErrBusyChannelCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsTxErrBusyChannelCountCommandParams + ); + result.put("readTxErrBusyChannelCountAttribute", readThreadNetworkDiagnosticsTxErrBusyChannelCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxTotalCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxTotalCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxTotalCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxTotalCountCommandParams + ); + result.put("readRxTotalCountAttribute", readThreadNetworkDiagnosticsRxTotalCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxUnicastCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxUnicastCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxUnicastCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxUnicastCountCommandParams + ); + result.put("readRxUnicastCountAttribute", readThreadNetworkDiagnosticsRxUnicastCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxBroadcastCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxBroadcastCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxBroadcastCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxBroadcastCountCommandParams + ); + result.put("readRxBroadcastCountAttribute", readThreadNetworkDiagnosticsRxBroadcastCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxDataCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxDataCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxDataCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxDataCountCommandParams + ); + result.put("readRxDataCountAttribute", readThreadNetworkDiagnosticsRxDataCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxDataPollCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxDataPollCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxDataPollCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxDataPollCountCommandParams + ); + result.put("readRxDataPollCountAttribute", readThreadNetworkDiagnosticsRxDataPollCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxBeaconCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxBeaconCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxBeaconCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxBeaconCountCommandParams + ); + result.put("readRxBeaconCountAttribute", readThreadNetworkDiagnosticsRxBeaconCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxBeaconRequestCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxBeaconRequestCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxBeaconRequestCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxBeaconRequestCountCommandParams + ); + result.put("readRxBeaconRequestCountAttribute", readThreadNetworkDiagnosticsRxBeaconRequestCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxOtherCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxOtherCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxOtherCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxOtherCountCommandParams + ); + result.put("readRxOtherCountAttribute", readThreadNetworkDiagnosticsRxOtherCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxAddressFilteredCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxAddressFilteredCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxAddressFilteredCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxAddressFilteredCountCommandParams + ); + result.put("readRxAddressFilteredCountAttribute", readThreadNetworkDiagnosticsRxAddressFilteredCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxDestAddrFilteredCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxDestAddrFilteredCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxDestAddrFilteredCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxDestAddrFilteredCountCommandParams + ); + result.put("readRxDestAddrFilteredCountAttribute", readThreadNetworkDiagnosticsRxDestAddrFilteredCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxDuplicatedCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxDuplicatedCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxDuplicatedCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxDuplicatedCountCommandParams + ); + result.put("readRxDuplicatedCountAttribute", readThreadNetworkDiagnosticsRxDuplicatedCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxErrNoFrameCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxErrNoFrameCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxErrNoFrameCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxErrNoFrameCountCommandParams + ); + result.put("readRxErrNoFrameCountAttribute", readThreadNetworkDiagnosticsRxErrNoFrameCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxErrUnknownNeighborCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxErrUnknownNeighborCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxErrUnknownNeighborCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxErrUnknownNeighborCountCommandParams + ); + result.put("readRxErrUnknownNeighborCountAttribute", readThreadNetworkDiagnosticsRxErrUnknownNeighborCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxErrInvalidSrcAddrCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountCommandParams + ); + result.put("readRxErrInvalidSrcAddrCountAttribute", readThreadNetworkDiagnosticsRxErrInvalidSrcAddrCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxErrSecCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxErrSecCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxErrSecCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxErrSecCountCommandParams + ); + result.put("readRxErrSecCountAttribute", readThreadNetworkDiagnosticsRxErrSecCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxErrFcsCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxErrFcsCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxErrFcsCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxErrFcsCountCommandParams + ); + result.put("readRxErrFcsCountAttribute", readThreadNetworkDiagnosticsRxErrFcsCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsRxErrOtherCountCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsRxErrOtherCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readRxErrOtherCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsRxErrOtherCountCommandParams + ); + result.put("readRxErrOtherCountAttribute", readThreadNetworkDiagnosticsRxErrOtherCountAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsActiveTimestampCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsActiveTimestampAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readActiveTimestampAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.ActiveTimestampAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterActiveTimestampAttributeCallback(), + readThreadNetworkDiagnosticsActiveTimestampCommandParams + ); + result.put("readActiveTimestampAttribute", readThreadNetworkDiagnosticsActiveTimestampAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsPendingTimestampCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsPendingTimestampAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readPendingTimestampAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.PendingTimestampAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterPendingTimestampAttributeCallback(), + readThreadNetworkDiagnosticsPendingTimestampCommandParams + ); + result.put("readPendingTimestampAttribute", readThreadNetworkDiagnosticsPendingTimestampAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsDelayCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readDelayAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.DelayAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterDelayAttributeCallback(), + readThreadNetworkDiagnosticsDelayCommandParams + ); + result.put("readDelayAttribute", readThreadNetworkDiagnosticsDelayAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsChannelPage0MaskCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsChannelPage0MaskAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readChannelPage0MaskAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.ChannelPage0MaskAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterChannelPage0MaskAttributeCallback(), + readThreadNetworkDiagnosticsChannelPage0MaskCommandParams + ); + result.put("readChannelPage0MaskAttribute", readThreadNetworkDiagnosticsChannelPage0MaskAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsActiveNetworkFaultsListCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readActiveNetworkFaultsListAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.ActiveNetworkFaultsListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterActiveNetworkFaultsListAttributeCallback(), + readThreadNetworkDiagnosticsActiveNetworkFaultsListCommandParams + ); + result.put("readActiveNetworkFaultsListAttribute", readThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterGeneratedCommandListAttributeCallback(), + readThreadNetworkDiagnosticsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readThreadNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterAcceptedCommandListAttributeCallback(), + readThreadNetworkDiagnosticsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readThreadNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readEventListAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterEventListAttributeCallback(), + readThreadNetworkDiagnosticsEventListCommandParams + ); + result.put("readEventListAttribute", readThreadNetworkDiagnosticsEventListAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readAttributeListAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThreadNetworkDiagnosticsClusterAttributeListAttributeCallback(), + readThreadNetworkDiagnosticsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readThreadNetworkDiagnosticsAttributeListAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThreadNetworkDiagnosticsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readThreadNetworkDiagnosticsFeatureMapAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThreadNetworkDiagnosticsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readThreadNetworkDiagnosticsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readWiFiNetworkDiagnosticsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readWiFiNetworkDiagnosticsBssidCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsBssidAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readBssidAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.BssidAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterBssidAttributeCallback(), + readWiFiNetworkDiagnosticsBssidCommandParams + ); + result.put("readBssidAttribute", readWiFiNetworkDiagnosticsBssidAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsSecurityTypeCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsSecurityTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readSecurityTypeAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.SecurityTypeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback(), + readWiFiNetworkDiagnosticsSecurityTypeCommandParams + ); + result.put("readSecurityTypeAttribute", readWiFiNetworkDiagnosticsSecurityTypeAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsWiFiVersionCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsWiFiVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readWiFiVersionAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.WiFiVersionAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterWiFiVersionAttributeCallback(), + readWiFiNetworkDiagnosticsWiFiVersionCommandParams + ); + result.put("readWiFiVersionAttribute", readWiFiNetworkDiagnosticsWiFiVersionAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsChannelNumberCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsChannelNumberAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readChannelNumberAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.ChannelNumberAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterChannelNumberAttributeCallback(), + readWiFiNetworkDiagnosticsChannelNumberCommandParams + ); + result.put("readChannelNumberAttribute", readWiFiNetworkDiagnosticsChannelNumberAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsRssiCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsRssiAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readRssiAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.RssiAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterRssiAttributeCallback(), + readWiFiNetworkDiagnosticsRssiCommandParams + ); + result.put("readRssiAttribute", readWiFiNetworkDiagnosticsRssiAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsBeaconLostCountCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsBeaconLostCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readBeaconLostCountAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.BeaconLostCountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterBeaconLostCountAttributeCallback(), + readWiFiNetworkDiagnosticsBeaconLostCountCommandParams + ); + result.put("readBeaconLostCountAttribute", readWiFiNetworkDiagnosticsBeaconLostCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsBeaconRxCountCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsBeaconRxCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readBeaconRxCountAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.BeaconRxCountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterBeaconRxCountAttributeCallback(), + readWiFiNetworkDiagnosticsBeaconRxCountCommandParams + ); + result.put("readBeaconRxCountAttribute", readWiFiNetworkDiagnosticsBeaconRxCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsPacketMulticastRxCountCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsPacketMulticastRxCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readPacketMulticastRxCountAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.PacketMulticastRxCountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterPacketMulticastRxCountAttributeCallback(), + readWiFiNetworkDiagnosticsPacketMulticastRxCountCommandParams + ); + result.put("readPacketMulticastRxCountAttribute", readWiFiNetworkDiagnosticsPacketMulticastRxCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsPacketMulticastTxCountCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsPacketMulticastTxCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readPacketMulticastTxCountAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.PacketMulticastTxCountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterPacketMulticastTxCountAttributeCallback(), + readWiFiNetworkDiagnosticsPacketMulticastTxCountCommandParams + ); + result.put("readPacketMulticastTxCountAttribute", readWiFiNetworkDiagnosticsPacketMulticastTxCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsPacketUnicastRxCountCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsPacketUnicastRxCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readPacketUnicastRxCountAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.PacketUnicastRxCountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterPacketUnicastRxCountAttributeCallback(), + readWiFiNetworkDiagnosticsPacketUnicastRxCountCommandParams + ); + result.put("readPacketUnicastRxCountAttribute", readWiFiNetworkDiagnosticsPacketUnicastRxCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsPacketUnicastTxCountCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsPacketUnicastTxCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readPacketUnicastTxCountAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.PacketUnicastTxCountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterPacketUnicastTxCountAttributeCallback(), + readWiFiNetworkDiagnosticsPacketUnicastTxCountCommandParams + ); + result.put("readPacketUnicastTxCountAttribute", readWiFiNetworkDiagnosticsPacketUnicastTxCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsCurrentMaxRateCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsCurrentMaxRateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readCurrentMaxRateAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.CurrentMaxRateAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterCurrentMaxRateAttributeCallback(), + readWiFiNetworkDiagnosticsCurrentMaxRateCommandParams + ); + result.put("readCurrentMaxRateAttribute", readWiFiNetworkDiagnosticsCurrentMaxRateAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsOverrunCountCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsOverrunCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readOverrunCountAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.OverrunCountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterOverrunCountAttributeCallback(), + readWiFiNetworkDiagnosticsOverrunCountCommandParams + ); + result.put("readOverrunCountAttribute", readWiFiNetworkDiagnosticsOverrunCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterGeneratedCommandListAttributeCallback(), + readWiFiNetworkDiagnosticsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readWiFiNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterAcceptedCommandListAttributeCallback(), + readWiFiNetworkDiagnosticsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readWiFiNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readEventListAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterEventListAttributeCallback(), + readWiFiNetworkDiagnosticsEventListCommandParams + ); + result.put("readEventListAttribute", readWiFiNetworkDiagnosticsEventListAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readAttributeListAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWiFiNetworkDiagnosticsClusterAttributeListAttributeCallback(), + readWiFiNetworkDiagnosticsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readWiFiNetworkDiagnosticsAttributeListAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readWiFiNetworkDiagnosticsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readWiFiNetworkDiagnosticsFeatureMapAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWiFiNetworkDiagnosticsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readWiFiNetworkDiagnosticsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readEthernetNetworkDiagnosticsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readEthernetNetworkDiagnosticsPHYRateCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsPHYRateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readPHYRateAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster.PHYRateAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedEthernetNetworkDiagnosticsClusterPHYRateAttributeCallback(), + readEthernetNetworkDiagnosticsPHYRateCommandParams + ); + result.put("readPHYRateAttribute", readEthernetNetworkDiagnosticsPHYRateAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsFullDuplexCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsFullDuplexAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readFullDuplexAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster.FullDuplexAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedEthernetNetworkDiagnosticsClusterFullDuplexAttributeCallback(), + readEthernetNetworkDiagnosticsFullDuplexCommandParams + ); + result.put("readFullDuplexAttribute", readEthernetNetworkDiagnosticsFullDuplexAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsPacketRxCountCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsPacketRxCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readPacketRxCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readEthernetNetworkDiagnosticsPacketRxCountCommandParams + ); + result.put("readPacketRxCountAttribute", readEthernetNetworkDiagnosticsPacketRxCountAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsPacketTxCountCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsPacketTxCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readPacketTxCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readEthernetNetworkDiagnosticsPacketTxCountCommandParams + ); + result.put("readPacketTxCountAttribute", readEthernetNetworkDiagnosticsPacketTxCountAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsTxErrCountCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsTxErrCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readTxErrCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readEthernetNetworkDiagnosticsTxErrCountCommandParams + ); + result.put("readTxErrCountAttribute", readEthernetNetworkDiagnosticsTxErrCountAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsCollisionCountCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsCollisionCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readCollisionCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readEthernetNetworkDiagnosticsCollisionCountCommandParams + ); + result.put("readCollisionCountAttribute", readEthernetNetworkDiagnosticsCollisionCountAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsOverrunCountCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsOverrunCountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readOverrunCountAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readEthernetNetworkDiagnosticsOverrunCountCommandParams + ); + result.put("readOverrunCountAttribute", readEthernetNetworkDiagnosticsOverrunCountAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsCarrierDetectCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsCarrierDetectAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readCarrierDetectAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster.CarrierDetectAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedEthernetNetworkDiagnosticsClusterCarrierDetectAttributeCallback(), + readEthernetNetworkDiagnosticsCarrierDetectCommandParams + ); + result.put("readCarrierDetectAttribute", readEthernetNetworkDiagnosticsCarrierDetectAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsTimeSinceResetCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsTimeSinceResetAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readTimeSinceResetAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readEthernetNetworkDiagnosticsTimeSinceResetCommandParams + ); + result.put("readTimeSinceResetAttribute", readEthernetNetworkDiagnosticsTimeSinceResetAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedEthernetNetworkDiagnosticsClusterGeneratedCommandListAttributeCallback(), + readEthernetNetworkDiagnosticsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readEthernetNetworkDiagnosticsGeneratedCommandListAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedEthernetNetworkDiagnosticsClusterAcceptedCommandListAttributeCallback(), + readEthernetNetworkDiagnosticsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readEthernetNetworkDiagnosticsAcceptedCommandListAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readEventListAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedEthernetNetworkDiagnosticsClusterEventListAttributeCallback(), + readEthernetNetworkDiagnosticsEventListCommandParams + ); + result.put("readEventListAttribute", readEthernetNetworkDiagnosticsEventListAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readAttributeListAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedEthernetNetworkDiagnosticsClusterAttributeListAttributeCallback(), + readEthernetNetworkDiagnosticsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readEthernetNetworkDiagnosticsAttributeListAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readEthernetNetworkDiagnosticsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readEthernetNetworkDiagnosticsFeatureMapAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readEthernetNetworkDiagnosticsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readEthernetNetworkDiagnosticsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readTimeSynchronizationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readTimeSynchronizationUTCTimeCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationUTCTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readUTCTimeAttribute( + (ChipClusters.TimeSynchronizationCluster.UTCTimeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterUTCTimeAttributeCallback(), + readTimeSynchronizationUTCTimeCommandParams + ); + result.put("readUTCTimeAttribute", readTimeSynchronizationUTCTimeAttributeInteractionInfo); + Map readTimeSynchronizationGranularityCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationGranularityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readGranularityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeSynchronizationGranularityCommandParams + ); + result.put("readGranularityAttribute", readTimeSynchronizationGranularityAttributeInteractionInfo); + Map readTimeSynchronizationTimeSourceCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationTimeSourceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readTimeSourceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeSynchronizationTimeSourceCommandParams + ); + result.put("readTimeSourceAttribute", readTimeSynchronizationTimeSourceAttributeInteractionInfo); + Map readTimeSynchronizationDefaultNTPCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationDefaultNTPAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readDefaultNTPAttribute( + (ChipClusters.TimeSynchronizationCluster.DefaultNTPAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterDefaultNTPAttributeCallback(), + readTimeSynchronizationDefaultNTPCommandParams + ); + result.put("readDefaultNTPAttribute", readTimeSynchronizationDefaultNTPAttributeInteractionInfo); + Map readTimeSynchronizationTimeZoneCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationTimeZoneAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readTimeZoneAttribute( + (ChipClusters.TimeSynchronizationCluster.TimeZoneAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterTimeZoneAttributeCallback(), + readTimeSynchronizationTimeZoneCommandParams + ); + result.put("readTimeZoneAttribute", readTimeSynchronizationTimeZoneAttributeInteractionInfo); + Map readTimeSynchronizationDSTOffsetCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationDSTOffsetAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readDSTOffsetAttribute( + (ChipClusters.TimeSynchronizationCluster.DSTOffsetAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterDSTOffsetAttributeCallback(), + readTimeSynchronizationDSTOffsetCommandParams + ); + result.put("readDSTOffsetAttribute", readTimeSynchronizationDSTOffsetAttributeInteractionInfo); + Map readTimeSynchronizationLocalTimeCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationLocalTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readLocalTimeAttribute( + (ChipClusters.TimeSynchronizationCluster.LocalTimeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterLocalTimeAttributeCallback(), + readTimeSynchronizationLocalTimeCommandParams + ); + result.put("readLocalTimeAttribute", readTimeSynchronizationLocalTimeAttributeInteractionInfo); + Map readTimeSynchronizationTimeZoneDatabaseCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationTimeZoneDatabaseAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readTimeZoneDatabaseAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeSynchronizationTimeZoneDatabaseCommandParams + ); + result.put("readTimeZoneDatabaseAttribute", readTimeSynchronizationTimeZoneDatabaseAttributeInteractionInfo); + Map readTimeSynchronizationNTPServerAvailableCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationNTPServerAvailableAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readNTPServerAvailableAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readTimeSynchronizationNTPServerAvailableCommandParams + ); + result.put("readNTPServerAvailableAttribute", readTimeSynchronizationNTPServerAvailableAttributeInteractionInfo); + Map readTimeSynchronizationTimeZoneListMaxSizeCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationTimeZoneListMaxSizeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readTimeZoneListMaxSizeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeSynchronizationTimeZoneListMaxSizeCommandParams + ); + result.put("readTimeZoneListMaxSizeAttribute", readTimeSynchronizationTimeZoneListMaxSizeAttributeInteractionInfo); + Map readTimeSynchronizationDSTOffsetListMaxSizeCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationDSTOffsetListMaxSizeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readDSTOffsetListMaxSizeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeSynchronizationDSTOffsetListMaxSizeCommandParams + ); + result.put("readDSTOffsetListMaxSizeAttribute", readTimeSynchronizationDSTOffsetListMaxSizeAttributeInteractionInfo); + Map readTimeSynchronizationSupportsDNSResolveCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationSupportsDNSResolveAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readSupportsDNSResolveAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readTimeSynchronizationSupportsDNSResolveCommandParams + ); + result.put("readSupportsDNSResolveAttribute", readTimeSynchronizationSupportsDNSResolveAttributeInteractionInfo); + Map readTimeSynchronizationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.TimeSynchronizationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterGeneratedCommandListAttributeCallback(), + readTimeSynchronizationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readTimeSynchronizationGeneratedCommandListAttributeInteractionInfo); + Map readTimeSynchronizationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.TimeSynchronizationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterAcceptedCommandListAttributeCallback(), + readTimeSynchronizationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readTimeSynchronizationAcceptedCommandListAttributeInteractionInfo); + Map readTimeSynchronizationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readEventListAttribute( + (ChipClusters.TimeSynchronizationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterEventListAttributeCallback(), + readTimeSynchronizationEventListCommandParams + ); + result.put("readEventListAttribute", readTimeSynchronizationEventListAttributeInteractionInfo); + Map readTimeSynchronizationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readAttributeListAttribute( + (ChipClusters.TimeSynchronizationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTimeSynchronizationClusterAttributeListAttributeCallback(), + readTimeSynchronizationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readTimeSynchronizationAttributeListAttributeInteractionInfo); + Map readTimeSynchronizationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readTimeSynchronizationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readTimeSynchronizationFeatureMapAttributeInteractionInfo); + Map readTimeSynchronizationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readTimeSynchronizationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeSynchronizationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTimeSynchronizationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readTimeSynchronizationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readBridgedDeviceBasicInformationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readBridgedDeviceBasicInformationVendorNameCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationVendorNameAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readVendorNameAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationVendorNameCommandParams + ); + result.put("readVendorNameAttribute", readBridgedDeviceBasicInformationVendorNameAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationVendorIDCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationVendorIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readVendorIDAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBridgedDeviceBasicInformationVendorIDCommandParams + ); + result.put("readVendorIDAttribute", readBridgedDeviceBasicInformationVendorIDAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationProductNameCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationProductNameAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readProductNameAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationProductNameCommandParams + ); + result.put("readProductNameAttribute", readBridgedDeviceBasicInformationProductNameAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationNodeLabelCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readNodeLabelAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationNodeLabelCommandParams + ); + result.put("readNodeLabelAttribute", readBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationHardwareVersionCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationHardwareVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readHardwareVersionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBridgedDeviceBasicInformationHardwareVersionCommandParams + ); + result.put("readHardwareVersionAttribute", readBridgedDeviceBasicInformationHardwareVersionAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationHardwareVersionStringCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationHardwareVersionStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readHardwareVersionStringAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationHardwareVersionStringCommandParams + ); + result.put("readHardwareVersionStringAttribute", readBridgedDeviceBasicInformationHardwareVersionStringAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationSoftwareVersionCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationSoftwareVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readSoftwareVersionAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBridgedDeviceBasicInformationSoftwareVersionCommandParams + ); + result.put("readSoftwareVersionAttribute", readBridgedDeviceBasicInformationSoftwareVersionAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationSoftwareVersionStringCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationSoftwareVersionStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readSoftwareVersionStringAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationSoftwareVersionStringCommandParams + ); + result.put("readSoftwareVersionStringAttribute", readBridgedDeviceBasicInformationSoftwareVersionStringAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationManufacturingDateCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationManufacturingDateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readManufacturingDateAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationManufacturingDateCommandParams + ); + result.put("readManufacturingDateAttribute", readBridgedDeviceBasicInformationManufacturingDateAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationPartNumberCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationPartNumberAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readPartNumberAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationPartNumberCommandParams + ); + result.put("readPartNumberAttribute", readBridgedDeviceBasicInformationPartNumberAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationProductURLCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationProductURLAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readProductURLAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationProductURLCommandParams + ); + result.put("readProductURLAttribute", readBridgedDeviceBasicInformationProductURLAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationProductLabelCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationProductLabelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readProductLabelAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationProductLabelCommandParams + ); + result.put("readProductLabelAttribute", readBridgedDeviceBasicInformationProductLabelAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationSerialNumberCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationSerialNumberAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readSerialNumberAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationSerialNumberCommandParams + ); + result.put("readSerialNumberAttribute", readBridgedDeviceBasicInformationSerialNumberAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationReachableCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationReachableAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readReachableAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readBridgedDeviceBasicInformationReachableCommandParams + ); + result.put("readReachableAttribute", readBridgedDeviceBasicInformationReachableAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationUniqueIDCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationUniqueIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readUniqueIDAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBridgedDeviceBasicInformationUniqueIDCommandParams + ); + result.put("readUniqueIDAttribute", readBridgedDeviceBasicInformationUniqueIDAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.BridgedDeviceBasicInformationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBridgedDeviceBasicInformationClusterGeneratedCommandListAttributeCallback(), + readBridgedDeviceBasicInformationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readBridgedDeviceBasicInformationGeneratedCommandListAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.BridgedDeviceBasicInformationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBridgedDeviceBasicInformationClusterAcceptedCommandListAttributeCallback(), + readBridgedDeviceBasicInformationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readBridgedDeviceBasicInformationAcceptedCommandListAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readEventListAttribute( + (ChipClusters.BridgedDeviceBasicInformationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBridgedDeviceBasicInformationClusterEventListAttributeCallback(), + readBridgedDeviceBasicInformationEventListCommandParams + ); + result.put("readEventListAttribute", readBridgedDeviceBasicInformationEventListAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readAttributeListAttribute( + (ChipClusters.BridgedDeviceBasicInformationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBridgedDeviceBasicInformationClusterAttributeListAttributeCallback(), + readBridgedDeviceBasicInformationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readBridgedDeviceBasicInformationAttributeListAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBridgedDeviceBasicInformationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readBridgedDeviceBasicInformationFeatureMapAttributeInteractionInfo); + Map readBridgedDeviceBasicInformationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicInformationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBridgedDeviceBasicInformationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readBridgedDeviceBasicInformationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readSwitchInteractionInfo() { + Map result = new LinkedHashMap<>();Map readSwitchNumberOfPositionsCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchNumberOfPositionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readNumberOfPositionsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSwitchNumberOfPositionsCommandParams + ); + result.put("readNumberOfPositionsAttribute", readSwitchNumberOfPositionsAttributeInteractionInfo); + Map readSwitchCurrentPositionCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchCurrentPositionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readCurrentPositionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSwitchCurrentPositionCommandParams + ); + result.put("readCurrentPositionAttribute", readSwitchCurrentPositionAttributeInteractionInfo); + Map readSwitchMultiPressMaxCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchMultiPressMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readMultiPressMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSwitchMultiPressMaxCommandParams + ); + result.put("readMultiPressMaxAttribute", readSwitchMultiPressMaxAttributeInteractionInfo); + Map readSwitchGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.SwitchCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSwitchClusterGeneratedCommandListAttributeCallback(), + readSwitchGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readSwitchGeneratedCommandListAttributeInteractionInfo); + Map readSwitchAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.SwitchCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSwitchClusterAcceptedCommandListAttributeCallback(), + readSwitchAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readSwitchAcceptedCommandListAttributeInteractionInfo); + Map readSwitchEventListCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readEventListAttribute( + (ChipClusters.SwitchCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSwitchClusterEventListAttributeCallback(), + readSwitchEventListCommandParams + ); + result.put("readEventListAttribute", readSwitchEventListAttributeInteractionInfo); + Map readSwitchAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readAttributeListAttribute( + (ChipClusters.SwitchCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSwitchClusterAttributeListAttributeCallback(), + readSwitchAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readSwitchAttributeListAttributeInteractionInfo); + Map readSwitchFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readSwitchFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readSwitchFeatureMapAttributeInteractionInfo); + Map readSwitchClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readSwitchClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSwitchClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readSwitchClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readAdministratorCommissioningInteractionInfo() { + Map result = new LinkedHashMap<>();Map readAdministratorCommissioningWindowStatusCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningWindowStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readWindowStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAdministratorCommissioningWindowStatusCommandParams + ); + result.put("readWindowStatusAttribute", readAdministratorCommissioningWindowStatusAttributeInteractionInfo); + Map readAdministratorCommissioningAdminFabricIndexCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningAdminFabricIndexAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readAdminFabricIndexAttribute( + (ChipClusters.AdministratorCommissioningCluster.AdminFabricIndexAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAdministratorCommissioningClusterAdminFabricIndexAttributeCallback(), + readAdministratorCommissioningAdminFabricIndexCommandParams + ); + result.put("readAdminFabricIndexAttribute", readAdministratorCommissioningAdminFabricIndexAttributeInteractionInfo); + Map readAdministratorCommissioningAdminVendorIdCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningAdminVendorIdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readAdminVendorIdAttribute( + (ChipClusters.AdministratorCommissioningCluster.AdminVendorIdAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAdministratorCommissioningClusterAdminVendorIdAttributeCallback(), + readAdministratorCommissioningAdminVendorIdCommandParams + ); + result.put("readAdminVendorIdAttribute", readAdministratorCommissioningAdminVendorIdAttributeInteractionInfo); + Map readAdministratorCommissioningGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.AdministratorCommissioningCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAdministratorCommissioningClusterGeneratedCommandListAttributeCallback(), + readAdministratorCommissioningGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readAdministratorCommissioningGeneratedCommandListAttributeInteractionInfo); + Map readAdministratorCommissioningAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.AdministratorCommissioningCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAdministratorCommissioningClusterAcceptedCommandListAttributeCallback(), + readAdministratorCommissioningAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readAdministratorCommissioningAcceptedCommandListAttributeInteractionInfo); + Map readAdministratorCommissioningEventListCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readEventListAttribute( + (ChipClusters.AdministratorCommissioningCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAdministratorCommissioningClusterEventListAttributeCallback(), + readAdministratorCommissioningEventListCommandParams + ); + result.put("readEventListAttribute", readAdministratorCommissioningEventListAttributeInteractionInfo); + Map readAdministratorCommissioningAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readAttributeListAttribute( + (ChipClusters.AdministratorCommissioningCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAdministratorCommissioningClusterAttributeListAttributeCallback(), + readAdministratorCommissioningAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readAdministratorCommissioningAttributeListAttributeInteractionInfo); + Map readAdministratorCommissioningFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readAdministratorCommissioningFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readAdministratorCommissioningFeatureMapAttributeInteractionInfo); + Map readAdministratorCommissioningClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAdministratorCommissioningClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readAdministratorCommissioningClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readOperationalCredentialsInteractionInfo() { + Map result = new LinkedHashMap<>();Map readOperationalCredentialsNOCsCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsNOCsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readNOCsAttribute( + (ChipClusters.OperationalCredentialsCluster.NOCsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOperationalCredentialsClusterNOCsAttributeCallback(), + readOperationalCredentialsNOCsCommandParams + ); + result.put("readNOCsAttribute", readOperationalCredentialsNOCsAttributeInteractionInfo); + Map readOperationalCredentialsFabricsCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsFabricsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readFabricsAttribute( + (ChipClusters.OperationalCredentialsCluster.FabricsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOperationalCredentialsClusterFabricsAttributeCallback(), + readOperationalCredentialsFabricsCommandParams + ); + result.put("readFabricsAttribute", readOperationalCredentialsFabricsAttributeInteractionInfo); + Map readOperationalCredentialsSupportedFabricsCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsSupportedFabricsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readSupportedFabricsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOperationalCredentialsSupportedFabricsCommandParams + ); + result.put("readSupportedFabricsAttribute", readOperationalCredentialsSupportedFabricsAttributeInteractionInfo); + Map readOperationalCredentialsCommissionedFabricsCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsCommissionedFabricsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readCommissionedFabricsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOperationalCredentialsCommissionedFabricsCommandParams + ); + result.put("readCommissionedFabricsAttribute", readOperationalCredentialsCommissionedFabricsAttributeInteractionInfo); + Map readOperationalCredentialsTrustedRootCertificatesCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsTrustedRootCertificatesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readTrustedRootCertificatesAttribute( + (ChipClusters.OperationalCredentialsCluster.TrustedRootCertificatesAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOperationalCredentialsClusterTrustedRootCertificatesAttributeCallback(), + readOperationalCredentialsTrustedRootCertificatesCommandParams + ); + result.put("readTrustedRootCertificatesAttribute", readOperationalCredentialsTrustedRootCertificatesAttributeInteractionInfo); + Map readOperationalCredentialsCurrentFabricIndexCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsCurrentFabricIndexAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readCurrentFabricIndexAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOperationalCredentialsCurrentFabricIndexCommandParams + ); + result.put("readCurrentFabricIndexAttribute", readOperationalCredentialsCurrentFabricIndexAttributeInteractionInfo); + Map readOperationalCredentialsGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.OperationalCredentialsCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOperationalCredentialsClusterGeneratedCommandListAttributeCallback(), + readOperationalCredentialsGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readOperationalCredentialsGeneratedCommandListAttributeInteractionInfo); + Map readOperationalCredentialsAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.OperationalCredentialsCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOperationalCredentialsClusterAcceptedCommandListAttributeCallback(), + readOperationalCredentialsAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readOperationalCredentialsAcceptedCommandListAttributeInteractionInfo); + Map readOperationalCredentialsEventListCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readEventListAttribute( + (ChipClusters.OperationalCredentialsCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOperationalCredentialsClusterEventListAttributeCallback(), + readOperationalCredentialsEventListCommandParams + ); + result.put("readEventListAttribute", readOperationalCredentialsEventListAttributeInteractionInfo); + Map readOperationalCredentialsAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readAttributeListAttribute( + (ChipClusters.OperationalCredentialsCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOperationalCredentialsClusterAttributeListAttributeCallback(), + readOperationalCredentialsAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readOperationalCredentialsAttributeListAttributeInteractionInfo); + Map readOperationalCredentialsFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readOperationalCredentialsFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readOperationalCredentialsFeatureMapAttributeInteractionInfo); + Map readOperationalCredentialsClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readOperationalCredentialsClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOperationalCredentialsClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readOperationalCredentialsClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readGroupKeyManagementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readGroupKeyManagementGroupKeyMapCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementGroupKeyMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readGroupKeyMapAttribute( + (ChipClusters.GroupKeyManagementCluster.GroupKeyMapAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupKeyManagementClusterGroupKeyMapAttributeCallback(), + readGroupKeyManagementGroupKeyMapCommandParams + ); + result.put("readGroupKeyMapAttribute", readGroupKeyManagementGroupKeyMapAttributeInteractionInfo); + Map readGroupKeyManagementGroupTableCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementGroupTableAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readGroupTableAttribute( + (ChipClusters.GroupKeyManagementCluster.GroupTableAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupKeyManagementClusterGroupTableAttributeCallback(), + readGroupKeyManagementGroupTableCommandParams + ); + result.put("readGroupTableAttribute", readGroupKeyManagementGroupTableAttributeInteractionInfo); + Map readGroupKeyManagementMaxGroupsPerFabricCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementMaxGroupsPerFabricAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readMaxGroupsPerFabricAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGroupKeyManagementMaxGroupsPerFabricCommandParams + ); + result.put("readMaxGroupsPerFabricAttribute", readGroupKeyManagementMaxGroupsPerFabricAttributeInteractionInfo); + Map readGroupKeyManagementMaxGroupKeysPerFabricCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementMaxGroupKeysPerFabricAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readMaxGroupKeysPerFabricAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGroupKeyManagementMaxGroupKeysPerFabricCommandParams + ); + result.put("readMaxGroupKeysPerFabricAttribute", readGroupKeyManagementMaxGroupKeysPerFabricAttributeInteractionInfo); + Map readGroupKeyManagementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.GroupKeyManagementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupKeyManagementClusterGeneratedCommandListAttributeCallback(), + readGroupKeyManagementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readGroupKeyManagementGeneratedCommandListAttributeInteractionInfo); + Map readGroupKeyManagementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.GroupKeyManagementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupKeyManagementClusterAcceptedCommandListAttributeCallback(), + readGroupKeyManagementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readGroupKeyManagementAcceptedCommandListAttributeInteractionInfo); + Map readGroupKeyManagementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readEventListAttribute( + (ChipClusters.GroupKeyManagementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupKeyManagementClusterEventListAttributeCallback(), + readGroupKeyManagementEventListCommandParams + ); + result.put("readEventListAttribute", readGroupKeyManagementEventListAttributeInteractionInfo); + Map readGroupKeyManagementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readAttributeListAttribute( + (ChipClusters.GroupKeyManagementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedGroupKeyManagementClusterAttributeListAttributeCallback(), + readGroupKeyManagementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readGroupKeyManagementAttributeListAttributeInteractionInfo); + Map readGroupKeyManagementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readGroupKeyManagementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readGroupKeyManagementFeatureMapAttributeInteractionInfo); + Map readGroupKeyManagementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readGroupKeyManagementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readGroupKeyManagementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readGroupKeyManagementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readFixedLabelInteractionInfo() { + Map result = new LinkedHashMap<>();Map readFixedLabelLabelListCommandParams = new LinkedHashMap(); + InteractionInfo readFixedLabelLabelListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster).readLabelListAttribute( + (ChipClusters.FixedLabelCluster.LabelListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFixedLabelClusterLabelListAttributeCallback(), + readFixedLabelLabelListCommandParams + ); + result.put("readLabelListAttribute", readFixedLabelLabelListAttributeInteractionInfo); + Map readFixedLabelGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFixedLabelGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.FixedLabelCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFixedLabelClusterGeneratedCommandListAttributeCallback(), + readFixedLabelGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readFixedLabelGeneratedCommandListAttributeInteractionInfo); + Map readFixedLabelAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFixedLabelAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.FixedLabelCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFixedLabelClusterAcceptedCommandListAttributeCallback(), + readFixedLabelAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readFixedLabelAcceptedCommandListAttributeInteractionInfo); + Map readFixedLabelEventListCommandParams = new LinkedHashMap(); + InteractionInfo readFixedLabelEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster).readEventListAttribute( + (ChipClusters.FixedLabelCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFixedLabelClusterEventListAttributeCallback(), + readFixedLabelEventListCommandParams + ); + result.put("readEventListAttribute", readFixedLabelEventListAttributeInteractionInfo); + Map readFixedLabelAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readFixedLabelAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster).readAttributeListAttribute( + (ChipClusters.FixedLabelCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFixedLabelClusterAttributeListAttributeCallback(), + readFixedLabelAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readFixedLabelAttributeListAttributeInteractionInfo); + Map readFixedLabelFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readFixedLabelFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readFixedLabelFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readFixedLabelFeatureMapAttributeInteractionInfo); + Map readFixedLabelClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readFixedLabelClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFixedLabelClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readFixedLabelClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readUserLabelInteractionInfo() { + Map result = new LinkedHashMap<>();Map readUserLabelLabelListCommandParams = new LinkedHashMap(); + InteractionInfo readUserLabelLabelListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UserLabelCluster) cluster).readLabelListAttribute( + (ChipClusters.UserLabelCluster.LabelListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUserLabelClusterLabelListAttributeCallback(), + readUserLabelLabelListCommandParams + ); + result.put("readLabelListAttribute", readUserLabelLabelListAttributeInteractionInfo); + Map readUserLabelGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUserLabelGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UserLabelCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.UserLabelCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUserLabelClusterGeneratedCommandListAttributeCallback(), + readUserLabelGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readUserLabelGeneratedCommandListAttributeInteractionInfo); + Map readUserLabelAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUserLabelAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UserLabelCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.UserLabelCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUserLabelClusterAcceptedCommandListAttributeCallback(), + readUserLabelAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readUserLabelAcceptedCommandListAttributeInteractionInfo); + Map readUserLabelEventListCommandParams = new LinkedHashMap(); + InteractionInfo readUserLabelEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UserLabelCluster) cluster).readEventListAttribute( + (ChipClusters.UserLabelCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUserLabelClusterEventListAttributeCallback(), + readUserLabelEventListCommandParams + ); + result.put("readEventListAttribute", readUserLabelEventListAttributeInteractionInfo); + Map readUserLabelAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readUserLabelAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UserLabelCluster) cluster).readAttributeListAttribute( + (ChipClusters.UserLabelCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUserLabelClusterAttributeListAttributeCallback(), + readUserLabelAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readUserLabelAttributeListAttributeInteractionInfo); + Map readUserLabelFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readUserLabelFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UserLabelCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUserLabelFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readUserLabelFeatureMapAttributeInteractionInfo); + Map readUserLabelClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readUserLabelClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UserLabelCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUserLabelClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readUserLabelClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readProxyConfigurationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readProxyConfigurationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyConfigurationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyConfigurationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ProxyConfigurationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyConfigurationClusterGeneratedCommandListAttributeCallback(), + readProxyConfigurationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readProxyConfigurationGeneratedCommandListAttributeInteractionInfo); + Map readProxyConfigurationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyConfigurationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyConfigurationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ProxyConfigurationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyConfigurationClusterAcceptedCommandListAttributeCallback(), + readProxyConfigurationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readProxyConfigurationAcceptedCommandListAttributeInteractionInfo); + Map readProxyConfigurationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyConfigurationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyConfigurationCluster) cluster).readEventListAttribute( + (ChipClusters.ProxyConfigurationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyConfigurationClusterEventListAttributeCallback(), + readProxyConfigurationEventListCommandParams + ); + result.put("readEventListAttribute", readProxyConfigurationEventListAttributeInteractionInfo); + Map readProxyConfigurationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyConfigurationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyConfigurationCluster) cluster).readAttributeListAttribute( + (ChipClusters.ProxyConfigurationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyConfigurationClusterAttributeListAttributeCallback(), + readProxyConfigurationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readProxyConfigurationAttributeListAttributeInteractionInfo); + Map readProxyConfigurationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readProxyConfigurationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyConfigurationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readProxyConfigurationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readProxyConfigurationFeatureMapAttributeInteractionInfo); + Map readProxyConfigurationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readProxyConfigurationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyConfigurationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readProxyConfigurationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readProxyConfigurationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readProxyDiscoveryInteractionInfo() { + Map result = new LinkedHashMap<>();Map readProxyDiscoveryGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyDiscoveryGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyDiscoveryCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ProxyDiscoveryCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyDiscoveryClusterGeneratedCommandListAttributeCallback(), + readProxyDiscoveryGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readProxyDiscoveryGeneratedCommandListAttributeInteractionInfo); + Map readProxyDiscoveryAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyDiscoveryAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyDiscoveryCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ProxyDiscoveryCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyDiscoveryClusterAcceptedCommandListAttributeCallback(), + readProxyDiscoveryAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readProxyDiscoveryAcceptedCommandListAttributeInteractionInfo); + Map readProxyDiscoveryEventListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyDiscoveryEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyDiscoveryCluster) cluster).readEventListAttribute( + (ChipClusters.ProxyDiscoveryCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyDiscoveryClusterEventListAttributeCallback(), + readProxyDiscoveryEventListCommandParams + ); + result.put("readEventListAttribute", readProxyDiscoveryEventListAttributeInteractionInfo); + Map readProxyDiscoveryAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyDiscoveryAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyDiscoveryCluster) cluster).readAttributeListAttribute( + (ChipClusters.ProxyDiscoveryCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyDiscoveryClusterAttributeListAttributeCallback(), + readProxyDiscoveryAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readProxyDiscoveryAttributeListAttributeInteractionInfo); + Map readProxyDiscoveryFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readProxyDiscoveryFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyDiscoveryCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readProxyDiscoveryFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readProxyDiscoveryFeatureMapAttributeInteractionInfo); + Map readProxyDiscoveryClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readProxyDiscoveryClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyDiscoveryCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readProxyDiscoveryClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readProxyDiscoveryClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readProxyValidInteractionInfo() { + Map result = new LinkedHashMap<>();Map readProxyValidGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyValidGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyValidCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ProxyValidCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyValidClusterGeneratedCommandListAttributeCallback(), + readProxyValidGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readProxyValidGeneratedCommandListAttributeInteractionInfo); + Map readProxyValidAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyValidAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyValidCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ProxyValidCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyValidClusterAcceptedCommandListAttributeCallback(), + readProxyValidAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readProxyValidAcceptedCommandListAttributeInteractionInfo); + Map readProxyValidEventListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyValidEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyValidCluster) cluster).readEventListAttribute( + (ChipClusters.ProxyValidCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyValidClusterEventListAttributeCallback(), + readProxyValidEventListCommandParams + ); + result.put("readEventListAttribute", readProxyValidEventListAttributeInteractionInfo); + Map readProxyValidAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readProxyValidAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyValidCluster) cluster).readAttributeListAttribute( + (ChipClusters.ProxyValidCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedProxyValidClusterAttributeListAttributeCallback(), + readProxyValidAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readProxyValidAttributeListAttributeInteractionInfo); + Map readProxyValidFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readProxyValidFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyValidCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readProxyValidFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readProxyValidFeatureMapAttributeInteractionInfo); + Map readProxyValidClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readProxyValidClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ProxyValidCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readProxyValidClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readProxyValidClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readBooleanStateInteractionInfo() { + Map result = new LinkedHashMap<>();Map readBooleanStateStateValueCommandParams = new LinkedHashMap(); + InteractionInfo readBooleanStateStateValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster).readStateValueAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readBooleanStateStateValueCommandParams + ); + result.put("readStateValueAttribute", readBooleanStateStateValueAttributeInteractionInfo); + Map readBooleanStateGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBooleanStateGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.BooleanStateCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanStateClusterGeneratedCommandListAttributeCallback(), + readBooleanStateGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readBooleanStateGeneratedCommandListAttributeInteractionInfo); + Map readBooleanStateAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBooleanStateAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.BooleanStateCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanStateClusterAcceptedCommandListAttributeCallback(), + readBooleanStateAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readBooleanStateAcceptedCommandListAttributeInteractionInfo); + Map readBooleanStateEventListCommandParams = new LinkedHashMap(); + InteractionInfo readBooleanStateEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster).readEventListAttribute( + (ChipClusters.BooleanStateCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanStateClusterEventListAttributeCallback(), + readBooleanStateEventListCommandParams + ); + result.put("readEventListAttribute", readBooleanStateEventListAttributeInteractionInfo); + Map readBooleanStateAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readBooleanStateAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster).readAttributeListAttribute( + (ChipClusters.BooleanStateCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanStateClusterAttributeListAttributeCallback(), + readBooleanStateAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readBooleanStateAttributeListAttributeInteractionInfo); + Map readBooleanStateFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readBooleanStateFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBooleanStateFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readBooleanStateFeatureMapAttributeInteractionInfo); + Map readBooleanStateClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBooleanStateClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBooleanStateClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readBooleanStateClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readIcdManagementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readIcdManagementIdleModeIntervalCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementIdleModeIntervalAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readIdleModeIntervalAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readIcdManagementIdleModeIntervalCommandParams + ); + result.put("readIdleModeIntervalAttribute", readIcdManagementIdleModeIntervalAttributeInteractionInfo); + Map readIcdManagementActiveModeIntervalCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementActiveModeIntervalAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readActiveModeIntervalAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readIcdManagementActiveModeIntervalCommandParams + ); + result.put("readActiveModeIntervalAttribute", readIcdManagementActiveModeIntervalAttributeInteractionInfo); + Map readIcdManagementActiveModeThresholdCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementActiveModeThresholdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readActiveModeThresholdAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIcdManagementActiveModeThresholdCommandParams + ); + result.put("readActiveModeThresholdAttribute", readIcdManagementActiveModeThresholdAttributeInteractionInfo); + Map readIcdManagementRegisteredClientsCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementRegisteredClientsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readRegisteredClientsAttribute( + (ChipClusters.IcdManagementCluster.RegisteredClientsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIcdManagementClusterRegisteredClientsAttributeCallback(), + readIcdManagementRegisteredClientsCommandParams + ); + result.put("readRegisteredClientsAttribute", readIcdManagementRegisteredClientsAttributeInteractionInfo); + Map readIcdManagementICDCounterCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementICDCounterAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readICDCounterAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readIcdManagementICDCounterCommandParams + ); + result.put("readICDCounterAttribute", readIcdManagementICDCounterAttributeInteractionInfo); + Map readIcdManagementClientsSupportedPerFabricCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementClientsSupportedPerFabricAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readClientsSupportedPerFabricAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIcdManagementClientsSupportedPerFabricCommandParams + ); + result.put("readClientsSupportedPerFabricAttribute", readIcdManagementClientsSupportedPerFabricAttributeInteractionInfo); + Map readIcdManagementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.IcdManagementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIcdManagementClusterGeneratedCommandListAttributeCallback(), + readIcdManagementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readIcdManagementGeneratedCommandListAttributeInteractionInfo); + Map readIcdManagementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.IcdManagementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIcdManagementClusterAcceptedCommandListAttributeCallback(), + readIcdManagementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readIcdManagementAcceptedCommandListAttributeInteractionInfo); + Map readIcdManagementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readEventListAttribute( + (ChipClusters.IcdManagementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIcdManagementClusterEventListAttributeCallback(), + readIcdManagementEventListCommandParams + ); + result.put("readEventListAttribute", readIcdManagementEventListAttributeInteractionInfo); + Map readIcdManagementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readAttributeListAttribute( + (ChipClusters.IcdManagementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIcdManagementClusterAttributeListAttributeCallback(), + readIcdManagementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readIcdManagementAttributeListAttributeInteractionInfo); + Map readIcdManagementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readIcdManagementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readIcdManagementFeatureMapAttributeInteractionInfo); + Map readIcdManagementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readIcdManagementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IcdManagementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIcdManagementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readIcdManagementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readModeSelectInteractionInfo() { + Map result = new LinkedHashMap<>();Map readModeSelectDescriptionCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectDescriptionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readDescriptionAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readModeSelectDescriptionCommandParams + ); + result.put("readDescriptionAttribute", readModeSelectDescriptionAttributeInteractionInfo); + Map readModeSelectStandardNamespaceCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectStandardNamespaceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readStandardNamespaceAttribute( + (ChipClusters.ModeSelectCluster.StandardNamespaceAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterStandardNamespaceAttributeCallback(), + readModeSelectStandardNamespaceCommandParams + ); + result.put("readStandardNamespaceAttribute", readModeSelectStandardNamespaceAttributeInteractionInfo); + Map readModeSelectSupportedModesCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectSupportedModesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readSupportedModesAttribute( + (ChipClusters.ModeSelectCluster.SupportedModesAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterSupportedModesAttributeCallback(), + readModeSelectSupportedModesCommandParams + ); + result.put("readSupportedModesAttribute", readModeSelectSupportedModesAttributeInteractionInfo); + Map readModeSelectCurrentModeCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectCurrentModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readCurrentModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readModeSelectCurrentModeCommandParams + ); + result.put("readCurrentModeAttribute", readModeSelectCurrentModeAttributeInteractionInfo); + Map readModeSelectStartUpModeCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectStartUpModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readStartUpModeAttribute( + (ChipClusters.ModeSelectCluster.StartUpModeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterStartUpModeAttributeCallback(), + readModeSelectStartUpModeCommandParams + ); + result.put("readStartUpModeAttribute", readModeSelectStartUpModeAttributeInteractionInfo); + Map readModeSelectOnModeCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectOnModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readOnModeAttribute( + (ChipClusters.ModeSelectCluster.OnModeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterOnModeAttributeCallback(), + readModeSelectOnModeCommandParams + ); + result.put("readOnModeAttribute", readModeSelectOnModeAttributeInteractionInfo); + Map readModeSelectGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ModeSelectCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterGeneratedCommandListAttributeCallback(), + readModeSelectGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readModeSelectGeneratedCommandListAttributeInteractionInfo); + Map readModeSelectAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ModeSelectCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterAcceptedCommandListAttributeCallback(), + readModeSelectAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readModeSelectAcceptedCommandListAttributeInteractionInfo); + Map readModeSelectEventListCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readEventListAttribute( + (ChipClusters.ModeSelectCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterEventListAttributeCallback(), + readModeSelectEventListCommandParams + ); + result.put("readEventListAttribute", readModeSelectEventListAttributeInteractionInfo); + Map readModeSelectAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readAttributeListAttribute( + (ChipClusters.ModeSelectCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedModeSelectClusterAttributeListAttributeCallback(), + readModeSelectAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readModeSelectAttributeListAttributeInteractionInfo); + Map readModeSelectFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readModeSelectFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readModeSelectFeatureMapAttributeInteractionInfo); + Map readModeSelectClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readModeSelectClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readModeSelectClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readModeSelectClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readTemperatureControlInteractionInfo() { + Map result = new LinkedHashMap<>();Map readTemperatureControlTemperatureSetpointCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlTemperatureSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readTemperatureSetpointAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureControlTemperatureSetpointCommandParams + ); + result.put("readTemperatureSetpointAttribute", readTemperatureControlTemperatureSetpointAttributeInteractionInfo); + Map readTemperatureControlMinTemperatureCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlMinTemperatureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readMinTemperatureAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureControlMinTemperatureCommandParams + ); + result.put("readMinTemperatureAttribute", readTemperatureControlMinTemperatureAttributeInteractionInfo); + Map readTemperatureControlMaxTemperatureCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlMaxTemperatureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readMaxTemperatureAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureControlMaxTemperatureCommandParams + ); + result.put("readMaxTemperatureAttribute", readTemperatureControlMaxTemperatureAttributeInteractionInfo); + Map readTemperatureControlStepCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlStepAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readStepAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureControlStepCommandParams + ); + result.put("readStepAttribute", readTemperatureControlStepAttributeInteractionInfo); + Map readTemperatureControlCurrentTemperatureLevelIndexCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlCurrentTemperatureLevelIndexAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readCurrentTemperatureLevelIndexAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureControlCurrentTemperatureLevelIndexCommandParams + ); + result.put("readCurrentTemperatureLevelIndexAttribute", readTemperatureControlCurrentTemperatureLevelIndexAttributeInteractionInfo); + Map readTemperatureControlSupportedTemperatureLevelsCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlSupportedTemperatureLevelsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readSupportedTemperatureLevelsAttribute( + (ChipClusters.TemperatureControlCluster.SupportedTemperatureLevelsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureControlClusterSupportedTemperatureLevelsAttributeCallback(), + readTemperatureControlSupportedTemperatureLevelsCommandParams + ); + result.put("readSupportedTemperatureLevelsAttribute", readTemperatureControlSupportedTemperatureLevelsAttributeInteractionInfo); + Map readTemperatureControlGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.TemperatureControlCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureControlClusterGeneratedCommandListAttributeCallback(), + readTemperatureControlGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readTemperatureControlGeneratedCommandListAttributeInteractionInfo); + Map readTemperatureControlAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.TemperatureControlCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureControlClusterAcceptedCommandListAttributeCallback(), + readTemperatureControlAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readTemperatureControlAcceptedCommandListAttributeInteractionInfo); + Map readTemperatureControlEventListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readEventListAttribute( + (ChipClusters.TemperatureControlCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureControlClusterEventListAttributeCallback(), + readTemperatureControlEventListCommandParams + ); + result.put("readEventListAttribute", readTemperatureControlEventListAttributeInteractionInfo); + Map readTemperatureControlAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readAttributeListAttribute( + (ChipClusters.TemperatureControlCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureControlClusterAttributeListAttributeCallback(), + readTemperatureControlAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readTemperatureControlAttributeListAttributeInteractionInfo); + Map readTemperatureControlFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readTemperatureControlFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readTemperatureControlFeatureMapAttributeInteractionInfo); + Map readTemperatureControlClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureControlClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureControlCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureControlClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readTemperatureControlClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readRefrigeratorAlarmInteractionInfo() { + Map result = new LinkedHashMap<>();Map readRefrigeratorAlarmMaskCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmMaskAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readMaskAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readRefrigeratorAlarmMaskCommandParams + ); + result.put("readMaskAttribute", readRefrigeratorAlarmMaskAttributeInteractionInfo); + Map readRefrigeratorAlarmLatchCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmLatchAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readLatchAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readRefrigeratorAlarmLatchCommandParams + ); + result.put("readLatchAttribute", readRefrigeratorAlarmLatchAttributeInteractionInfo); + Map readRefrigeratorAlarmStateCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readStateAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readRefrigeratorAlarmStateCommandParams + ); + result.put("readStateAttribute", readRefrigeratorAlarmStateAttributeInteractionInfo); + Map readRefrigeratorAlarmGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.RefrigeratorAlarmCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRefrigeratorAlarmClusterGeneratedCommandListAttributeCallback(), + readRefrigeratorAlarmGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readRefrigeratorAlarmGeneratedCommandListAttributeInteractionInfo); + Map readRefrigeratorAlarmAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.RefrigeratorAlarmCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRefrigeratorAlarmClusterAcceptedCommandListAttributeCallback(), + readRefrigeratorAlarmAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readRefrigeratorAlarmAcceptedCommandListAttributeInteractionInfo); + Map readRefrigeratorAlarmEventListCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readEventListAttribute( + (ChipClusters.RefrigeratorAlarmCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRefrigeratorAlarmClusterEventListAttributeCallback(), + readRefrigeratorAlarmEventListCommandParams + ); + result.put("readEventListAttribute", readRefrigeratorAlarmEventListAttributeInteractionInfo); + Map readRefrigeratorAlarmAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readAttributeListAttribute( + (ChipClusters.RefrigeratorAlarmCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRefrigeratorAlarmClusterAttributeListAttributeCallback(), + readRefrigeratorAlarmAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readRefrigeratorAlarmAttributeListAttributeInteractionInfo); + Map readRefrigeratorAlarmFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readRefrigeratorAlarmFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readRefrigeratorAlarmFeatureMapAttributeInteractionInfo); + Map readRefrigeratorAlarmClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readRefrigeratorAlarmClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readRefrigeratorAlarmClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readRefrigeratorAlarmClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readAirQualityInteractionInfo() { + Map result = new LinkedHashMap<>();Map readAirQualityAirQualityCommandParams = new LinkedHashMap(); + InteractionInfo readAirQualityAirQualityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AirQualityCluster) cluster).readAirQualityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAirQualityAirQualityCommandParams + ); + result.put("readAirQualityAttribute", readAirQualityAirQualityAttributeInteractionInfo); + Map readAirQualityGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAirQualityGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AirQualityCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.AirQualityCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAirQualityClusterGeneratedCommandListAttributeCallback(), + readAirQualityGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readAirQualityGeneratedCommandListAttributeInteractionInfo); + Map readAirQualityAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAirQualityAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AirQualityCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.AirQualityCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAirQualityClusterAcceptedCommandListAttributeCallback(), + readAirQualityAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readAirQualityAcceptedCommandListAttributeInteractionInfo); + Map readAirQualityEventListCommandParams = new LinkedHashMap(); + InteractionInfo readAirQualityEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AirQualityCluster) cluster).readEventListAttribute( + (ChipClusters.AirQualityCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAirQualityClusterEventListAttributeCallback(), + readAirQualityEventListCommandParams + ); + result.put("readEventListAttribute", readAirQualityEventListAttributeInteractionInfo); + Map readAirQualityAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readAirQualityAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AirQualityCluster) cluster).readAttributeListAttribute( + (ChipClusters.AirQualityCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAirQualityClusterAttributeListAttributeCallback(), + readAirQualityAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readAirQualityAttributeListAttributeInteractionInfo); + Map readAirQualityFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readAirQualityFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AirQualityCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readAirQualityFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readAirQualityFeatureMapAttributeInteractionInfo); + Map readAirQualityClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readAirQualityClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AirQualityCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAirQualityClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readAirQualityClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readSmokeCoAlarmInteractionInfo() { + Map result = new LinkedHashMap<>();Map readSmokeCoAlarmExpressedStateCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmExpressedStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readExpressedStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmExpressedStateCommandParams + ); + result.put("readExpressedStateAttribute", readSmokeCoAlarmExpressedStateAttributeInteractionInfo); + Map readSmokeCoAlarmSmokeStateCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmSmokeStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readSmokeStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmSmokeStateCommandParams + ); + result.put("readSmokeStateAttribute", readSmokeCoAlarmSmokeStateAttributeInteractionInfo); + Map readSmokeCoAlarmCOStateCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmCOStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readCOStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmCOStateCommandParams + ); + result.put("readCOStateAttribute", readSmokeCoAlarmCOStateAttributeInteractionInfo); + Map readSmokeCoAlarmBatteryAlertCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmBatteryAlertAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readBatteryAlertAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmBatteryAlertCommandParams + ); + result.put("readBatteryAlertAttribute", readSmokeCoAlarmBatteryAlertAttributeInteractionInfo); + Map readSmokeCoAlarmDeviceMutedCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmDeviceMutedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readDeviceMutedAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmDeviceMutedCommandParams + ); + result.put("readDeviceMutedAttribute", readSmokeCoAlarmDeviceMutedAttributeInteractionInfo); + Map readSmokeCoAlarmTestInProgressCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmTestInProgressAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readTestInProgressAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readSmokeCoAlarmTestInProgressCommandParams + ); + result.put("readTestInProgressAttribute", readSmokeCoAlarmTestInProgressAttributeInteractionInfo); + Map readSmokeCoAlarmHardwareFaultAlertCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmHardwareFaultAlertAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readHardwareFaultAlertAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readSmokeCoAlarmHardwareFaultAlertCommandParams + ); + result.put("readHardwareFaultAlertAttribute", readSmokeCoAlarmHardwareFaultAlertAttributeInteractionInfo); + Map readSmokeCoAlarmEndOfServiceAlertCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmEndOfServiceAlertAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readEndOfServiceAlertAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmEndOfServiceAlertCommandParams + ); + result.put("readEndOfServiceAlertAttribute", readSmokeCoAlarmEndOfServiceAlertAttributeInteractionInfo); + Map readSmokeCoAlarmInterconnectSmokeAlarmCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmInterconnectSmokeAlarmAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readInterconnectSmokeAlarmAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmInterconnectSmokeAlarmCommandParams + ); + result.put("readInterconnectSmokeAlarmAttribute", readSmokeCoAlarmInterconnectSmokeAlarmAttributeInteractionInfo); + Map readSmokeCoAlarmInterconnectCOAlarmCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmInterconnectCOAlarmAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readInterconnectCOAlarmAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmInterconnectCOAlarmCommandParams + ); + result.put("readInterconnectCOAlarmAttribute", readSmokeCoAlarmInterconnectCOAlarmAttributeInteractionInfo); + Map readSmokeCoAlarmContaminationStateCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmContaminationStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readContaminationStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmContaminationStateCommandParams + ); + result.put("readContaminationStateAttribute", readSmokeCoAlarmContaminationStateAttributeInteractionInfo); + Map readSmokeCoAlarmSensitivityLevelCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmSensitivityLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readSensitivityLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmSensitivityLevelCommandParams + ); + result.put("readSensitivityLevelAttribute", readSmokeCoAlarmSensitivityLevelAttributeInteractionInfo); + Map readSmokeCoAlarmGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.SmokeCoAlarmCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSmokeCoAlarmClusterGeneratedCommandListAttributeCallback(), + readSmokeCoAlarmGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readSmokeCoAlarmGeneratedCommandListAttributeInteractionInfo); + Map readSmokeCoAlarmAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.SmokeCoAlarmCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSmokeCoAlarmClusterAcceptedCommandListAttributeCallback(), + readSmokeCoAlarmAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readSmokeCoAlarmAcceptedCommandListAttributeInteractionInfo); + Map readSmokeCoAlarmEventListCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readEventListAttribute( + (ChipClusters.SmokeCoAlarmCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSmokeCoAlarmClusterEventListAttributeCallback(), + readSmokeCoAlarmEventListCommandParams + ); + result.put("readEventListAttribute", readSmokeCoAlarmEventListAttributeInteractionInfo); + Map readSmokeCoAlarmAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readAttributeListAttribute( + (ChipClusters.SmokeCoAlarmCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedSmokeCoAlarmClusterAttributeListAttributeCallback(), + readSmokeCoAlarmAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readSmokeCoAlarmAttributeListAttributeInteractionInfo); + Map readSmokeCoAlarmFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readSmokeCoAlarmFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readSmokeCoAlarmFeatureMapAttributeInteractionInfo); + Map readSmokeCoAlarmClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readSmokeCoAlarmClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readSmokeCoAlarmClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readSmokeCoAlarmClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readHepaFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readHepaFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readHepaFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readHepaFilterMonitoringConditionAttributeInteractionInfo); + Map readHepaFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readHepaFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readHepaFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readHepaFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readHepaFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readHepaFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readHepaFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readHepaFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readHepaFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readHepaFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.HepaFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedHepaFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readHepaFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readHepaFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readHepaFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.HepaFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedHepaFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readHepaFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readHepaFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readHepaFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.HepaFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedHepaFilterMonitoringClusterEventListAttributeCallback(), + readHepaFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readHepaFilterMonitoringEventListAttributeInteractionInfo); + Map readHepaFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.HepaFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedHepaFilterMonitoringClusterAttributeListAttributeCallback(), + readHepaFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readHepaFilterMonitoringAttributeListAttributeInteractionInfo); + Map readHepaFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readHepaFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readHepaFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readHepaFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readHepaFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.HepaFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readHepaFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readHepaFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readActivatedCarbonFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readActivatedCarbonFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readActivatedCarbonFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readActivatedCarbonFilterMonitoringConditionAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readActivatedCarbonFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readActivatedCarbonFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readActivatedCarbonFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readActivatedCarbonFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readActivatedCarbonFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readActivatedCarbonFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ActivatedCarbonFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActivatedCarbonFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readActivatedCarbonFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readActivatedCarbonFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ActivatedCarbonFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActivatedCarbonFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readActivatedCarbonFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readActivatedCarbonFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.ActivatedCarbonFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActivatedCarbonFilterMonitoringClusterEventListAttributeCallback(), + readActivatedCarbonFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readActivatedCarbonFilterMonitoringEventListAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.ActivatedCarbonFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedActivatedCarbonFilterMonitoringClusterAttributeListAttributeCallback(), + readActivatedCarbonFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readActivatedCarbonFilterMonitoringAttributeListAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readActivatedCarbonFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readActivatedCarbonFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readActivatedCarbonFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readActivatedCarbonFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readActivatedCarbonFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readActivatedCarbonFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readCeramicFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readCeramicFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readCeramicFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readCeramicFilterMonitoringConditionAttributeInteractionInfo); + Map readCeramicFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readCeramicFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readCeramicFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readCeramicFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readCeramicFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readCeramicFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readCeramicFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readCeramicFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readCeramicFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readCeramicFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.CeramicFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCeramicFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readCeramicFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readCeramicFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readCeramicFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.CeramicFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCeramicFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readCeramicFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readCeramicFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readCeramicFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.CeramicFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCeramicFilterMonitoringClusterEventListAttributeCallback(), + readCeramicFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readCeramicFilterMonitoringEventListAttributeInteractionInfo); + Map readCeramicFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.CeramicFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCeramicFilterMonitoringClusterAttributeListAttributeCallback(), + readCeramicFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readCeramicFilterMonitoringAttributeListAttributeInteractionInfo); + Map readCeramicFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readCeramicFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readCeramicFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readCeramicFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readCeramicFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CeramicFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readCeramicFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readCeramicFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readElectrostaticFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readElectrostaticFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectrostaticFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readElectrostaticFilterMonitoringConditionAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectrostaticFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readElectrostaticFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectrostaticFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readElectrostaticFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readElectrostaticFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readElectrostaticFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ElectrostaticFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectrostaticFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readElectrostaticFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readElectrostaticFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ElectrostaticFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectrostaticFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readElectrostaticFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readElectrostaticFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.ElectrostaticFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectrostaticFilterMonitoringClusterEventListAttributeCallback(), + readElectrostaticFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readElectrostaticFilterMonitoringEventListAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.ElectrostaticFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectrostaticFilterMonitoringClusterAttributeListAttributeCallback(), + readElectrostaticFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readElectrostaticFilterMonitoringAttributeListAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectrostaticFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readElectrostaticFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readElectrostaticFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readElectrostaticFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectrostaticFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectrostaticFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readElectrostaticFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readUvFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readUvFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUvFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readUvFilterMonitoringConditionAttributeInteractionInfo); + Map readUvFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUvFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readUvFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readUvFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUvFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readUvFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readUvFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readUvFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readUvFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readUvFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.UvFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUvFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readUvFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readUvFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readUvFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.UvFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUvFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readUvFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readUvFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readUvFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.UvFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUvFilterMonitoringClusterEventListAttributeCallback(), + readUvFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readUvFilterMonitoringEventListAttributeInteractionInfo); + Map readUvFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.UvFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUvFilterMonitoringClusterAttributeListAttributeCallback(), + readUvFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readUvFilterMonitoringAttributeListAttributeInteractionInfo); + Map readUvFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUvFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readUvFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readUvFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readUvFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UvFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUvFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readUvFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readIonizingFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readIonizingFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIonizingFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readIonizingFilterMonitoringConditionAttributeInteractionInfo); + Map readIonizingFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIonizingFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readIonizingFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readIonizingFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIonizingFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readIonizingFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readIonizingFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readIonizingFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readIonizingFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readIonizingFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.IonizingFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIonizingFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readIonizingFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readIonizingFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readIonizingFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.IonizingFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIonizingFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readIonizingFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readIonizingFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readIonizingFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.IonizingFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIonizingFilterMonitoringClusterEventListAttributeCallback(), + readIonizingFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readIonizingFilterMonitoringEventListAttributeInteractionInfo); + Map readIonizingFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.IonizingFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIonizingFilterMonitoringClusterAttributeListAttributeCallback(), + readIonizingFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readIonizingFilterMonitoringAttributeListAttributeInteractionInfo); + Map readIonizingFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readIonizingFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readIonizingFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readIonizingFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readIonizingFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IonizingFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIonizingFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readIonizingFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readZeoliteFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readZeoliteFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readZeoliteFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readZeoliteFilterMonitoringConditionAttributeInteractionInfo); + Map readZeoliteFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readZeoliteFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readZeoliteFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readZeoliteFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readZeoliteFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readZeoliteFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readZeoliteFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readZeoliteFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readZeoliteFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readZeoliteFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ZeoliteFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedZeoliteFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readZeoliteFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readZeoliteFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readZeoliteFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ZeoliteFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedZeoliteFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readZeoliteFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readZeoliteFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readZeoliteFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.ZeoliteFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedZeoliteFilterMonitoringClusterEventListAttributeCallback(), + readZeoliteFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readZeoliteFilterMonitoringEventListAttributeInteractionInfo); + Map readZeoliteFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.ZeoliteFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedZeoliteFilterMonitoringClusterAttributeListAttributeCallback(), + readZeoliteFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readZeoliteFilterMonitoringAttributeListAttributeInteractionInfo); + Map readZeoliteFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readZeoliteFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readZeoliteFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readZeoliteFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readZeoliteFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ZeoliteFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readZeoliteFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readZeoliteFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readOzoneFilterMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readOzoneFilterMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOzoneFilterMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readOzoneFilterMonitoringConditionAttributeInteractionInfo); + Map readOzoneFilterMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOzoneFilterMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readOzoneFilterMonitoringDegradationDirectionAttributeInteractionInfo); + Map readOzoneFilterMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOzoneFilterMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readOzoneFilterMonitoringChangeIndicationAttributeInteractionInfo); + Map readOzoneFilterMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readOzoneFilterMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readOzoneFilterMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readOzoneFilterMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.OzoneFilterMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOzoneFilterMonitoringClusterGeneratedCommandListAttributeCallback(), + readOzoneFilterMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readOzoneFilterMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readOzoneFilterMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.OzoneFilterMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOzoneFilterMonitoringClusterAcceptedCommandListAttributeCallback(), + readOzoneFilterMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readOzoneFilterMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readOzoneFilterMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.OzoneFilterMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOzoneFilterMonitoringClusterEventListAttributeCallback(), + readOzoneFilterMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readOzoneFilterMonitoringEventListAttributeInteractionInfo); + Map readOzoneFilterMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.OzoneFilterMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOzoneFilterMonitoringClusterAttributeListAttributeCallback(), + readOzoneFilterMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readOzoneFilterMonitoringAttributeListAttributeInteractionInfo); + Map readOzoneFilterMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readOzoneFilterMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readOzoneFilterMonitoringFeatureMapAttributeInteractionInfo); + Map readOzoneFilterMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readOzoneFilterMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OzoneFilterMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOzoneFilterMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readOzoneFilterMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readWaterTankMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readWaterTankMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWaterTankMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readWaterTankMonitoringConditionAttributeInteractionInfo); + Map readWaterTankMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWaterTankMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readWaterTankMonitoringDegradationDirectionAttributeInteractionInfo); + Map readWaterTankMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWaterTankMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readWaterTankMonitoringChangeIndicationAttributeInteractionInfo); + Map readWaterTankMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readWaterTankMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readWaterTankMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readWaterTankMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.WaterTankMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWaterTankMonitoringClusterGeneratedCommandListAttributeCallback(), + readWaterTankMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readWaterTankMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readWaterTankMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.WaterTankMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWaterTankMonitoringClusterAcceptedCommandListAttributeCallback(), + readWaterTankMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readWaterTankMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readWaterTankMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.WaterTankMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWaterTankMonitoringClusterEventListAttributeCallback(), + readWaterTankMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readWaterTankMonitoringEventListAttributeInteractionInfo); + Map readWaterTankMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.WaterTankMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWaterTankMonitoringClusterAttributeListAttributeCallback(), + readWaterTankMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readWaterTankMonitoringAttributeListAttributeInteractionInfo); + Map readWaterTankMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readWaterTankMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readWaterTankMonitoringFeatureMapAttributeInteractionInfo); + Map readWaterTankMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readWaterTankMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WaterTankMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWaterTankMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readWaterTankMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readFuelTankMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readFuelTankMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFuelTankMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readFuelTankMonitoringConditionAttributeInteractionInfo); + Map readFuelTankMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFuelTankMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readFuelTankMonitoringDegradationDirectionAttributeInteractionInfo); + Map readFuelTankMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFuelTankMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readFuelTankMonitoringChangeIndicationAttributeInteractionInfo); + Map readFuelTankMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readFuelTankMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readFuelTankMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readFuelTankMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.FuelTankMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFuelTankMonitoringClusterGeneratedCommandListAttributeCallback(), + readFuelTankMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readFuelTankMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readFuelTankMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.FuelTankMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFuelTankMonitoringClusterAcceptedCommandListAttributeCallback(), + readFuelTankMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readFuelTankMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readFuelTankMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.FuelTankMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFuelTankMonitoringClusterEventListAttributeCallback(), + readFuelTankMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readFuelTankMonitoringEventListAttributeInteractionInfo); + Map readFuelTankMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.FuelTankMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFuelTankMonitoringClusterAttributeListAttributeCallback(), + readFuelTankMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readFuelTankMonitoringAttributeListAttributeInteractionInfo); + Map readFuelTankMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readFuelTankMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readFuelTankMonitoringFeatureMapAttributeInteractionInfo); + Map readFuelTankMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readFuelTankMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FuelTankMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFuelTankMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readFuelTankMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readInkCartridgeMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readInkCartridgeMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readInkCartridgeMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readInkCartridgeMonitoringConditionAttributeInteractionInfo); + Map readInkCartridgeMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readInkCartridgeMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readInkCartridgeMonitoringDegradationDirectionAttributeInteractionInfo); + Map readInkCartridgeMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readInkCartridgeMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readInkCartridgeMonitoringChangeIndicationAttributeInteractionInfo); + Map readInkCartridgeMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readInkCartridgeMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readInkCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readInkCartridgeMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.InkCartridgeMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedInkCartridgeMonitoringClusterGeneratedCommandListAttributeCallback(), + readInkCartridgeMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readInkCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readInkCartridgeMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.InkCartridgeMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedInkCartridgeMonitoringClusterAcceptedCommandListAttributeCallback(), + readInkCartridgeMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readInkCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readInkCartridgeMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.InkCartridgeMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedInkCartridgeMonitoringClusterEventListAttributeCallback(), + readInkCartridgeMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readInkCartridgeMonitoringEventListAttributeInteractionInfo); + Map readInkCartridgeMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.InkCartridgeMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedInkCartridgeMonitoringClusterAttributeListAttributeCallback(), + readInkCartridgeMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readInkCartridgeMonitoringAttributeListAttributeInteractionInfo); + Map readInkCartridgeMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readInkCartridgeMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readInkCartridgeMonitoringFeatureMapAttributeInteractionInfo); + Map readInkCartridgeMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readInkCartridgeMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.InkCartridgeMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readInkCartridgeMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readInkCartridgeMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readTonerCartridgeMonitoringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readTonerCartridgeMonitoringConditionCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringConditionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readConditionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTonerCartridgeMonitoringConditionCommandParams + ); + result.put("readConditionAttribute", readTonerCartridgeMonitoringConditionAttributeInteractionInfo); + Map readTonerCartridgeMonitoringDegradationDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringDegradationDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readDegradationDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTonerCartridgeMonitoringDegradationDirectionCommandParams + ); + result.put("readDegradationDirectionAttribute", readTonerCartridgeMonitoringDegradationDirectionAttributeInteractionInfo); + Map readTonerCartridgeMonitoringChangeIndicationCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringChangeIndicationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readChangeIndicationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTonerCartridgeMonitoringChangeIndicationCommandParams + ); + result.put("readChangeIndicationAttribute", readTonerCartridgeMonitoringChangeIndicationAttributeInteractionInfo); + Map readTonerCartridgeMonitoringInPlaceIndicatorCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readInPlaceIndicatorAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readTonerCartridgeMonitoringInPlaceIndicatorCommandParams + ); + result.put("readInPlaceIndicatorAttribute", readTonerCartridgeMonitoringInPlaceIndicatorAttributeInteractionInfo); + Map readTonerCartridgeMonitoringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.TonerCartridgeMonitoringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTonerCartridgeMonitoringClusterGeneratedCommandListAttributeCallback(), + readTonerCartridgeMonitoringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readTonerCartridgeMonitoringGeneratedCommandListAttributeInteractionInfo); + Map readTonerCartridgeMonitoringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.TonerCartridgeMonitoringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTonerCartridgeMonitoringClusterAcceptedCommandListAttributeCallback(), + readTonerCartridgeMonitoringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readTonerCartridgeMonitoringAcceptedCommandListAttributeInteractionInfo); + Map readTonerCartridgeMonitoringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readEventListAttribute( + (ChipClusters.TonerCartridgeMonitoringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTonerCartridgeMonitoringClusterEventListAttributeCallback(), + readTonerCartridgeMonitoringEventListCommandParams + ); + result.put("readEventListAttribute", readTonerCartridgeMonitoringEventListAttributeInteractionInfo); + Map readTonerCartridgeMonitoringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readAttributeListAttribute( + (ChipClusters.TonerCartridgeMonitoringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTonerCartridgeMonitoringClusterAttributeListAttributeCallback(), + readTonerCartridgeMonitoringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readTonerCartridgeMonitoringAttributeListAttributeInteractionInfo); + Map readTonerCartridgeMonitoringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readTonerCartridgeMonitoringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readTonerCartridgeMonitoringFeatureMapAttributeInteractionInfo); + Map readTonerCartridgeMonitoringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readTonerCartridgeMonitoringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TonerCartridgeMonitoringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTonerCartridgeMonitoringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readTonerCartridgeMonitoringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readDoorLockInteractionInfo() { + Map result = new LinkedHashMap<>();Map readDoorLockLockStateCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockLockStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readLockStateAttribute( + (ChipClusters.DoorLockCluster.LockStateAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDoorLockClusterLockStateAttributeCallback(), + readDoorLockLockStateCommandParams + ); + result.put("readLockStateAttribute", readDoorLockLockStateAttributeInteractionInfo); + Map readDoorLockLockTypeCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockLockTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readLockTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockLockTypeCommandParams + ); + result.put("readLockTypeAttribute", readDoorLockLockTypeAttributeInteractionInfo); + Map readDoorLockActuatorEnabledCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockActuatorEnabledAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readActuatorEnabledAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readDoorLockActuatorEnabledCommandParams + ); + result.put("readActuatorEnabledAttribute", readDoorLockActuatorEnabledAttributeInteractionInfo); + Map readDoorLockDoorStateCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockDoorStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readDoorStateAttribute( + (ChipClusters.DoorLockCluster.DoorStateAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDoorLockClusterDoorStateAttributeCallback(), + readDoorLockDoorStateCommandParams + ); + result.put("readDoorStateAttribute", readDoorLockDoorStateAttributeInteractionInfo); + Map readDoorLockDoorOpenEventsCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockDoorOpenEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readDoorOpenEventsAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readDoorLockDoorOpenEventsCommandParams + ); + result.put("readDoorOpenEventsAttribute", readDoorLockDoorOpenEventsAttributeInteractionInfo); + Map readDoorLockDoorClosedEventsCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockDoorClosedEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readDoorClosedEventsAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readDoorLockDoorClosedEventsCommandParams + ); + result.put("readDoorClosedEventsAttribute", readDoorLockDoorClosedEventsAttributeInteractionInfo); + Map readDoorLockOpenPeriodCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockOpenPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readOpenPeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockOpenPeriodCommandParams + ); + result.put("readOpenPeriodAttribute", readDoorLockOpenPeriodAttributeInteractionInfo); + Map readDoorLockNumberOfTotalUsersSupportedCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockNumberOfTotalUsersSupportedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readNumberOfTotalUsersSupportedAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockNumberOfTotalUsersSupportedCommandParams + ); + result.put("readNumberOfTotalUsersSupportedAttribute", readDoorLockNumberOfTotalUsersSupportedAttributeInteractionInfo); + Map readDoorLockNumberOfPINUsersSupportedCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockNumberOfPINUsersSupportedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readNumberOfPINUsersSupportedAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockNumberOfPINUsersSupportedCommandParams + ); + result.put("readNumberOfPINUsersSupportedAttribute", readDoorLockNumberOfPINUsersSupportedAttributeInteractionInfo); + Map readDoorLockNumberOfRFIDUsersSupportedCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockNumberOfRFIDUsersSupportedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readNumberOfRFIDUsersSupportedAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockNumberOfRFIDUsersSupportedCommandParams + ); + result.put("readNumberOfRFIDUsersSupportedAttribute", readDoorLockNumberOfRFIDUsersSupportedAttributeInteractionInfo); + Map readDoorLockNumberOfWeekDaySchedulesSupportedPerUserCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockNumberOfWeekDaySchedulesSupportedPerUserAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readNumberOfWeekDaySchedulesSupportedPerUserAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockNumberOfWeekDaySchedulesSupportedPerUserCommandParams + ); + result.put("readNumberOfWeekDaySchedulesSupportedPerUserAttribute", readDoorLockNumberOfWeekDaySchedulesSupportedPerUserAttributeInteractionInfo); + Map readDoorLockNumberOfYearDaySchedulesSupportedPerUserCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockNumberOfYearDaySchedulesSupportedPerUserAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readNumberOfYearDaySchedulesSupportedPerUserAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockNumberOfYearDaySchedulesSupportedPerUserCommandParams + ); + result.put("readNumberOfYearDaySchedulesSupportedPerUserAttribute", readDoorLockNumberOfYearDaySchedulesSupportedPerUserAttributeInteractionInfo); + Map readDoorLockNumberOfHolidaySchedulesSupportedCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockNumberOfHolidaySchedulesSupportedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readNumberOfHolidaySchedulesSupportedAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockNumberOfHolidaySchedulesSupportedCommandParams + ); + result.put("readNumberOfHolidaySchedulesSupportedAttribute", readDoorLockNumberOfHolidaySchedulesSupportedAttributeInteractionInfo); + Map readDoorLockMaxPINCodeLengthCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockMaxPINCodeLengthAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readMaxPINCodeLengthAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockMaxPINCodeLengthCommandParams + ); + result.put("readMaxPINCodeLengthAttribute", readDoorLockMaxPINCodeLengthAttributeInteractionInfo); + Map readDoorLockMinPINCodeLengthCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockMinPINCodeLengthAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readMinPINCodeLengthAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockMinPINCodeLengthCommandParams + ); + result.put("readMinPINCodeLengthAttribute", readDoorLockMinPINCodeLengthAttributeInteractionInfo); + Map readDoorLockMaxRFIDCodeLengthCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockMaxRFIDCodeLengthAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readMaxRFIDCodeLengthAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockMaxRFIDCodeLengthCommandParams + ); + result.put("readMaxRFIDCodeLengthAttribute", readDoorLockMaxRFIDCodeLengthAttributeInteractionInfo); + Map readDoorLockMinRFIDCodeLengthCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockMinRFIDCodeLengthAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readMinRFIDCodeLengthAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockMinRFIDCodeLengthCommandParams + ); + result.put("readMinRFIDCodeLengthAttribute", readDoorLockMinRFIDCodeLengthAttributeInteractionInfo); + Map readDoorLockCredentialRulesSupportCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockCredentialRulesSupportAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readCredentialRulesSupportAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockCredentialRulesSupportCommandParams + ); + result.put("readCredentialRulesSupportAttribute", readDoorLockCredentialRulesSupportAttributeInteractionInfo); + Map readDoorLockNumberOfCredentialsSupportedPerUserCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockNumberOfCredentialsSupportedPerUserAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readNumberOfCredentialsSupportedPerUserAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockNumberOfCredentialsSupportedPerUserCommandParams + ); + result.put("readNumberOfCredentialsSupportedPerUserAttribute", readDoorLockNumberOfCredentialsSupportedPerUserAttributeInteractionInfo); + Map readDoorLockLanguageCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockLanguageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readLanguageAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readDoorLockLanguageCommandParams + ); + result.put("readLanguageAttribute", readDoorLockLanguageAttributeInteractionInfo); + Map readDoorLockLEDSettingsCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockLEDSettingsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readLEDSettingsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockLEDSettingsCommandParams + ); + result.put("readLEDSettingsAttribute", readDoorLockLEDSettingsAttributeInteractionInfo); + Map readDoorLockAutoRelockTimeCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockAutoRelockTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readAutoRelockTimeAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readDoorLockAutoRelockTimeCommandParams + ); + result.put("readAutoRelockTimeAttribute", readDoorLockAutoRelockTimeAttributeInteractionInfo); + Map readDoorLockSoundVolumeCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockSoundVolumeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readSoundVolumeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockSoundVolumeCommandParams + ); + result.put("readSoundVolumeAttribute", readDoorLockSoundVolumeAttributeInteractionInfo); + Map readDoorLockOperatingModeCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockOperatingModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readOperatingModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockOperatingModeCommandParams + ); + result.put("readOperatingModeAttribute", readDoorLockOperatingModeAttributeInteractionInfo); + Map readDoorLockSupportedOperatingModesCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockSupportedOperatingModesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readSupportedOperatingModesAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockSupportedOperatingModesCommandParams + ); + result.put("readSupportedOperatingModesAttribute", readDoorLockSupportedOperatingModesAttributeInteractionInfo); + Map readDoorLockDefaultConfigurationRegisterCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockDefaultConfigurationRegisterAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readDefaultConfigurationRegisterAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockDefaultConfigurationRegisterCommandParams + ); + result.put("readDefaultConfigurationRegisterAttribute", readDoorLockDefaultConfigurationRegisterAttributeInteractionInfo); + Map readDoorLockEnableLocalProgrammingCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockEnableLocalProgrammingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readEnableLocalProgrammingAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readDoorLockEnableLocalProgrammingCommandParams + ); + result.put("readEnableLocalProgrammingAttribute", readDoorLockEnableLocalProgrammingAttributeInteractionInfo); + Map readDoorLockEnableOneTouchLockingCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockEnableOneTouchLockingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readEnableOneTouchLockingAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readDoorLockEnableOneTouchLockingCommandParams + ); + result.put("readEnableOneTouchLockingAttribute", readDoorLockEnableOneTouchLockingAttributeInteractionInfo); + Map readDoorLockEnableInsideStatusLEDCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockEnableInsideStatusLEDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readEnableInsideStatusLEDAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readDoorLockEnableInsideStatusLEDCommandParams + ); + result.put("readEnableInsideStatusLEDAttribute", readDoorLockEnableInsideStatusLEDAttributeInteractionInfo); + Map readDoorLockEnablePrivacyModeButtonCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockEnablePrivacyModeButtonAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readEnablePrivacyModeButtonAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readDoorLockEnablePrivacyModeButtonCommandParams + ); + result.put("readEnablePrivacyModeButtonAttribute", readDoorLockEnablePrivacyModeButtonAttributeInteractionInfo); + Map readDoorLockLocalProgrammingFeaturesCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockLocalProgrammingFeaturesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readLocalProgrammingFeaturesAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockLocalProgrammingFeaturesCommandParams + ); + result.put("readLocalProgrammingFeaturesAttribute", readDoorLockLocalProgrammingFeaturesAttributeInteractionInfo); + Map readDoorLockWrongCodeEntryLimitCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockWrongCodeEntryLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readWrongCodeEntryLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockWrongCodeEntryLimitCommandParams + ); + result.put("readWrongCodeEntryLimitAttribute", readDoorLockWrongCodeEntryLimitAttributeInteractionInfo); + Map readDoorLockUserCodeTemporaryDisableTimeCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readUserCodeTemporaryDisableTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockUserCodeTemporaryDisableTimeCommandParams + ); + result.put("readUserCodeTemporaryDisableTimeAttribute", readDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo); + Map readDoorLockSendPINOverTheAirCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockSendPINOverTheAirAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readSendPINOverTheAirAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readDoorLockSendPINOverTheAirCommandParams + ); + result.put("readSendPINOverTheAirAttribute", readDoorLockSendPINOverTheAirAttributeInteractionInfo); + Map readDoorLockRequirePINforRemoteOperationCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockRequirePINforRemoteOperationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readRequirePINforRemoteOperationAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readDoorLockRequirePINforRemoteOperationCommandParams + ); + result.put("readRequirePINforRemoteOperationAttribute", readDoorLockRequirePINforRemoteOperationAttributeInteractionInfo); + Map readDoorLockExpiringUserTimeoutCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockExpiringUserTimeoutAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readExpiringUserTimeoutAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockExpiringUserTimeoutCommandParams + ); + result.put("readExpiringUserTimeoutAttribute", readDoorLockExpiringUserTimeoutAttributeInteractionInfo); + Map readDoorLockGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.DoorLockCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDoorLockClusterGeneratedCommandListAttributeCallback(), + readDoorLockGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readDoorLockGeneratedCommandListAttributeInteractionInfo); + Map readDoorLockAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.DoorLockCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDoorLockClusterAcceptedCommandListAttributeCallback(), + readDoorLockAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readDoorLockAcceptedCommandListAttributeInteractionInfo); + Map readDoorLockEventListCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readEventListAttribute( + (ChipClusters.DoorLockCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDoorLockClusterEventListAttributeCallback(), + readDoorLockEventListCommandParams + ); + result.put("readEventListAttribute", readDoorLockEventListAttributeInteractionInfo); + Map readDoorLockAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readAttributeListAttribute( + (ChipClusters.DoorLockCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDoorLockClusterAttributeListAttributeCallback(), + readDoorLockAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readDoorLockAttributeListAttributeInteractionInfo); + Map readDoorLockFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readDoorLockFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readDoorLockFeatureMapAttributeInteractionInfo); + Map readDoorLockClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readDoorLockClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readDoorLockClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readDoorLockClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readWindowCoveringInteractionInfo() { + Map result = new LinkedHashMap<>();Map readWindowCoveringTypeCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringTypeCommandParams + ); + result.put("readTypeAttribute", readWindowCoveringTypeAttributeInteractionInfo); + Map readWindowCoveringPhysicalClosedLimitLiftCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringPhysicalClosedLimitLiftAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readPhysicalClosedLimitLiftAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringPhysicalClosedLimitLiftCommandParams + ); + result.put("readPhysicalClosedLimitLiftAttribute", readWindowCoveringPhysicalClosedLimitLiftAttributeInteractionInfo); + Map readWindowCoveringPhysicalClosedLimitTiltCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringPhysicalClosedLimitTiltAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readPhysicalClosedLimitTiltAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringPhysicalClosedLimitTiltCommandParams + ); + result.put("readPhysicalClosedLimitTiltAttribute", readWindowCoveringPhysicalClosedLimitTiltAttributeInteractionInfo); + Map readWindowCoveringCurrentPositionLiftCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringCurrentPositionLiftAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readCurrentPositionLiftAttribute( + (ChipClusters.WindowCoveringCluster.CurrentPositionLiftAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterCurrentPositionLiftAttributeCallback(), + readWindowCoveringCurrentPositionLiftCommandParams + ); + result.put("readCurrentPositionLiftAttribute", readWindowCoveringCurrentPositionLiftAttributeInteractionInfo); + Map readWindowCoveringCurrentPositionTiltCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringCurrentPositionTiltAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readCurrentPositionTiltAttribute( + (ChipClusters.WindowCoveringCluster.CurrentPositionTiltAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterCurrentPositionTiltAttributeCallback(), + readWindowCoveringCurrentPositionTiltCommandParams + ); + result.put("readCurrentPositionTiltAttribute", readWindowCoveringCurrentPositionTiltAttributeInteractionInfo); + Map readWindowCoveringNumberOfActuationsLiftCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringNumberOfActuationsLiftAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readNumberOfActuationsLiftAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringNumberOfActuationsLiftCommandParams + ); + result.put("readNumberOfActuationsLiftAttribute", readWindowCoveringNumberOfActuationsLiftAttributeInteractionInfo); + Map readWindowCoveringNumberOfActuationsTiltCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringNumberOfActuationsTiltAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readNumberOfActuationsTiltAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringNumberOfActuationsTiltCommandParams + ); + result.put("readNumberOfActuationsTiltAttribute", readWindowCoveringNumberOfActuationsTiltAttributeInteractionInfo); + Map readWindowCoveringConfigStatusCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringConfigStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readConfigStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringConfigStatusCommandParams + ); + result.put("readConfigStatusAttribute", readWindowCoveringConfigStatusAttributeInteractionInfo); + Map readWindowCoveringCurrentPositionLiftPercentageCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringCurrentPositionLiftPercentageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readCurrentPositionLiftPercentageAttribute( + (ChipClusters.WindowCoveringCluster.CurrentPositionLiftPercentageAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterCurrentPositionLiftPercentageAttributeCallback(), + readWindowCoveringCurrentPositionLiftPercentageCommandParams + ); + result.put("readCurrentPositionLiftPercentageAttribute", readWindowCoveringCurrentPositionLiftPercentageAttributeInteractionInfo); + Map readWindowCoveringCurrentPositionTiltPercentageCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringCurrentPositionTiltPercentageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readCurrentPositionTiltPercentageAttribute( + (ChipClusters.WindowCoveringCluster.CurrentPositionTiltPercentageAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterCurrentPositionTiltPercentageAttributeCallback(), + readWindowCoveringCurrentPositionTiltPercentageCommandParams + ); + result.put("readCurrentPositionTiltPercentageAttribute", readWindowCoveringCurrentPositionTiltPercentageAttributeInteractionInfo); + Map readWindowCoveringOperationalStatusCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringOperationalStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readOperationalStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringOperationalStatusCommandParams + ); + result.put("readOperationalStatusAttribute", readWindowCoveringOperationalStatusAttributeInteractionInfo); + Map readWindowCoveringTargetPositionLiftPercent100thsCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringTargetPositionLiftPercent100thsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readTargetPositionLiftPercent100thsAttribute( + (ChipClusters.WindowCoveringCluster.TargetPositionLiftPercent100thsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterTargetPositionLiftPercent100thsAttributeCallback(), + readWindowCoveringTargetPositionLiftPercent100thsCommandParams + ); + result.put("readTargetPositionLiftPercent100thsAttribute", readWindowCoveringTargetPositionLiftPercent100thsAttributeInteractionInfo); + Map readWindowCoveringTargetPositionTiltPercent100thsCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringTargetPositionTiltPercent100thsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readTargetPositionTiltPercent100thsAttribute( + (ChipClusters.WindowCoveringCluster.TargetPositionTiltPercent100thsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterTargetPositionTiltPercent100thsAttributeCallback(), + readWindowCoveringTargetPositionTiltPercent100thsCommandParams + ); + result.put("readTargetPositionTiltPercent100thsAttribute", readWindowCoveringTargetPositionTiltPercent100thsAttributeInteractionInfo); + Map readWindowCoveringEndProductTypeCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringEndProductTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readEndProductTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringEndProductTypeCommandParams + ); + result.put("readEndProductTypeAttribute", readWindowCoveringEndProductTypeAttributeInteractionInfo); + Map readWindowCoveringCurrentPositionLiftPercent100thsCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringCurrentPositionLiftPercent100thsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readCurrentPositionLiftPercent100thsAttribute( + (ChipClusters.WindowCoveringCluster.CurrentPositionLiftPercent100thsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterCurrentPositionLiftPercent100thsAttributeCallback(), + readWindowCoveringCurrentPositionLiftPercent100thsCommandParams + ); + result.put("readCurrentPositionLiftPercent100thsAttribute", readWindowCoveringCurrentPositionLiftPercent100thsAttributeInteractionInfo); + Map readWindowCoveringCurrentPositionTiltPercent100thsCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringCurrentPositionTiltPercent100thsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readCurrentPositionTiltPercent100thsAttribute( + (ChipClusters.WindowCoveringCluster.CurrentPositionTiltPercent100thsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterCurrentPositionTiltPercent100thsAttributeCallback(), + readWindowCoveringCurrentPositionTiltPercent100thsCommandParams + ); + result.put("readCurrentPositionTiltPercent100thsAttribute", readWindowCoveringCurrentPositionTiltPercent100thsAttributeInteractionInfo); + Map readWindowCoveringInstalledOpenLimitLiftCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringInstalledOpenLimitLiftAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readInstalledOpenLimitLiftAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringInstalledOpenLimitLiftCommandParams + ); + result.put("readInstalledOpenLimitLiftAttribute", readWindowCoveringInstalledOpenLimitLiftAttributeInteractionInfo); + Map readWindowCoveringInstalledClosedLimitLiftCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringInstalledClosedLimitLiftAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readInstalledClosedLimitLiftAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringInstalledClosedLimitLiftCommandParams + ); + result.put("readInstalledClosedLimitLiftAttribute", readWindowCoveringInstalledClosedLimitLiftAttributeInteractionInfo); + Map readWindowCoveringInstalledOpenLimitTiltCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringInstalledOpenLimitTiltAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readInstalledOpenLimitTiltAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringInstalledOpenLimitTiltCommandParams + ); + result.put("readInstalledOpenLimitTiltAttribute", readWindowCoveringInstalledOpenLimitTiltAttributeInteractionInfo); + Map readWindowCoveringInstalledClosedLimitTiltCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringInstalledClosedLimitTiltAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readInstalledClosedLimitTiltAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringInstalledClosedLimitTiltCommandParams + ); + result.put("readInstalledClosedLimitTiltAttribute", readWindowCoveringInstalledClosedLimitTiltAttributeInteractionInfo); + Map readWindowCoveringModeCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringModeCommandParams + ); + result.put("readModeAttribute", readWindowCoveringModeAttributeInteractionInfo); + Map readWindowCoveringSafetyStatusCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringSafetyStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readSafetyStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringSafetyStatusCommandParams + ); + result.put("readSafetyStatusAttribute", readWindowCoveringSafetyStatusAttributeInteractionInfo); + Map readWindowCoveringGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.WindowCoveringCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterGeneratedCommandListAttributeCallback(), + readWindowCoveringGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readWindowCoveringGeneratedCommandListAttributeInteractionInfo); + Map readWindowCoveringAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.WindowCoveringCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterAcceptedCommandListAttributeCallback(), + readWindowCoveringAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readWindowCoveringAcceptedCommandListAttributeInteractionInfo); + Map readWindowCoveringEventListCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readEventListAttribute( + (ChipClusters.WindowCoveringCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterEventListAttributeCallback(), + readWindowCoveringEventListCommandParams + ); + result.put("readEventListAttribute", readWindowCoveringEventListAttributeInteractionInfo); + Map readWindowCoveringAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readAttributeListAttribute( + (ChipClusters.WindowCoveringCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWindowCoveringClusterAttributeListAttributeCallback(), + readWindowCoveringAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readWindowCoveringAttributeListAttributeInteractionInfo); + Map readWindowCoveringFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readWindowCoveringFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readWindowCoveringFeatureMapAttributeInteractionInfo); + Map readWindowCoveringClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readWindowCoveringClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWindowCoveringClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readWindowCoveringClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readBarrierControlInteractionInfo() { + Map result = new LinkedHashMap<>();Map readBarrierControlBarrierMovingStateCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierMovingStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierMovingStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierMovingStateCommandParams + ); + result.put("readBarrierMovingStateAttribute", readBarrierControlBarrierMovingStateAttributeInteractionInfo); + Map readBarrierControlBarrierSafetyStatusCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierSafetyStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierSafetyStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierSafetyStatusCommandParams + ); + result.put("readBarrierSafetyStatusAttribute", readBarrierControlBarrierSafetyStatusAttributeInteractionInfo); + Map readBarrierControlBarrierCapabilitiesCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierCapabilitiesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierCapabilitiesAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierCapabilitiesCommandParams + ); + result.put("readBarrierCapabilitiesAttribute", readBarrierControlBarrierCapabilitiesAttributeInteractionInfo); + Map readBarrierControlBarrierOpenEventsCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierOpenEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierOpenEventsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierOpenEventsCommandParams + ); + result.put("readBarrierOpenEventsAttribute", readBarrierControlBarrierOpenEventsAttributeInteractionInfo); + Map readBarrierControlBarrierCloseEventsCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierCloseEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierCloseEventsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierCloseEventsCommandParams + ); + result.put("readBarrierCloseEventsAttribute", readBarrierControlBarrierCloseEventsAttributeInteractionInfo); + Map readBarrierControlBarrierCommandOpenEventsCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierCommandOpenEventsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierCommandOpenEventsCommandParams + ); + result.put("readBarrierCommandOpenEventsAttribute", readBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo); + Map readBarrierControlBarrierCommandCloseEventsCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierCommandCloseEventsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierCommandCloseEventsCommandParams + ); + result.put("readBarrierCommandCloseEventsAttribute", readBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo); + Map readBarrierControlBarrierOpenPeriodCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierOpenPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierOpenPeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierOpenPeriodCommandParams + ); + result.put("readBarrierOpenPeriodAttribute", readBarrierControlBarrierOpenPeriodAttributeInteractionInfo); + Map readBarrierControlBarrierClosePeriodCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierClosePeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierClosePeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierClosePeriodCommandParams + ); + result.put("readBarrierClosePeriodAttribute", readBarrierControlBarrierClosePeriodAttributeInteractionInfo); + Map readBarrierControlBarrierPositionCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlBarrierPositionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readBarrierPositionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlBarrierPositionCommandParams + ); + result.put("readBarrierPositionAttribute", readBarrierControlBarrierPositionAttributeInteractionInfo); + Map readBarrierControlGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.BarrierControlCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBarrierControlClusterGeneratedCommandListAttributeCallback(), + readBarrierControlGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readBarrierControlGeneratedCommandListAttributeInteractionInfo); + Map readBarrierControlAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.BarrierControlCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBarrierControlClusterAcceptedCommandListAttributeCallback(), + readBarrierControlAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readBarrierControlAcceptedCommandListAttributeInteractionInfo); + Map readBarrierControlEventListCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readEventListAttribute( + (ChipClusters.BarrierControlCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBarrierControlClusterEventListAttributeCallback(), + readBarrierControlEventListCommandParams + ); + result.put("readEventListAttribute", readBarrierControlEventListAttributeInteractionInfo); + Map readBarrierControlAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readAttributeListAttribute( + (ChipClusters.BarrierControlCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBarrierControlClusterAttributeListAttributeCallback(), + readBarrierControlAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readBarrierControlAttributeListAttributeInteractionInfo); + Map readBarrierControlFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBarrierControlFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readBarrierControlFeatureMapAttributeInteractionInfo); + Map readBarrierControlClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBarrierControlClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBarrierControlClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readBarrierControlClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readPumpConfigurationAndControlInteractionInfo() { + Map result = new LinkedHashMap<>();Map readPumpConfigurationAndControlMaxPressureCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxPressureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxPressureAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxPressureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxPressureAttributeCallback(), + readPumpConfigurationAndControlMaxPressureCommandParams + ); + result.put("readMaxPressureAttribute", readPumpConfigurationAndControlMaxPressureAttributeInteractionInfo); + Map readPumpConfigurationAndControlMaxSpeedCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxSpeedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxSpeedAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxSpeedAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxSpeedAttributeCallback(), + readPumpConfigurationAndControlMaxSpeedCommandParams + ); + result.put("readMaxSpeedAttribute", readPumpConfigurationAndControlMaxSpeedAttributeInteractionInfo); + Map readPumpConfigurationAndControlMaxFlowCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxFlowAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxFlowAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxFlowAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxFlowAttributeCallback(), + readPumpConfigurationAndControlMaxFlowCommandParams + ); + result.put("readMaxFlowAttribute", readPumpConfigurationAndControlMaxFlowAttributeInteractionInfo); + Map readPumpConfigurationAndControlMinConstPressureCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMinConstPressureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMinConstPressureAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MinConstPressureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMinConstPressureAttributeCallback(), + readPumpConfigurationAndControlMinConstPressureCommandParams + ); + result.put("readMinConstPressureAttribute", readPumpConfigurationAndControlMinConstPressureAttributeInteractionInfo); + Map readPumpConfigurationAndControlMaxConstPressureCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxConstPressureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxConstPressureAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxConstPressureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxConstPressureAttributeCallback(), + readPumpConfigurationAndControlMaxConstPressureCommandParams + ); + result.put("readMaxConstPressureAttribute", readPumpConfigurationAndControlMaxConstPressureAttributeInteractionInfo); + Map readPumpConfigurationAndControlMinCompPressureCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMinCompPressureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMinCompPressureAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MinCompPressureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMinCompPressureAttributeCallback(), + readPumpConfigurationAndControlMinCompPressureCommandParams + ); + result.put("readMinCompPressureAttribute", readPumpConfigurationAndControlMinCompPressureAttributeInteractionInfo); + Map readPumpConfigurationAndControlMaxCompPressureCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxCompPressureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxCompPressureAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxCompPressureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxCompPressureAttributeCallback(), + readPumpConfigurationAndControlMaxCompPressureCommandParams + ); + result.put("readMaxCompPressureAttribute", readPumpConfigurationAndControlMaxCompPressureAttributeInteractionInfo); + Map readPumpConfigurationAndControlMinConstSpeedCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMinConstSpeedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMinConstSpeedAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MinConstSpeedAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMinConstSpeedAttributeCallback(), + readPumpConfigurationAndControlMinConstSpeedCommandParams + ); + result.put("readMinConstSpeedAttribute", readPumpConfigurationAndControlMinConstSpeedAttributeInteractionInfo); + Map readPumpConfigurationAndControlMaxConstSpeedCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxConstSpeedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxConstSpeedAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxConstSpeedAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxConstSpeedAttributeCallback(), + readPumpConfigurationAndControlMaxConstSpeedCommandParams + ); + result.put("readMaxConstSpeedAttribute", readPumpConfigurationAndControlMaxConstSpeedAttributeInteractionInfo); + Map readPumpConfigurationAndControlMinConstFlowCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMinConstFlowAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMinConstFlowAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MinConstFlowAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMinConstFlowAttributeCallback(), + readPumpConfigurationAndControlMinConstFlowCommandParams + ); + result.put("readMinConstFlowAttribute", readPumpConfigurationAndControlMinConstFlowAttributeInteractionInfo); + Map readPumpConfigurationAndControlMaxConstFlowCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxConstFlowAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxConstFlowAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxConstFlowAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxConstFlowAttributeCallback(), + readPumpConfigurationAndControlMaxConstFlowCommandParams + ); + result.put("readMaxConstFlowAttribute", readPumpConfigurationAndControlMaxConstFlowAttributeInteractionInfo); + Map readPumpConfigurationAndControlMinConstTempCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMinConstTempAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMinConstTempAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MinConstTempAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMinConstTempAttributeCallback(), + readPumpConfigurationAndControlMinConstTempCommandParams + ); + result.put("readMinConstTempAttribute", readPumpConfigurationAndControlMinConstTempAttributeInteractionInfo); + Map readPumpConfigurationAndControlMaxConstTempCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlMaxConstTempAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readMaxConstTempAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.MaxConstTempAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterMaxConstTempAttributeCallback(), + readPumpConfigurationAndControlMaxConstTempCommandParams + ); + result.put("readMaxConstTempAttribute", readPumpConfigurationAndControlMaxConstTempAttributeInteractionInfo); + Map readPumpConfigurationAndControlPumpStatusCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlPumpStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readPumpStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPumpConfigurationAndControlPumpStatusCommandParams + ); + result.put("readPumpStatusAttribute", readPumpConfigurationAndControlPumpStatusAttributeInteractionInfo); + Map readPumpConfigurationAndControlEffectiveOperationModeCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlEffectiveOperationModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readEffectiveOperationModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPumpConfigurationAndControlEffectiveOperationModeCommandParams + ); + result.put("readEffectiveOperationModeAttribute", readPumpConfigurationAndControlEffectiveOperationModeAttributeInteractionInfo); + Map readPumpConfigurationAndControlEffectiveControlModeCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlEffectiveControlModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readEffectiveControlModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPumpConfigurationAndControlEffectiveControlModeCommandParams + ); + result.put("readEffectiveControlModeAttribute", readPumpConfigurationAndControlEffectiveControlModeAttributeInteractionInfo); + Map readPumpConfigurationAndControlCapacityCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlCapacityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readCapacityAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.CapacityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterCapacityAttributeCallback(), + readPumpConfigurationAndControlCapacityCommandParams + ); + result.put("readCapacityAttribute", readPumpConfigurationAndControlCapacityAttributeInteractionInfo); + Map readPumpConfigurationAndControlSpeedCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlSpeedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readSpeedAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.SpeedAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterSpeedAttributeCallback(), + readPumpConfigurationAndControlSpeedCommandParams + ); + result.put("readSpeedAttribute", readPumpConfigurationAndControlSpeedAttributeInteractionInfo); + Map readPumpConfigurationAndControlLifetimeRunningHoursCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readLifetimeRunningHoursAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.LifetimeRunningHoursAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterLifetimeRunningHoursAttributeCallback(), + readPumpConfigurationAndControlLifetimeRunningHoursCommandParams + ); + result.put("readLifetimeRunningHoursAttribute", readPumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo); + Map readPumpConfigurationAndControlPowerCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlPowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readPowerAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.PowerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterPowerAttributeCallback(), + readPumpConfigurationAndControlPowerCommandParams + ); + result.put("readPowerAttribute", readPumpConfigurationAndControlPowerAttributeInteractionInfo); + Map readPumpConfigurationAndControlLifetimeEnergyConsumedCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readLifetimeEnergyConsumedAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.LifetimeEnergyConsumedAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterLifetimeEnergyConsumedAttributeCallback(), + readPumpConfigurationAndControlLifetimeEnergyConsumedCommandParams + ); + result.put("readLifetimeEnergyConsumedAttribute", readPumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo); + Map readPumpConfigurationAndControlOperationModeCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlOperationModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readOperationModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPumpConfigurationAndControlOperationModeCommandParams + ); + result.put("readOperationModeAttribute", readPumpConfigurationAndControlOperationModeAttributeInteractionInfo); + Map readPumpConfigurationAndControlControlModeCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlControlModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readControlModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPumpConfigurationAndControlControlModeCommandParams + ); + result.put("readControlModeAttribute", readPumpConfigurationAndControlControlModeAttributeInteractionInfo); + Map readPumpConfigurationAndControlGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterGeneratedCommandListAttributeCallback(), + readPumpConfigurationAndControlGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readPumpConfigurationAndControlGeneratedCommandListAttributeInteractionInfo); + Map readPumpConfigurationAndControlAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterAcceptedCommandListAttributeCallback(), + readPumpConfigurationAndControlAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readPumpConfigurationAndControlAcceptedCommandListAttributeInteractionInfo); + Map readPumpConfigurationAndControlEventListCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readEventListAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterEventListAttributeCallback(), + readPumpConfigurationAndControlEventListCommandParams + ); + result.put("readEventListAttribute", readPumpConfigurationAndControlEventListAttributeInteractionInfo); + Map readPumpConfigurationAndControlAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readAttributeListAttribute( + (ChipClusters.PumpConfigurationAndControlCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPumpConfigurationAndControlClusterAttributeListAttributeCallback(), + readPumpConfigurationAndControlAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readPumpConfigurationAndControlAttributeListAttributeInteractionInfo); + Map readPumpConfigurationAndControlFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPumpConfigurationAndControlFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readPumpConfigurationAndControlFeatureMapAttributeInteractionInfo); + Map readPumpConfigurationAndControlClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPumpConfigurationAndControlClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readPumpConfigurationAndControlClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readThermostatInteractionInfo() { + Map result = new LinkedHashMap<>();Map readThermostatLocalTemperatureCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatLocalTemperatureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readLocalTemperatureAttribute( + (ChipClusters.ThermostatCluster.LocalTemperatureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterLocalTemperatureAttributeCallback(), + readThermostatLocalTemperatureCommandParams + ); + result.put("readLocalTemperatureAttribute", readThermostatLocalTemperatureAttributeInteractionInfo); + Map readThermostatOutdoorTemperatureCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatOutdoorTemperatureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readOutdoorTemperatureAttribute( + (ChipClusters.ThermostatCluster.OutdoorTemperatureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterOutdoorTemperatureAttributeCallback(), + readThermostatOutdoorTemperatureCommandParams + ); + result.put("readOutdoorTemperatureAttribute", readThermostatOutdoorTemperatureAttributeInteractionInfo); + Map readThermostatOccupancyCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatOccupancyAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readOccupancyAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatOccupancyCommandParams + ); + result.put("readOccupancyAttribute", readThermostatOccupancyAttributeInteractionInfo); + Map readThermostatAbsMinHeatSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatAbsMinHeatSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readAbsMinHeatSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatAbsMinHeatSetpointLimitCommandParams + ); + result.put("readAbsMinHeatSetpointLimitAttribute", readThermostatAbsMinHeatSetpointLimitAttributeInteractionInfo); + Map readThermostatAbsMaxHeatSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatAbsMaxHeatSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readAbsMaxHeatSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatAbsMaxHeatSetpointLimitCommandParams + ); + result.put("readAbsMaxHeatSetpointLimitAttribute", readThermostatAbsMaxHeatSetpointLimitAttributeInteractionInfo); + Map readThermostatAbsMinCoolSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatAbsMinCoolSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readAbsMinCoolSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatAbsMinCoolSetpointLimitCommandParams + ); + result.put("readAbsMinCoolSetpointLimitAttribute", readThermostatAbsMinCoolSetpointLimitAttributeInteractionInfo); + Map readThermostatAbsMaxCoolSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatAbsMaxCoolSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readAbsMaxCoolSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatAbsMaxCoolSetpointLimitCommandParams + ); + result.put("readAbsMaxCoolSetpointLimitAttribute", readThermostatAbsMaxCoolSetpointLimitAttributeInteractionInfo); + Map readThermostatPICoolingDemandCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatPICoolingDemandAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readPICoolingDemandAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatPICoolingDemandCommandParams + ); + result.put("readPICoolingDemandAttribute", readThermostatPICoolingDemandAttributeInteractionInfo); + Map readThermostatPIHeatingDemandCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatPIHeatingDemandAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readPIHeatingDemandAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatPIHeatingDemandCommandParams + ); + result.put("readPIHeatingDemandAttribute", readThermostatPIHeatingDemandAttributeInteractionInfo); + Map readThermostatHVACSystemTypeConfigurationCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatHVACSystemTypeConfigurationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readHVACSystemTypeConfigurationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatHVACSystemTypeConfigurationCommandParams + ); + result.put("readHVACSystemTypeConfigurationAttribute", readThermostatHVACSystemTypeConfigurationAttributeInteractionInfo); + Map readThermostatLocalTemperatureCalibrationCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatLocalTemperatureCalibrationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readLocalTemperatureCalibrationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatLocalTemperatureCalibrationCommandParams + ); + result.put("readLocalTemperatureCalibrationAttribute", readThermostatLocalTemperatureCalibrationAttributeInteractionInfo); + Map readThermostatOccupiedCoolingSetpointCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatOccupiedCoolingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readOccupiedCoolingSetpointAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatOccupiedCoolingSetpointCommandParams + ); + result.put("readOccupiedCoolingSetpointAttribute", readThermostatOccupiedCoolingSetpointAttributeInteractionInfo); + Map readThermostatOccupiedHeatingSetpointCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatOccupiedHeatingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readOccupiedHeatingSetpointAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatOccupiedHeatingSetpointCommandParams + ); + result.put("readOccupiedHeatingSetpointAttribute", readThermostatOccupiedHeatingSetpointAttributeInteractionInfo); + Map readThermostatUnoccupiedCoolingSetpointCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readUnoccupiedCoolingSetpointAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatUnoccupiedCoolingSetpointCommandParams + ); + result.put("readUnoccupiedCoolingSetpointAttribute", readThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo); + Map readThermostatUnoccupiedHeatingSetpointCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readUnoccupiedHeatingSetpointAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatUnoccupiedHeatingSetpointCommandParams + ); + result.put("readUnoccupiedHeatingSetpointAttribute", readThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo); + Map readThermostatMinHeatSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatMinHeatSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readMinHeatSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatMinHeatSetpointLimitCommandParams + ); + result.put("readMinHeatSetpointLimitAttribute", readThermostatMinHeatSetpointLimitAttributeInteractionInfo); + Map readThermostatMaxHeatSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatMaxHeatSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readMaxHeatSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatMaxHeatSetpointLimitCommandParams + ); + result.put("readMaxHeatSetpointLimitAttribute", readThermostatMaxHeatSetpointLimitAttributeInteractionInfo); + Map readThermostatMinCoolSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatMinCoolSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readMinCoolSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatMinCoolSetpointLimitCommandParams + ); + result.put("readMinCoolSetpointLimitAttribute", readThermostatMinCoolSetpointLimitAttributeInteractionInfo); + Map readThermostatMaxCoolSetpointLimitCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatMaxCoolSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readMaxCoolSetpointLimitAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatMaxCoolSetpointLimitCommandParams + ); + result.put("readMaxCoolSetpointLimitAttribute", readThermostatMaxCoolSetpointLimitAttributeInteractionInfo); + Map readThermostatMinSetpointDeadBandCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatMinSetpointDeadBandAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readMinSetpointDeadBandAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatMinSetpointDeadBandCommandParams + ); + result.put("readMinSetpointDeadBandAttribute", readThermostatMinSetpointDeadBandAttributeInteractionInfo); + Map readThermostatRemoteSensingCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatRemoteSensingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readRemoteSensingAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatRemoteSensingCommandParams + ); + result.put("readRemoteSensingAttribute", readThermostatRemoteSensingAttributeInteractionInfo); + Map readThermostatControlSequenceOfOperationCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatControlSequenceOfOperationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readControlSequenceOfOperationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatControlSequenceOfOperationCommandParams + ); + result.put("readControlSequenceOfOperationAttribute", readThermostatControlSequenceOfOperationAttributeInteractionInfo); + Map readThermostatSystemModeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatSystemModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readSystemModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatSystemModeCommandParams + ); + result.put("readSystemModeAttribute", readThermostatSystemModeAttributeInteractionInfo); + Map readThermostatThermostatRunningModeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatThermostatRunningModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readThermostatRunningModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatThermostatRunningModeCommandParams + ); + result.put("readThermostatRunningModeAttribute", readThermostatThermostatRunningModeAttributeInteractionInfo); + Map readThermostatStartOfWeekCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatStartOfWeekAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readStartOfWeekAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatStartOfWeekCommandParams + ); + result.put("readStartOfWeekAttribute", readThermostatStartOfWeekAttributeInteractionInfo); + Map readThermostatNumberOfWeeklyTransitionsCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatNumberOfWeeklyTransitionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readNumberOfWeeklyTransitionsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatNumberOfWeeklyTransitionsCommandParams + ); + result.put("readNumberOfWeeklyTransitionsAttribute", readThermostatNumberOfWeeklyTransitionsAttributeInteractionInfo); + Map readThermostatNumberOfDailyTransitionsCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatNumberOfDailyTransitionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readNumberOfDailyTransitionsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatNumberOfDailyTransitionsCommandParams + ); + result.put("readNumberOfDailyTransitionsAttribute", readThermostatNumberOfDailyTransitionsAttributeInteractionInfo); + Map readThermostatTemperatureSetpointHoldCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatTemperatureSetpointHoldAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readTemperatureSetpointHoldAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatTemperatureSetpointHoldCommandParams + ); + result.put("readTemperatureSetpointHoldAttribute", readThermostatTemperatureSetpointHoldAttributeInteractionInfo); + Map readThermostatTemperatureSetpointHoldDurationCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readTemperatureSetpointHoldDurationAttribute( + (ChipClusters.ThermostatCluster.TemperatureSetpointHoldDurationAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterTemperatureSetpointHoldDurationAttributeCallback(), + readThermostatTemperatureSetpointHoldDurationCommandParams + ); + result.put("readTemperatureSetpointHoldDurationAttribute", readThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo); + Map readThermostatThermostatProgrammingOperationModeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatThermostatProgrammingOperationModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readThermostatProgrammingOperationModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatThermostatProgrammingOperationModeCommandParams + ); + result.put("readThermostatProgrammingOperationModeAttribute", readThermostatThermostatProgrammingOperationModeAttributeInteractionInfo); + Map readThermostatThermostatRunningStateCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatThermostatRunningStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readThermostatRunningStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatThermostatRunningStateCommandParams + ); + result.put("readThermostatRunningStateAttribute", readThermostatThermostatRunningStateAttributeInteractionInfo); + Map readThermostatSetpointChangeSourceCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatSetpointChangeSourceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readSetpointChangeSourceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatSetpointChangeSourceCommandParams + ); + result.put("readSetpointChangeSourceAttribute", readThermostatSetpointChangeSourceAttributeInteractionInfo); + Map readThermostatSetpointChangeAmountCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatSetpointChangeAmountAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readSetpointChangeAmountAttribute( + (ChipClusters.ThermostatCluster.SetpointChangeAmountAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterSetpointChangeAmountAttributeCallback(), + readThermostatSetpointChangeAmountCommandParams + ); + result.put("readSetpointChangeAmountAttribute", readThermostatSetpointChangeAmountAttributeInteractionInfo); + Map readThermostatSetpointChangeSourceTimestampCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatSetpointChangeSourceTimestampAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readSetpointChangeSourceTimestampAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThermostatSetpointChangeSourceTimestampCommandParams + ); + result.put("readSetpointChangeSourceTimestampAttribute", readThermostatSetpointChangeSourceTimestampAttributeInteractionInfo); + Map readThermostatOccupiedSetbackCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatOccupiedSetbackAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readOccupiedSetbackAttribute( + (ChipClusters.ThermostatCluster.OccupiedSetbackAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterOccupiedSetbackAttributeCallback(), + readThermostatOccupiedSetbackCommandParams + ); + result.put("readOccupiedSetbackAttribute", readThermostatOccupiedSetbackAttributeInteractionInfo); + Map readThermostatOccupiedSetbackMinCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatOccupiedSetbackMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readOccupiedSetbackMinAttribute( + (ChipClusters.ThermostatCluster.OccupiedSetbackMinAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterOccupiedSetbackMinAttributeCallback(), + readThermostatOccupiedSetbackMinCommandParams + ); + result.put("readOccupiedSetbackMinAttribute", readThermostatOccupiedSetbackMinAttributeInteractionInfo); + Map readThermostatOccupiedSetbackMaxCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatOccupiedSetbackMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readOccupiedSetbackMaxAttribute( + (ChipClusters.ThermostatCluster.OccupiedSetbackMaxAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterOccupiedSetbackMaxAttributeCallback(), + readThermostatOccupiedSetbackMaxCommandParams + ); + result.put("readOccupiedSetbackMaxAttribute", readThermostatOccupiedSetbackMaxAttributeInteractionInfo); + Map readThermostatUnoccupiedSetbackCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUnoccupiedSetbackAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readUnoccupiedSetbackAttribute( + (ChipClusters.ThermostatCluster.UnoccupiedSetbackAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterUnoccupiedSetbackAttributeCallback(), + readThermostatUnoccupiedSetbackCommandParams + ); + result.put("readUnoccupiedSetbackAttribute", readThermostatUnoccupiedSetbackAttributeInteractionInfo); + Map readThermostatUnoccupiedSetbackMinCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUnoccupiedSetbackMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readUnoccupiedSetbackMinAttribute( + (ChipClusters.ThermostatCluster.UnoccupiedSetbackMinAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterUnoccupiedSetbackMinAttributeCallback(), + readThermostatUnoccupiedSetbackMinCommandParams + ); + result.put("readUnoccupiedSetbackMinAttribute", readThermostatUnoccupiedSetbackMinAttributeInteractionInfo); + Map readThermostatUnoccupiedSetbackMaxCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUnoccupiedSetbackMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readUnoccupiedSetbackMaxAttribute( + (ChipClusters.ThermostatCluster.UnoccupiedSetbackMaxAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterUnoccupiedSetbackMaxAttributeCallback(), + readThermostatUnoccupiedSetbackMaxCommandParams + ); + result.put("readUnoccupiedSetbackMaxAttribute", readThermostatUnoccupiedSetbackMaxAttributeInteractionInfo); + Map readThermostatEmergencyHeatDeltaCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatEmergencyHeatDeltaAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readEmergencyHeatDeltaAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatEmergencyHeatDeltaCommandParams + ); + result.put("readEmergencyHeatDeltaAttribute", readThermostatEmergencyHeatDeltaAttributeInteractionInfo); + Map readThermostatACTypeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatACTypeCommandParams + ); + result.put("readACTypeAttribute", readThermostatACTypeAttributeInteractionInfo); + Map readThermostatACCapacityCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACCapacityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACCapacityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatACCapacityCommandParams + ); + result.put("readACCapacityAttribute", readThermostatACCapacityAttributeInteractionInfo); + Map readThermostatACRefrigerantTypeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACRefrigerantTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACRefrigerantTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatACRefrigerantTypeCommandParams + ); + result.put("readACRefrigerantTypeAttribute", readThermostatACRefrigerantTypeAttributeInteractionInfo); + Map readThermostatACCompressorTypeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACCompressorTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACCompressorTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatACCompressorTypeCommandParams + ); + result.put("readACCompressorTypeAttribute", readThermostatACCompressorTypeAttributeInteractionInfo); + Map readThermostatACErrorCodeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACErrorCodeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACErrorCodeAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThermostatACErrorCodeCommandParams + ); + result.put("readACErrorCodeAttribute", readThermostatACErrorCodeAttributeInteractionInfo); + Map readThermostatACLouverPositionCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACLouverPositionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACLouverPositionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatACLouverPositionCommandParams + ); + result.put("readACLouverPositionAttribute", readThermostatACLouverPositionAttributeInteractionInfo); + Map readThermostatACCoilTemperatureCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACCoilTemperatureAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACCoilTemperatureAttribute( + (ChipClusters.ThermostatCluster.ACCoilTemperatureAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterACCoilTemperatureAttributeCallback(), + readThermostatACCoilTemperatureCommandParams + ); + result.put("readACCoilTemperatureAttribute", readThermostatACCoilTemperatureAttributeInteractionInfo); + Map readThermostatACCapacityformatCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatACCapacityformatAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readACCapacityformatAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatACCapacityformatCommandParams + ); + result.put("readACCapacityformatAttribute", readThermostatACCapacityformatAttributeInteractionInfo); + Map readThermostatGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ThermostatCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterGeneratedCommandListAttributeCallback(), + readThermostatGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readThermostatGeneratedCommandListAttributeInteractionInfo); + Map readThermostatAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ThermostatCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterAcceptedCommandListAttributeCallback(), + readThermostatAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readThermostatAcceptedCommandListAttributeInteractionInfo); + Map readThermostatEventListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readEventListAttribute( + (ChipClusters.ThermostatCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterEventListAttributeCallback(), + readThermostatEventListCommandParams + ); + result.put("readEventListAttribute", readThermostatEventListAttributeInteractionInfo); + Map readThermostatAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readAttributeListAttribute( + (ChipClusters.ThermostatCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatClusterAttributeListAttributeCallback(), + readThermostatAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readThermostatAttributeListAttributeInteractionInfo); + Map readThermostatFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThermostatFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readThermostatFeatureMapAttributeInteractionInfo); + Map readThermostatClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readThermostatClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readFanControlInteractionInfo() { + Map result = new LinkedHashMap<>();Map readFanControlFanModeCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlFanModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readFanModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlFanModeCommandParams + ); + result.put("readFanModeAttribute", readFanControlFanModeAttributeInteractionInfo); + Map readFanControlFanModeSequenceCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlFanModeSequenceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readFanModeSequenceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlFanModeSequenceCommandParams + ); + result.put("readFanModeSequenceAttribute", readFanControlFanModeSequenceAttributeInteractionInfo); + Map readFanControlPercentSettingCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlPercentSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readPercentSettingAttribute( + (ChipClusters.FanControlCluster.PercentSettingAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFanControlClusterPercentSettingAttributeCallback(), + readFanControlPercentSettingCommandParams + ); + result.put("readPercentSettingAttribute", readFanControlPercentSettingAttributeInteractionInfo); + Map readFanControlPercentCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlPercentCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readPercentCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlPercentCurrentCommandParams + ); + result.put("readPercentCurrentAttribute", readFanControlPercentCurrentAttributeInteractionInfo); + Map readFanControlSpeedMaxCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlSpeedMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readSpeedMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlSpeedMaxCommandParams + ); + result.put("readSpeedMaxAttribute", readFanControlSpeedMaxAttributeInteractionInfo); + Map readFanControlSpeedSettingCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlSpeedSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readSpeedSettingAttribute( + (ChipClusters.FanControlCluster.SpeedSettingAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFanControlClusterSpeedSettingAttributeCallback(), + readFanControlSpeedSettingCommandParams + ); + result.put("readSpeedSettingAttribute", readFanControlSpeedSettingAttributeInteractionInfo); + Map readFanControlSpeedCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlSpeedCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readSpeedCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlSpeedCurrentCommandParams + ); + result.put("readSpeedCurrentAttribute", readFanControlSpeedCurrentAttributeInteractionInfo); + Map readFanControlRockSupportCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlRockSupportAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readRockSupportAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlRockSupportCommandParams + ); + result.put("readRockSupportAttribute", readFanControlRockSupportAttributeInteractionInfo); + Map readFanControlRockSettingCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlRockSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readRockSettingAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlRockSettingCommandParams + ); + result.put("readRockSettingAttribute", readFanControlRockSettingAttributeInteractionInfo); + Map readFanControlWindSupportCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlWindSupportAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readWindSupportAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlWindSupportCommandParams + ); + result.put("readWindSupportAttribute", readFanControlWindSupportAttributeInteractionInfo); + Map readFanControlWindSettingCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlWindSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readWindSettingAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlWindSettingCommandParams + ); + result.put("readWindSettingAttribute", readFanControlWindSettingAttributeInteractionInfo); + Map readFanControlGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.FanControlCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFanControlClusterGeneratedCommandListAttributeCallback(), + readFanControlGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readFanControlGeneratedCommandListAttributeInteractionInfo); + Map readFanControlAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.FanControlCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFanControlClusterAcceptedCommandListAttributeCallback(), + readFanControlAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readFanControlAcceptedCommandListAttributeInteractionInfo); + Map readFanControlEventListCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readEventListAttribute( + (ChipClusters.FanControlCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFanControlClusterEventListAttributeCallback(), + readFanControlEventListCommandParams + ); + result.put("readEventListAttribute", readFanControlEventListAttributeInteractionInfo); + Map readFanControlAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readAttributeListAttribute( + (ChipClusters.FanControlCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFanControlClusterAttributeListAttributeCallback(), + readFanControlAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readFanControlAttributeListAttributeInteractionInfo); + Map readFanControlFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readFanControlFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readFanControlFeatureMapAttributeInteractionInfo); + Map readFanControlClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readFanControlClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFanControlClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readFanControlClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readThermostatUserInterfaceConfigurationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readTemperatureDisplayModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams + ); + result.put("readTemperatureDisplayModeAttribute", readThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationKeypadLockoutCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readKeypadLockoutAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatUserInterfaceConfigurationKeypadLockoutCommandParams + ); + result.put("readKeypadLockoutAttribute", readThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readScheduleProgrammingVisibilityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams + ); + result.put("readScheduleProgrammingVisibilityAttribute", readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ThermostatUserInterfaceConfigurationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatUserInterfaceConfigurationClusterGeneratedCommandListAttributeCallback(), + readThermostatUserInterfaceConfigurationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readThermostatUserInterfaceConfigurationGeneratedCommandListAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ThermostatUserInterfaceConfigurationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatUserInterfaceConfigurationClusterAcceptedCommandListAttributeCallback(), + readThermostatUserInterfaceConfigurationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readThermostatUserInterfaceConfigurationAcceptedCommandListAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readEventListAttribute( + (ChipClusters.ThermostatUserInterfaceConfigurationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatUserInterfaceConfigurationClusterEventListAttributeCallback(), + readThermostatUserInterfaceConfigurationEventListCommandParams + ); + result.put("readEventListAttribute", readThermostatUserInterfaceConfigurationEventListAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readAttributeListAttribute( + (ChipClusters.ThermostatUserInterfaceConfigurationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedThermostatUserInterfaceConfigurationClusterAttributeListAttributeCallback(), + readThermostatUserInterfaceConfigurationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readThermostatUserInterfaceConfigurationAttributeListAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readThermostatUserInterfaceConfigurationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readThermostatUserInterfaceConfigurationFeatureMapAttributeInteractionInfo); + Map readThermostatUserInterfaceConfigurationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readThermostatUserInterfaceConfigurationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readThermostatUserInterfaceConfigurationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readColorControlInteractionInfo() { + Map result = new LinkedHashMap<>();Map readColorControlCurrentHueCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlCurrentHueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readCurrentHueAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlCurrentHueCommandParams + ); + result.put("readCurrentHueAttribute", readColorControlCurrentHueAttributeInteractionInfo); + Map readColorControlCurrentSaturationCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlCurrentSaturationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readCurrentSaturationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlCurrentSaturationCommandParams + ); + result.put("readCurrentSaturationAttribute", readColorControlCurrentSaturationAttributeInteractionInfo); + Map readColorControlRemainingTimeCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlRemainingTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readRemainingTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlRemainingTimeCommandParams + ); + result.put("readRemainingTimeAttribute", readColorControlRemainingTimeAttributeInteractionInfo); + Map readColorControlCurrentXCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlCurrentXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readCurrentXAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlCurrentXCommandParams + ); + result.put("readCurrentXAttribute", readColorControlCurrentXAttributeInteractionInfo); + Map readColorControlCurrentYCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlCurrentYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readCurrentYAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlCurrentYCommandParams + ); + result.put("readCurrentYAttribute", readColorControlCurrentYAttributeInteractionInfo); + Map readColorControlDriftCompensationCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlDriftCompensationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readDriftCompensationAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlDriftCompensationCommandParams + ); + result.put("readDriftCompensationAttribute", readColorControlDriftCompensationAttributeInteractionInfo); + Map readColorControlCompensationTextCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlCompensationTextAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readCompensationTextAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readColorControlCompensationTextCommandParams + ); + result.put("readCompensationTextAttribute", readColorControlCompensationTextAttributeInteractionInfo); + Map readColorControlColorTemperatureMiredsCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorTemperatureMiredsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorTemperatureMiredsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorTemperatureMiredsCommandParams + ); + result.put("readColorTemperatureMiredsAttribute", readColorControlColorTemperatureMiredsAttributeInteractionInfo); + Map readColorControlColorModeCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorModeCommandParams + ); + result.put("readColorModeAttribute", readColorControlColorModeAttributeInteractionInfo); + Map readColorControlOptionsCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlOptionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readOptionsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlOptionsCommandParams + ); + result.put("readOptionsAttribute", readColorControlOptionsAttributeInteractionInfo); + Map readColorControlNumberOfPrimariesCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlNumberOfPrimariesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readNumberOfPrimariesAttribute( + (ChipClusters.ColorControlCluster.NumberOfPrimariesAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterNumberOfPrimariesAttributeCallback(), + readColorControlNumberOfPrimariesCommandParams + ); + result.put("readNumberOfPrimariesAttribute", readColorControlNumberOfPrimariesAttributeInteractionInfo); + Map readColorControlPrimary1XCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary1XAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary1XAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary1XCommandParams + ); + result.put("readPrimary1XAttribute", readColorControlPrimary1XAttributeInteractionInfo); + Map readColorControlPrimary1YCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary1YAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary1YAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary1YCommandParams + ); + result.put("readPrimary1YAttribute", readColorControlPrimary1YAttributeInteractionInfo); + Map readColorControlPrimary1IntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary1IntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary1IntensityAttribute( + (ChipClusters.ColorControlCluster.Primary1IntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterPrimary1IntensityAttributeCallback(), + readColorControlPrimary1IntensityCommandParams + ); + result.put("readPrimary1IntensityAttribute", readColorControlPrimary1IntensityAttributeInteractionInfo); + Map readColorControlPrimary2XCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary2XAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary2XAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary2XCommandParams + ); + result.put("readPrimary2XAttribute", readColorControlPrimary2XAttributeInteractionInfo); + Map readColorControlPrimary2YCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary2YAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary2YAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary2YCommandParams + ); + result.put("readPrimary2YAttribute", readColorControlPrimary2YAttributeInteractionInfo); + Map readColorControlPrimary2IntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary2IntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary2IntensityAttribute( + (ChipClusters.ColorControlCluster.Primary2IntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterPrimary2IntensityAttributeCallback(), + readColorControlPrimary2IntensityCommandParams + ); + result.put("readPrimary2IntensityAttribute", readColorControlPrimary2IntensityAttributeInteractionInfo); + Map readColorControlPrimary3XCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary3XAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary3XAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary3XCommandParams + ); + result.put("readPrimary3XAttribute", readColorControlPrimary3XAttributeInteractionInfo); + Map readColorControlPrimary3YCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary3YAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary3YAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary3YCommandParams + ); + result.put("readPrimary3YAttribute", readColorControlPrimary3YAttributeInteractionInfo); + Map readColorControlPrimary3IntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary3IntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary3IntensityAttribute( + (ChipClusters.ColorControlCluster.Primary3IntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterPrimary3IntensityAttributeCallback(), + readColorControlPrimary3IntensityCommandParams + ); + result.put("readPrimary3IntensityAttribute", readColorControlPrimary3IntensityAttributeInteractionInfo); + Map readColorControlPrimary4XCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary4XAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary4XAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary4XCommandParams + ); + result.put("readPrimary4XAttribute", readColorControlPrimary4XAttributeInteractionInfo); + Map readColorControlPrimary4YCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary4YAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary4YAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary4YCommandParams + ); + result.put("readPrimary4YAttribute", readColorControlPrimary4YAttributeInteractionInfo); + Map readColorControlPrimary4IntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary4IntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary4IntensityAttribute( + (ChipClusters.ColorControlCluster.Primary4IntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterPrimary4IntensityAttributeCallback(), + readColorControlPrimary4IntensityCommandParams + ); + result.put("readPrimary4IntensityAttribute", readColorControlPrimary4IntensityAttributeInteractionInfo); + Map readColorControlPrimary5XCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary5XAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary5XAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary5XCommandParams + ); + result.put("readPrimary5XAttribute", readColorControlPrimary5XAttributeInteractionInfo); + Map readColorControlPrimary5YCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary5YAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary5YAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary5YCommandParams + ); + result.put("readPrimary5YAttribute", readColorControlPrimary5YAttributeInteractionInfo); + Map readColorControlPrimary5IntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary5IntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary5IntensityAttribute( + (ChipClusters.ColorControlCluster.Primary5IntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterPrimary5IntensityAttributeCallback(), + readColorControlPrimary5IntensityCommandParams + ); + result.put("readPrimary5IntensityAttribute", readColorControlPrimary5IntensityAttributeInteractionInfo); + Map readColorControlPrimary6XCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary6XAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary6XAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary6XCommandParams + ); + result.put("readPrimary6XAttribute", readColorControlPrimary6XAttributeInteractionInfo); + Map readColorControlPrimary6YCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary6YAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary6YAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlPrimary6YCommandParams + ); + result.put("readPrimary6YAttribute", readColorControlPrimary6YAttributeInteractionInfo); + Map readColorControlPrimary6IntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlPrimary6IntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readPrimary6IntensityAttribute( + (ChipClusters.ColorControlCluster.Primary6IntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterPrimary6IntensityAttributeCallback(), + readColorControlPrimary6IntensityCommandParams + ); + result.put("readPrimary6IntensityAttribute", readColorControlPrimary6IntensityAttributeInteractionInfo); + Map readColorControlWhitePointXCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlWhitePointXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readWhitePointXAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlWhitePointXCommandParams + ); + result.put("readWhitePointXAttribute", readColorControlWhitePointXAttributeInteractionInfo); + Map readColorControlWhitePointYCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlWhitePointYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readWhitePointYAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlWhitePointYCommandParams + ); + result.put("readWhitePointYAttribute", readColorControlWhitePointYAttributeInteractionInfo); + Map readColorControlColorPointRXCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointRXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointRXAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorPointRXCommandParams + ); + result.put("readColorPointRXAttribute", readColorControlColorPointRXAttributeInteractionInfo); + Map readColorControlColorPointRYCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointRYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointRYAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorPointRYCommandParams + ); + result.put("readColorPointRYAttribute", readColorControlColorPointRYAttributeInteractionInfo); + Map readColorControlColorPointRIntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointRIntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointRIntensityAttribute( + (ChipClusters.ColorControlCluster.ColorPointRIntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterColorPointRIntensityAttributeCallback(), + readColorControlColorPointRIntensityCommandParams + ); + result.put("readColorPointRIntensityAttribute", readColorControlColorPointRIntensityAttributeInteractionInfo); + Map readColorControlColorPointGXCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointGXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointGXAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorPointGXCommandParams + ); + result.put("readColorPointGXAttribute", readColorControlColorPointGXAttributeInteractionInfo); + Map readColorControlColorPointGYCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointGYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointGYAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorPointGYCommandParams + ); + result.put("readColorPointGYAttribute", readColorControlColorPointGYAttributeInteractionInfo); + Map readColorControlColorPointGIntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointGIntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointGIntensityAttribute( + (ChipClusters.ColorControlCluster.ColorPointGIntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterColorPointGIntensityAttributeCallback(), + readColorControlColorPointGIntensityCommandParams + ); + result.put("readColorPointGIntensityAttribute", readColorControlColorPointGIntensityAttributeInteractionInfo); + Map readColorControlColorPointBXCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointBXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointBXAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorPointBXCommandParams + ); + result.put("readColorPointBXAttribute", readColorControlColorPointBXAttributeInteractionInfo); + Map readColorControlColorPointBYCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointBYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointBYAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorPointBYCommandParams + ); + result.put("readColorPointBYAttribute", readColorControlColorPointBYAttributeInteractionInfo); + Map readColorControlColorPointBIntensityCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorPointBIntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorPointBIntensityAttribute( + (ChipClusters.ColorControlCluster.ColorPointBIntensityAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterColorPointBIntensityAttributeCallback(), + readColorControlColorPointBIntensityCommandParams + ); + result.put("readColorPointBIntensityAttribute", readColorControlColorPointBIntensityAttributeInteractionInfo); + Map readColorControlEnhancedCurrentHueCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlEnhancedCurrentHueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readEnhancedCurrentHueAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlEnhancedCurrentHueCommandParams + ); + result.put("readEnhancedCurrentHueAttribute", readColorControlEnhancedCurrentHueAttributeInteractionInfo); + Map readColorControlEnhancedColorModeCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlEnhancedColorModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readEnhancedColorModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlEnhancedColorModeCommandParams + ); + result.put("readEnhancedColorModeAttribute", readColorControlEnhancedColorModeAttributeInteractionInfo); + Map readColorControlColorLoopActiveCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorLoopActiveAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorLoopActiveAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorLoopActiveCommandParams + ); + result.put("readColorLoopActiveAttribute", readColorControlColorLoopActiveAttributeInteractionInfo); + Map readColorControlColorLoopDirectionCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorLoopDirectionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorLoopDirectionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorLoopDirectionCommandParams + ); + result.put("readColorLoopDirectionAttribute", readColorControlColorLoopDirectionAttributeInteractionInfo); + Map readColorControlColorLoopTimeCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorLoopTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorLoopTimeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorLoopTimeCommandParams + ); + result.put("readColorLoopTimeAttribute", readColorControlColorLoopTimeAttributeInteractionInfo); + Map readColorControlColorLoopStartEnhancedHueCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorLoopStartEnhancedHueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorLoopStartEnhancedHueAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorLoopStartEnhancedHueCommandParams + ); + result.put("readColorLoopStartEnhancedHueAttribute", readColorControlColorLoopStartEnhancedHueAttributeInteractionInfo); + Map readColorControlColorLoopStoredEnhancedHueCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorLoopStoredEnhancedHueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorLoopStoredEnhancedHueAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorLoopStoredEnhancedHueCommandParams + ); + result.put("readColorLoopStoredEnhancedHueAttribute", readColorControlColorLoopStoredEnhancedHueAttributeInteractionInfo); + Map readColorControlColorCapabilitiesCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorCapabilitiesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorCapabilitiesAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorCapabilitiesCommandParams + ); + result.put("readColorCapabilitiesAttribute", readColorControlColorCapabilitiesAttributeInteractionInfo); + Map readColorControlColorTempPhysicalMinMiredsCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorTempPhysicalMinMiredsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorTempPhysicalMinMiredsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorTempPhysicalMinMiredsCommandParams + ); + result.put("readColorTempPhysicalMinMiredsAttribute", readColorControlColorTempPhysicalMinMiredsAttributeInteractionInfo); + Map readColorControlColorTempPhysicalMaxMiredsCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlColorTempPhysicalMaxMiredsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readColorTempPhysicalMaxMiredsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlColorTempPhysicalMaxMiredsCommandParams + ); + result.put("readColorTempPhysicalMaxMiredsAttribute", readColorControlColorTempPhysicalMaxMiredsAttributeInteractionInfo); + Map readColorControlCoupleColorTempToLevelMinMiredsCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlCoupleColorTempToLevelMinMiredsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readCoupleColorTempToLevelMinMiredsAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlCoupleColorTempToLevelMinMiredsCommandParams + ); + result.put("readCoupleColorTempToLevelMinMiredsAttribute", readColorControlCoupleColorTempToLevelMinMiredsAttributeInteractionInfo); + Map readColorControlStartUpColorTemperatureMiredsCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readStartUpColorTemperatureMiredsAttribute( + (ChipClusters.ColorControlCluster.StartUpColorTemperatureMiredsAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterStartUpColorTemperatureMiredsAttributeCallback(), + readColorControlStartUpColorTemperatureMiredsCommandParams + ); + result.put("readStartUpColorTemperatureMiredsAttribute", readColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo); + Map readColorControlGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ColorControlCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterGeneratedCommandListAttributeCallback(), + readColorControlGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readColorControlGeneratedCommandListAttributeInteractionInfo); + Map readColorControlAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ColorControlCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterAcceptedCommandListAttributeCallback(), + readColorControlAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readColorControlAcceptedCommandListAttributeInteractionInfo); + Map readColorControlEventListCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readEventListAttribute( + (ChipClusters.ColorControlCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterEventListAttributeCallback(), + readColorControlEventListCommandParams + ); + result.put("readEventListAttribute", readColorControlEventListAttributeInteractionInfo); + Map readColorControlAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readAttributeListAttribute( + (ChipClusters.ColorControlCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedColorControlClusterAttributeListAttributeCallback(), + readColorControlAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readColorControlAttributeListAttributeInteractionInfo); + Map readColorControlFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readColorControlFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readColorControlFeatureMapAttributeInteractionInfo); + Map readColorControlClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readColorControlClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readColorControlClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readColorControlClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readBallastConfigurationInteractionInfo() { + Map result = new LinkedHashMap<>();Map readBallastConfigurationPhysicalMinLevelCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationPhysicalMinLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readPhysicalMinLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationPhysicalMinLevelCommandParams + ); + result.put("readPhysicalMinLevelAttribute", readBallastConfigurationPhysicalMinLevelAttributeInteractionInfo); + Map readBallastConfigurationPhysicalMaxLevelCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationPhysicalMaxLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readPhysicalMaxLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationPhysicalMaxLevelCommandParams + ); + result.put("readPhysicalMaxLevelAttribute", readBallastConfigurationPhysicalMaxLevelAttributeInteractionInfo); + Map readBallastConfigurationBallastStatusCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationBallastStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readBallastStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationBallastStatusCommandParams + ); + result.put("readBallastStatusAttribute", readBallastConfigurationBallastStatusAttributeInteractionInfo); + Map readBallastConfigurationMinLevelCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationMinLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readMinLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationMinLevelCommandParams + ); + result.put("readMinLevelAttribute", readBallastConfigurationMinLevelAttributeInteractionInfo); + Map readBallastConfigurationMaxLevelCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationMaxLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readMaxLevelAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationMaxLevelCommandParams + ); + result.put("readMaxLevelAttribute", readBallastConfigurationMaxLevelAttributeInteractionInfo); + Map readBallastConfigurationIntrinsicBallastFactorCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readIntrinsicBallastFactorAttribute( + (ChipClusters.BallastConfigurationCluster.IntrinsicBallastFactorAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterIntrinsicBallastFactorAttributeCallback(), + readBallastConfigurationIntrinsicBallastFactorCommandParams + ); + result.put("readIntrinsicBallastFactorAttribute", readBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo); + Map readBallastConfigurationBallastFactorAdjustmentCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readBallastFactorAdjustmentAttribute( + (ChipClusters.BallastConfigurationCluster.BallastFactorAdjustmentAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterBallastFactorAdjustmentAttributeCallback(), + readBallastConfigurationBallastFactorAdjustmentCommandParams + ); + result.put("readBallastFactorAdjustmentAttribute", readBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo); + Map readBallastConfigurationLampQuantityCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationLampQuantityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readLampQuantityAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationLampQuantityCommandParams + ); + result.put("readLampQuantityAttribute", readBallastConfigurationLampQuantityAttributeInteractionInfo); + Map readBallastConfigurationLampTypeCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationLampTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readLampTypeAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBallastConfigurationLampTypeCommandParams + ); + result.put("readLampTypeAttribute", readBallastConfigurationLampTypeAttributeInteractionInfo); + Map readBallastConfigurationLampManufacturerCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationLampManufacturerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readLampManufacturerAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readBallastConfigurationLampManufacturerCommandParams + ); + result.put("readLampManufacturerAttribute", readBallastConfigurationLampManufacturerAttributeInteractionInfo); + Map readBallastConfigurationLampRatedHoursCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationLampRatedHoursAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readLampRatedHoursAttribute( + (ChipClusters.BallastConfigurationCluster.LampRatedHoursAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterLampRatedHoursAttributeCallback(), + readBallastConfigurationLampRatedHoursCommandParams + ); + result.put("readLampRatedHoursAttribute", readBallastConfigurationLampRatedHoursAttributeInteractionInfo); + Map readBallastConfigurationLampBurnHoursCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationLampBurnHoursAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readLampBurnHoursAttribute( + (ChipClusters.BallastConfigurationCluster.LampBurnHoursAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterLampBurnHoursAttributeCallback(), + readBallastConfigurationLampBurnHoursCommandParams + ); + result.put("readLampBurnHoursAttribute", readBallastConfigurationLampBurnHoursAttributeInteractionInfo); + Map readBallastConfigurationLampAlarmModeCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationLampAlarmModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readLampAlarmModeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationLampAlarmModeCommandParams + ); + result.put("readLampAlarmModeAttribute", readBallastConfigurationLampAlarmModeAttributeInteractionInfo); + Map readBallastConfigurationLampBurnHoursTripPointCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readLampBurnHoursTripPointAttribute( + (ChipClusters.BallastConfigurationCluster.LampBurnHoursTripPointAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterLampBurnHoursTripPointAttributeCallback(), + readBallastConfigurationLampBurnHoursTripPointCommandParams + ); + result.put("readLampBurnHoursTripPointAttribute", readBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo); + Map readBallastConfigurationGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.BallastConfigurationCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterGeneratedCommandListAttributeCallback(), + readBallastConfigurationGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readBallastConfigurationGeneratedCommandListAttributeInteractionInfo); + Map readBallastConfigurationAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.BallastConfigurationCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterAcceptedCommandListAttributeCallback(), + readBallastConfigurationAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readBallastConfigurationAcceptedCommandListAttributeInteractionInfo); + Map readBallastConfigurationEventListCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readEventListAttribute( + (ChipClusters.BallastConfigurationCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterEventListAttributeCallback(), + readBallastConfigurationEventListCommandParams + ); + result.put("readEventListAttribute", readBallastConfigurationEventListAttributeInteractionInfo); + Map readBallastConfigurationAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readAttributeListAttribute( + (ChipClusters.BallastConfigurationCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBallastConfigurationClusterAttributeListAttributeCallback(), + readBallastConfigurationAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readBallastConfigurationAttributeListAttributeInteractionInfo); + Map readBallastConfigurationFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readBallastConfigurationFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readBallastConfigurationFeatureMapAttributeInteractionInfo); + Map readBallastConfigurationClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readBallastConfigurationClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readBallastConfigurationClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readBallastConfigurationClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readIlluminanceMeasurementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readIlluminanceMeasurementMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readMeasuredValueAttribute( + (ChipClusters.IlluminanceMeasurementCluster.MeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterMeasuredValueAttributeCallback(), + readIlluminanceMeasurementMeasuredValueCommandParams + ); + result.put("readMeasuredValueAttribute", readIlluminanceMeasurementMeasuredValueAttributeInteractionInfo); + Map readIlluminanceMeasurementMinMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementMinMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readMinMeasuredValueAttribute( + (ChipClusters.IlluminanceMeasurementCluster.MinMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterMinMeasuredValueAttributeCallback(), + readIlluminanceMeasurementMinMeasuredValueCommandParams + ); + result.put("readMinMeasuredValueAttribute", readIlluminanceMeasurementMinMeasuredValueAttributeInteractionInfo); + Map readIlluminanceMeasurementMaxMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementMaxMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readMaxMeasuredValueAttribute( + (ChipClusters.IlluminanceMeasurementCluster.MaxMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterMaxMeasuredValueAttributeCallback(), + readIlluminanceMeasurementMaxMeasuredValueCommandParams + ); + result.put("readMaxMeasuredValueAttribute", readIlluminanceMeasurementMaxMeasuredValueAttributeInteractionInfo); + Map readIlluminanceMeasurementToleranceCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementToleranceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readToleranceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIlluminanceMeasurementToleranceCommandParams + ); + result.put("readToleranceAttribute", readIlluminanceMeasurementToleranceAttributeInteractionInfo); + Map readIlluminanceMeasurementLightSensorTypeCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementLightSensorTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readLightSensorTypeAttribute( + (ChipClusters.IlluminanceMeasurementCluster.LightSensorTypeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterLightSensorTypeAttributeCallback(), + readIlluminanceMeasurementLightSensorTypeCommandParams + ); + result.put("readLightSensorTypeAttribute", readIlluminanceMeasurementLightSensorTypeAttributeInteractionInfo); + Map readIlluminanceMeasurementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.IlluminanceMeasurementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterGeneratedCommandListAttributeCallback(), + readIlluminanceMeasurementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readIlluminanceMeasurementGeneratedCommandListAttributeInteractionInfo); + Map readIlluminanceMeasurementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.IlluminanceMeasurementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterAcceptedCommandListAttributeCallback(), + readIlluminanceMeasurementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readIlluminanceMeasurementAcceptedCommandListAttributeInteractionInfo); + Map readIlluminanceMeasurementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readEventListAttribute( + (ChipClusters.IlluminanceMeasurementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterEventListAttributeCallback(), + readIlluminanceMeasurementEventListCommandParams + ); + result.put("readEventListAttribute", readIlluminanceMeasurementEventListAttributeInteractionInfo); + Map readIlluminanceMeasurementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readAttributeListAttribute( + (ChipClusters.IlluminanceMeasurementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIlluminanceMeasurementClusterAttributeListAttributeCallback(), + readIlluminanceMeasurementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readIlluminanceMeasurementAttributeListAttributeInteractionInfo); + Map readIlluminanceMeasurementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readIlluminanceMeasurementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readIlluminanceMeasurementFeatureMapAttributeInteractionInfo); + Map readIlluminanceMeasurementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readIlluminanceMeasurementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readIlluminanceMeasurementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readTemperatureMeasurementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readTemperatureMeasurementMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readMeasuredValueAttribute( + (ChipClusters.TemperatureMeasurementCluster.MeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureMeasurementClusterMeasuredValueAttributeCallback(), + readTemperatureMeasurementMeasuredValueCommandParams + ); + result.put("readMeasuredValueAttribute", readTemperatureMeasurementMeasuredValueAttributeInteractionInfo); + Map readTemperatureMeasurementMinMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementMinMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readMinMeasuredValueAttribute( + (ChipClusters.TemperatureMeasurementCluster.MinMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureMeasurementClusterMinMeasuredValueAttributeCallback(), + readTemperatureMeasurementMinMeasuredValueCommandParams + ); + result.put("readMinMeasuredValueAttribute", readTemperatureMeasurementMinMeasuredValueAttributeInteractionInfo); + Map readTemperatureMeasurementMaxMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementMaxMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readMaxMeasuredValueAttribute( + (ChipClusters.TemperatureMeasurementCluster.MaxMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureMeasurementClusterMaxMeasuredValueAttributeCallback(), + readTemperatureMeasurementMaxMeasuredValueCommandParams + ); + result.put("readMaxMeasuredValueAttribute", readTemperatureMeasurementMaxMeasuredValueAttributeInteractionInfo); + Map readTemperatureMeasurementToleranceCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementToleranceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readToleranceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureMeasurementToleranceCommandParams + ); + result.put("readToleranceAttribute", readTemperatureMeasurementToleranceAttributeInteractionInfo); + Map readTemperatureMeasurementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.TemperatureMeasurementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureMeasurementClusterGeneratedCommandListAttributeCallback(), + readTemperatureMeasurementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readTemperatureMeasurementGeneratedCommandListAttributeInteractionInfo); + Map readTemperatureMeasurementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.TemperatureMeasurementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureMeasurementClusterAcceptedCommandListAttributeCallback(), + readTemperatureMeasurementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readTemperatureMeasurementAcceptedCommandListAttributeInteractionInfo); + Map readTemperatureMeasurementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readEventListAttribute( + (ChipClusters.TemperatureMeasurementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureMeasurementClusterEventListAttributeCallback(), + readTemperatureMeasurementEventListCommandParams + ); + result.put("readEventListAttribute", readTemperatureMeasurementEventListAttributeInteractionInfo); + Map readTemperatureMeasurementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readAttributeListAttribute( + (ChipClusters.TemperatureMeasurementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTemperatureMeasurementClusterAttributeListAttributeCallback(), + readTemperatureMeasurementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readTemperatureMeasurementAttributeListAttributeInteractionInfo); + Map readTemperatureMeasurementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readTemperatureMeasurementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readTemperatureMeasurementFeatureMapAttributeInteractionInfo); + Map readTemperatureMeasurementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTemperatureMeasurementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readTemperatureMeasurementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readPressureMeasurementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readPressureMeasurementMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readMeasuredValueAttribute( + (ChipClusters.PressureMeasurementCluster.MeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterMeasuredValueAttributeCallback(), + readPressureMeasurementMeasuredValueCommandParams + ); + result.put("readMeasuredValueAttribute", readPressureMeasurementMeasuredValueAttributeInteractionInfo); + Map readPressureMeasurementMinMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementMinMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readMinMeasuredValueAttribute( + (ChipClusters.PressureMeasurementCluster.MinMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterMinMeasuredValueAttributeCallback(), + readPressureMeasurementMinMeasuredValueCommandParams + ); + result.put("readMinMeasuredValueAttribute", readPressureMeasurementMinMeasuredValueAttributeInteractionInfo); + Map readPressureMeasurementMaxMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementMaxMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readMaxMeasuredValueAttribute( + (ChipClusters.PressureMeasurementCluster.MaxMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterMaxMeasuredValueAttributeCallback(), + readPressureMeasurementMaxMeasuredValueCommandParams + ); + result.put("readMaxMeasuredValueAttribute", readPressureMeasurementMaxMeasuredValueAttributeInteractionInfo); + Map readPressureMeasurementToleranceCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementToleranceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readToleranceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPressureMeasurementToleranceCommandParams + ); + result.put("readToleranceAttribute", readPressureMeasurementToleranceAttributeInteractionInfo); + Map readPressureMeasurementScaledValueCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementScaledValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readScaledValueAttribute( + (ChipClusters.PressureMeasurementCluster.ScaledValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterScaledValueAttributeCallback(), + readPressureMeasurementScaledValueCommandParams + ); + result.put("readScaledValueAttribute", readPressureMeasurementScaledValueAttributeInteractionInfo); + Map readPressureMeasurementMinScaledValueCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementMinScaledValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readMinScaledValueAttribute( + (ChipClusters.PressureMeasurementCluster.MinScaledValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterMinScaledValueAttributeCallback(), + readPressureMeasurementMinScaledValueCommandParams + ); + result.put("readMinScaledValueAttribute", readPressureMeasurementMinScaledValueAttributeInteractionInfo); + Map readPressureMeasurementMaxScaledValueCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementMaxScaledValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readMaxScaledValueAttribute( + (ChipClusters.PressureMeasurementCluster.MaxScaledValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterMaxScaledValueAttributeCallback(), + readPressureMeasurementMaxScaledValueCommandParams + ); + result.put("readMaxScaledValueAttribute", readPressureMeasurementMaxScaledValueAttributeInteractionInfo); + Map readPressureMeasurementScaledToleranceCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementScaledToleranceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readScaledToleranceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPressureMeasurementScaledToleranceCommandParams + ); + result.put("readScaledToleranceAttribute", readPressureMeasurementScaledToleranceAttributeInteractionInfo); + Map readPressureMeasurementScaleCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementScaleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readScaleAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPressureMeasurementScaleCommandParams + ); + result.put("readScaleAttribute", readPressureMeasurementScaleAttributeInteractionInfo); + Map readPressureMeasurementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.PressureMeasurementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterGeneratedCommandListAttributeCallback(), + readPressureMeasurementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readPressureMeasurementGeneratedCommandListAttributeInteractionInfo); + Map readPressureMeasurementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.PressureMeasurementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterAcceptedCommandListAttributeCallback(), + readPressureMeasurementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readPressureMeasurementAcceptedCommandListAttributeInteractionInfo); + Map readPressureMeasurementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readEventListAttribute( + (ChipClusters.PressureMeasurementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterEventListAttributeCallback(), + readPressureMeasurementEventListCommandParams + ); + result.put("readEventListAttribute", readPressureMeasurementEventListAttributeInteractionInfo); + Map readPressureMeasurementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readAttributeListAttribute( + (ChipClusters.PressureMeasurementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedPressureMeasurementClusterAttributeListAttributeCallback(), + readPressureMeasurementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readPressureMeasurementAttributeListAttributeInteractionInfo); + Map readPressureMeasurementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readPressureMeasurementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readPressureMeasurementFeatureMapAttributeInteractionInfo); + Map readPressureMeasurementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readPressureMeasurementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readPressureMeasurementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readPressureMeasurementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readFlowMeasurementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readFlowMeasurementMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readMeasuredValueAttribute( + (ChipClusters.FlowMeasurementCluster.MeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFlowMeasurementClusterMeasuredValueAttributeCallback(), + readFlowMeasurementMeasuredValueCommandParams + ); + result.put("readMeasuredValueAttribute", readFlowMeasurementMeasuredValueAttributeInteractionInfo); + Map readFlowMeasurementMinMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementMinMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readMinMeasuredValueAttribute( + (ChipClusters.FlowMeasurementCluster.MinMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFlowMeasurementClusterMinMeasuredValueAttributeCallback(), + readFlowMeasurementMinMeasuredValueCommandParams + ); + result.put("readMinMeasuredValueAttribute", readFlowMeasurementMinMeasuredValueAttributeInteractionInfo); + Map readFlowMeasurementMaxMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementMaxMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readMaxMeasuredValueAttribute( + (ChipClusters.FlowMeasurementCluster.MaxMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFlowMeasurementClusterMaxMeasuredValueAttributeCallback(), + readFlowMeasurementMaxMeasuredValueCommandParams + ); + result.put("readMaxMeasuredValueAttribute", readFlowMeasurementMaxMeasuredValueAttributeInteractionInfo); + Map readFlowMeasurementToleranceCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementToleranceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readToleranceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFlowMeasurementToleranceCommandParams + ); + result.put("readToleranceAttribute", readFlowMeasurementToleranceAttributeInteractionInfo); + Map readFlowMeasurementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.FlowMeasurementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFlowMeasurementClusterGeneratedCommandListAttributeCallback(), + readFlowMeasurementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readFlowMeasurementGeneratedCommandListAttributeInteractionInfo); + Map readFlowMeasurementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.FlowMeasurementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFlowMeasurementClusterAcceptedCommandListAttributeCallback(), + readFlowMeasurementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readFlowMeasurementAcceptedCommandListAttributeInteractionInfo); + Map readFlowMeasurementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readEventListAttribute( + (ChipClusters.FlowMeasurementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFlowMeasurementClusterEventListAttributeCallback(), + readFlowMeasurementEventListCommandParams + ); + result.put("readEventListAttribute", readFlowMeasurementEventListAttributeInteractionInfo); + Map readFlowMeasurementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readAttributeListAttribute( + (ChipClusters.FlowMeasurementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFlowMeasurementClusterAttributeListAttributeCallback(), + readFlowMeasurementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readFlowMeasurementAttributeListAttributeInteractionInfo); + Map readFlowMeasurementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readFlowMeasurementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readFlowMeasurementFeatureMapAttributeInteractionInfo); + Map readFlowMeasurementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readFlowMeasurementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFlowMeasurementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readFlowMeasurementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readRelativeHumidityMeasurementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readRelativeHumidityMeasurementMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readMeasuredValueAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster.MeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRelativeHumidityMeasurementClusterMeasuredValueAttributeCallback(), + readRelativeHumidityMeasurementMeasuredValueCommandParams + ); + result.put("readMeasuredValueAttribute", readRelativeHumidityMeasurementMeasuredValueAttributeInteractionInfo); + Map readRelativeHumidityMeasurementMinMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementMinMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readMinMeasuredValueAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster.MinMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRelativeHumidityMeasurementClusterMinMeasuredValueAttributeCallback(), + readRelativeHumidityMeasurementMinMeasuredValueCommandParams + ); + result.put("readMinMeasuredValueAttribute", readRelativeHumidityMeasurementMinMeasuredValueAttributeInteractionInfo); + Map readRelativeHumidityMeasurementMaxMeasuredValueCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementMaxMeasuredValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readMaxMeasuredValueAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster.MaxMeasuredValueAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRelativeHumidityMeasurementClusterMaxMeasuredValueAttributeCallback(), + readRelativeHumidityMeasurementMaxMeasuredValueCommandParams + ); + result.put("readMaxMeasuredValueAttribute", readRelativeHumidityMeasurementMaxMeasuredValueAttributeInteractionInfo); + Map readRelativeHumidityMeasurementToleranceCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementToleranceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readToleranceAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readRelativeHumidityMeasurementToleranceCommandParams + ); + result.put("readToleranceAttribute", readRelativeHumidityMeasurementToleranceAttributeInteractionInfo); + Map readRelativeHumidityMeasurementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRelativeHumidityMeasurementClusterGeneratedCommandListAttributeCallback(), + readRelativeHumidityMeasurementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readRelativeHumidityMeasurementGeneratedCommandListAttributeInteractionInfo); + Map readRelativeHumidityMeasurementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRelativeHumidityMeasurementClusterAcceptedCommandListAttributeCallback(), + readRelativeHumidityMeasurementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readRelativeHumidityMeasurementAcceptedCommandListAttributeInteractionInfo); + Map readRelativeHumidityMeasurementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readEventListAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRelativeHumidityMeasurementClusterEventListAttributeCallback(), + readRelativeHumidityMeasurementEventListCommandParams + ); + result.put("readEventListAttribute", readRelativeHumidityMeasurementEventListAttributeInteractionInfo); + Map readRelativeHumidityMeasurementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readAttributeListAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedRelativeHumidityMeasurementClusterAttributeListAttributeCallback(), + readRelativeHumidityMeasurementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readRelativeHumidityMeasurementAttributeListAttributeInteractionInfo); + Map readRelativeHumidityMeasurementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readRelativeHumidityMeasurementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readRelativeHumidityMeasurementFeatureMapAttributeInteractionInfo); + Map readRelativeHumidityMeasurementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readRelativeHumidityMeasurementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readRelativeHumidityMeasurementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readOccupancySensingInteractionInfo() { + Map result = new LinkedHashMap<>();Map readOccupancySensingOccupancyCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingOccupancyAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readOccupancyAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingOccupancyCommandParams + ); + result.put("readOccupancyAttribute", readOccupancySensingOccupancyAttributeInteractionInfo); + Map readOccupancySensingOccupancySensorTypeCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingOccupancySensorTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readOccupancySensorTypeAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingOccupancySensorTypeCommandParams + ); + result.put("readOccupancySensorTypeAttribute", readOccupancySensingOccupancySensorTypeAttributeInteractionInfo); + Map readOccupancySensingOccupancySensorTypeBitmapCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingOccupancySensorTypeBitmapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readOccupancySensorTypeBitmapAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingOccupancySensorTypeBitmapCommandParams + ); + result.put("readOccupancySensorTypeBitmapAttribute", readOccupancySensingOccupancySensorTypeBitmapAttributeInteractionInfo); + Map readOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readPIROccupiedToUnoccupiedDelayAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams + ); + result.put("readPIROccupiedToUnoccupiedDelayAttribute", readOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo); + Map readOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readPIRUnoccupiedToOccupiedDelayAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams + ); + result.put("readPIRUnoccupiedToOccupiedDelayAttribute", readOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo); + Map readOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readPIRUnoccupiedToOccupiedThresholdAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams + ); + result.put("readPIRUnoccupiedToOccupiedThresholdAttribute", readOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo); + Map readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readUltrasonicOccupiedToUnoccupiedDelayAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams + ); + result.put("readUltrasonicOccupiedToUnoccupiedDelayAttribute", readOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo); + Map readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readUltrasonicUnoccupiedToOccupiedDelayAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams + ); + result.put("readUltrasonicUnoccupiedToOccupiedDelayAttribute", readOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo); + Map readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readUltrasonicUnoccupiedToOccupiedThresholdAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams + ); + result.put("readUltrasonicUnoccupiedToOccupiedThresholdAttribute", readOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo); + Map readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readPhysicalContactOccupiedToUnoccupiedDelayAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams + ); + result.put("readPhysicalContactOccupiedToUnoccupiedDelayAttribute", readOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo); + Map readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readPhysicalContactUnoccupiedToOccupiedDelayAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams + ); + result.put("readPhysicalContactUnoccupiedToOccupiedDelayAttribute", readOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo); + Map readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readPhysicalContactUnoccupiedToOccupiedThresholdAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams + ); + result.put("readPhysicalContactUnoccupiedToOccupiedThresholdAttribute", readOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo); + Map readOccupancySensingGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.OccupancySensingCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOccupancySensingClusterGeneratedCommandListAttributeCallback(), + readOccupancySensingGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readOccupancySensingGeneratedCommandListAttributeInteractionInfo); + Map readOccupancySensingAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.OccupancySensingCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOccupancySensingClusterAcceptedCommandListAttributeCallback(), + readOccupancySensingAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readOccupancySensingAcceptedCommandListAttributeInteractionInfo); + Map readOccupancySensingEventListCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readEventListAttribute( + (ChipClusters.OccupancySensingCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOccupancySensingClusterEventListAttributeCallback(), + readOccupancySensingEventListCommandParams + ); + result.put("readEventListAttribute", readOccupancySensingEventListAttributeInteractionInfo); + Map readOccupancySensingAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readAttributeListAttribute( + (ChipClusters.OccupancySensingCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOccupancySensingClusterAttributeListAttributeCallback(), + readOccupancySensingAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readOccupancySensingAttributeListAttributeInteractionInfo); + Map readOccupancySensingFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readOccupancySensingFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readOccupancySensingFeatureMapAttributeInteractionInfo); + Map readOccupancySensingClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readOccupancySensingClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readOccupancySensingClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readOccupancySensingClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readWakeOnLanInteractionInfo() { + Map result = new LinkedHashMap<>();Map readWakeOnLanMACAddressCommandParams = new LinkedHashMap(); + InteractionInfo readWakeOnLanMACAddressAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster).readMACAddressAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readWakeOnLanMACAddressCommandParams + ); + result.put("readMACAddressAttribute", readWakeOnLanMACAddressAttributeInteractionInfo); + Map readWakeOnLanGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWakeOnLanGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.WakeOnLanCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWakeOnLanClusterGeneratedCommandListAttributeCallback(), + readWakeOnLanGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readWakeOnLanGeneratedCommandListAttributeInteractionInfo); + Map readWakeOnLanAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readWakeOnLanAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.WakeOnLanCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWakeOnLanClusterAcceptedCommandListAttributeCallback(), + readWakeOnLanAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readWakeOnLanAcceptedCommandListAttributeInteractionInfo); + Map readWakeOnLanEventListCommandParams = new LinkedHashMap(); + InteractionInfo readWakeOnLanEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster).readEventListAttribute( + (ChipClusters.WakeOnLanCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWakeOnLanClusterEventListAttributeCallback(), + readWakeOnLanEventListCommandParams + ); + result.put("readEventListAttribute", readWakeOnLanEventListAttributeInteractionInfo); + Map readWakeOnLanAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readWakeOnLanAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster).readAttributeListAttribute( + (ChipClusters.WakeOnLanCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedWakeOnLanClusterAttributeListAttributeCallback(), + readWakeOnLanAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readWakeOnLanAttributeListAttributeInteractionInfo); + Map readWakeOnLanFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readWakeOnLanFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readWakeOnLanFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readWakeOnLanFeatureMapAttributeInteractionInfo); + Map readWakeOnLanClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readWakeOnLanClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readWakeOnLanClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readWakeOnLanClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readChannelInteractionInfo() { + Map result = new LinkedHashMap<>();Map readChannelChannelListCommandParams = new LinkedHashMap(); + InteractionInfo readChannelChannelListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ChannelCluster) cluster).readChannelListAttribute( + (ChipClusters.ChannelCluster.ChannelListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedChannelClusterChannelListAttributeCallback(), + readChannelChannelListCommandParams + ); + result.put("readChannelListAttribute", readChannelChannelListAttributeInteractionInfo); + Map readChannelGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readChannelGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ChannelCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ChannelCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedChannelClusterGeneratedCommandListAttributeCallback(), + readChannelGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readChannelGeneratedCommandListAttributeInteractionInfo); + Map readChannelAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readChannelAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ChannelCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ChannelCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedChannelClusterAcceptedCommandListAttributeCallback(), + readChannelAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readChannelAcceptedCommandListAttributeInteractionInfo); + Map readChannelEventListCommandParams = new LinkedHashMap(); + InteractionInfo readChannelEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ChannelCluster) cluster).readEventListAttribute( + (ChipClusters.ChannelCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedChannelClusterEventListAttributeCallback(), + readChannelEventListCommandParams + ); + result.put("readEventListAttribute", readChannelEventListAttributeInteractionInfo); + Map readChannelAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readChannelAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ChannelCluster) cluster).readAttributeListAttribute( + (ChipClusters.ChannelCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedChannelClusterAttributeListAttributeCallback(), + readChannelAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readChannelAttributeListAttributeInteractionInfo); + Map readChannelFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readChannelFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ChannelCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readChannelFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readChannelFeatureMapAttributeInteractionInfo); + Map readChannelClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readChannelClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ChannelCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readChannelClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readChannelClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readTargetNavigatorInteractionInfo() { + Map result = new LinkedHashMap<>();Map readTargetNavigatorTargetListCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorTargetListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readTargetListAttribute( + (ChipClusters.TargetNavigatorCluster.TargetListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTargetNavigatorClusterTargetListAttributeCallback(), + readTargetNavigatorTargetListCommandParams + ); + result.put("readTargetListAttribute", readTargetNavigatorTargetListAttributeInteractionInfo); + Map readTargetNavigatorCurrentTargetCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorCurrentTargetAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readCurrentTargetAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTargetNavigatorCurrentTargetCommandParams + ); + result.put("readCurrentTargetAttribute", readTargetNavigatorCurrentTargetAttributeInteractionInfo); + Map readTargetNavigatorGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.TargetNavigatorCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTargetNavigatorClusterGeneratedCommandListAttributeCallback(), + readTargetNavigatorGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readTargetNavigatorGeneratedCommandListAttributeInteractionInfo); + Map readTargetNavigatorAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.TargetNavigatorCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTargetNavigatorClusterAcceptedCommandListAttributeCallback(), + readTargetNavigatorAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readTargetNavigatorAcceptedCommandListAttributeInteractionInfo); + Map readTargetNavigatorEventListCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readEventListAttribute( + (ChipClusters.TargetNavigatorCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTargetNavigatorClusterEventListAttributeCallback(), + readTargetNavigatorEventListCommandParams + ); + result.put("readEventListAttribute", readTargetNavigatorEventListAttributeInteractionInfo); + Map readTargetNavigatorAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readAttributeListAttribute( + (ChipClusters.TargetNavigatorCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedTargetNavigatorClusterAttributeListAttributeCallback(), + readTargetNavigatorAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readTargetNavigatorAttributeListAttributeInteractionInfo); + Map readTargetNavigatorFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readTargetNavigatorFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readTargetNavigatorFeatureMapAttributeInteractionInfo); + Map readTargetNavigatorClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readTargetNavigatorClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readTargetNavigatorClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readTargetNavigatorClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readMediaPlaybackInteractionInfo() { + Map result = new LinkedHashMap<>();Map readMediaPlaybackCurrentStateCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackCurrentStateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readCurrentStateAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readMediaPlaybackCurrentStateCommandParams + ); + result.put("readCurrentStateAttribute", readMediaPlaybackCurrentStateAttributeInteractionInfo); + Map readMediaPlaybackStartTimeCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackStartTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readStartTimeAttribute( + (ChipClusters.MediaPlaybackCluster.StartTimeAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterStartTimeAttributeCallback(), + readMediaPlaybackStartTimeCommandParams + ); + result.put("readStartTimeAttribute", readMediaPlaybackStartTimeAttributeInteractionInfo); + Map readMediaPlaybackDurationCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackDurationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readDurationAttribute( + (ChipClusters.MediaPlaybackCluster.DurationAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterDurationAttributeCallback(), + readMediaPlaybackDurationCommandParams + ); + result.put("readDurationAttribute", readMediaPlaybackDurationAttributeInteractionInfo); + Map readMediaPlaybackPlaybackSpeedCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackPlaybackSpeedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readPlaybackSpeedAttribute( + (ChipClusters.FloatAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFloatAttributeCallback(), + readMediaPlaybackPlaybackSpeedCommandParams + ); + result.put("readPlaybackSpeedAttribute", readMediaPlaybackPlaybackSpeedAttributeInteractionInfo); + Map readMediaPlaybackSeekRangeEndCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackSeekRangeEndAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readSeekRangeEndAttribute( + (ChipClusters.MediaPlaybackCluster.SeekRangeEndAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterSeekRangeEndAttributeCallback(), + readMediaPlaybackSeekRangeEndCommandParams + ); + result.put("readSeekRangeEndAttribute", readMediaPlaybackSeekRangeEndAttributeInteractionInfo); + Map readMediaPlaybackSeekRangeStartCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackSeekRangeStartAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readSeekRangeStartAttribute( + (ChipClusters.MediaPlaybackCluster.SeekRangeStartAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterSeekRangeStartAttributeCallback(), + readMediaPlaybackSeekRangeStartCommandParams + ); + result.put("readSeekRangeStartAttribute", readMediaPlaybackSeekRangeStartAttributeInteractionInfo); + Map readMediaPlaybackGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.MediaPlaybackCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterGeneratedCommandListAttributeCallback(), + readMediaPlaybackGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readMediaPlaybackGeneratedCommandListAttributeInteractionInfo); + Map readMediaPlaybackAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.MediaPlaybackCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterAcceptedCommandListAttributeCallback(), + readMediaPlaybackAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readMediaPlaybackAcceptedCommandListAttributeInteractionInfo); + Map readMediaPlaybackEventListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readEventListAttribute( + (ChipClusters.MediaPlaybackCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterEventListAttributeCallback(), + readMediaPlaybackEventListCommandParams + ); + result.put("readEventListAttribute", readMediaPlaybackEventListAttributeInteractionInfo); + Map readMediaPlaybackAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readAttributeListAttribute( + (ChipClusters.MediaPlaybackCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaPlaybackClusterAttributeListAttributeCallback(), + readMediaPlaybackAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readMediaPlaybackAttributeListAttributeInteractionInfo); + Map readMediaPlaybackFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readMediaPlaybackFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readMediaPlaybackFeatureMapAttributeInteractionInfo); + Map readMediaPlaybackClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readMediaPlaybackClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readMediaPlaybackClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readMediaPlaybackClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readMediaInputInteractionInfo() { + Map result = new LinkedHashMap<>();Map readMediaInputInputListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputInputListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readInputListAttribute( + (ChipClusters.MediaInputCluster.InputListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaInputClusterInputListAttributeCallback(), + readMediaInputInputListCommandParams + ); + result.put("readInputListAttribute", readMediaInputInputListAttributeInteractionInfo); + Map readMediaInputCurrentInputCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputCurrentInputAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readCurrentInputAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readMediaInputCurrentInputCommandParams + ); + result.put("readCurrentInputAttribute", readMediaInputCurrentInputAttributeInteractionInfo); + Map readMediaInputGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.MediaInputCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaInputClusterGeneratedCommandListAttributeCallback(), + readMediaInputGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readMediaInputGeneratedCommandListAttributeInteractionInfo); + Map readMediaInputAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.MediaInputCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaInputClusterAcceptedCommandListAttributeCallback(), + readMediaInputAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readMediaInputAcceptedCommandListAttributeInteractionInfo); + Map readMediaInputEventListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readEventListAttribute( + (ChipClusters.MediaInputCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaInputClusterEventListAttributeCallback(), + readMediaInputEventListCommandParams + ); + result.put("readEventListAttribute", readMediaInputEventListAttributeInteractionInfo); + Map readMediaInputAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readAttributeListAttribute( + (ChipClusters.MediaInputCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedMediaInputClusterAttributeListAttributeCallback(), + readMediaInputAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readMediaInputAttributeListAttributeInteractionInfo); + Map readMediaInputFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readMediaInputFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readMediaInputFeatureMapAttributeInteractionInfo); + Map readMediaInputClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readMediaInputClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readMediaInputClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readMediaInputClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readLowPowerInteractionInfo() { + Map result = new LinkedHashMap<>();Map readLowPowerGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readLowPowerGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LowPowerCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.LowPowerCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLowPowerClusterGeneratedCommandListAttributeCallback(), + readLowPowerGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readLowPowerGeneratedCommandListAttributeInteractionInfo); + Map readLowPowerAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readLowPowerAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LowPowerCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.LowPowerCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLowPowerClusterAcceptedCommandListAttributeCallback(), + readLowPowerAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readLowPowerAcceptedCommandListAttributeInteractionInfo); + Map readLowPowerEventListCommandParams = new LinkedHashMap(); + InteractionInfo readLowPowerEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LowPowerCluster) cluster).readEventListAttribute( + (ChipClusters.LowPowerCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLowPowerClusterEventListAttributeCallback(), + readLowPowerEventListCommandParams + ); + result.put("readEventListAttribute", readLowPowerEventListAttributeInteractionInfo); + Map readLowPowerAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readLowPowerAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LowPowerCluster) cluster).readAttributeListAttribute( + (ChipClusters.LowPowerCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLowPowerClusterAttributeListAttributeCallback(), + readLowPowerAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readLowPowerAttributeListAttributeInteractionInfo); + Map readLowPowerFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readLowPowerFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LowPowerCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readLowPowerFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readLowPowerFeatureMapAttributeInteractionInfo); + Map readLowPowerClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readLowPowerClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LowPowerCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readLowPowerClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readLowPowerClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readKeypadInputInteractionInfo() { + Map result = new LinkedHashMap<>();Map readKeypadInputGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readKeypadInputGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.KeypadInputCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.KeypadInputCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedKeypadInputClusterGeneratedCommandListAttributeCallback(), + readKeypadInputGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readKeypadInputGeneratedCommandListAttributeInteractionInfo); + Map readKeypadInputAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readKeypadInputAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.KeypadInputCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.KeypadInputCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedKeypadInputClusterAcceptedCommandListAttributeCallback(), + readKeypadInputAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readKeypadInputAcceptedCommandListAttributeInteractionInfo); + Map readKeypadInputEventListCommandParams = new LinkedHashMap(); + InteractionInfo readKeypadInputEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.KeypadInputCluster) cluster).readEventListAttribute( + (ChipClusters.KeypadInputCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedKeypadInputClusterEventListAttributeCallback(), + readKeypadInputEventListCommandParams + ); + result.put("readEventListAttribute", readKeypadInputEventListAttributeInteractionInfo); + Map readKeypadInputAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readKeypadInputAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.KeypadInputCluster) cluster).readAttributeListAttribute( + (ChipClusters.KeypadInputCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedKeypadInputClusterAttributeListAttributeCallback(), + readKeypadInputAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readKeypadInputAttributeListAttributeInteractionInfo); + Map readKeypadInputFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readKeypadInputFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.KeypadInputCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readKeypadInputFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readKeypadInputFeatureMapAttributeInteractionInfo); + Map readKeypadInputClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readKeypadInputClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.KeypadInputCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readKeypadInputClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readKeypadInputClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readContentLauncherInteractionInfo() { + Map result = new LinkedHashMap<>();Map readContentLauncherAcceptHeaderCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherAcceptHeaderAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readAcceptHeaderAttribute( + (ChipClusters.ContentLauncherCluster.AcceptHeaderAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedContentLauncherClusterAcceptHeaderAttributeCallback(), + readContentLauncherAcceptHeaderCommandParams + ); + result.put("readAcceptHeaderAttribute", readContentLauncherAcceptHeaderAttributeInteractionInfo); + Map readContentLauncherSupportedStreamingProtocolsCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readSupportedStreamingProtocolsAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readContentLauncherSupportedStreamingProtocolsCommandParams + ); + result.put("readSupportedStreamingProtocolsAttribute", readContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo); + Map readContentLauncherGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ContentLauncherCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedContentLauncherClusterGeneratedCommandListAttributeCallback(), + readContentLauncherGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readContentLauncherGeneratedCommandListAttributeInteractionInfo); + Map readContentLauncherAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ContentLauncherCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedContentLauncherClusterAcceptedCommandListAttributeCallback(), + readContentLauncherAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readContentLauncherAcceptedCommandListAttributeInteractionInfo); + Map readContentLauncherEventListCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readEventListAttribute( + (ChipClusters.ContentLauncherCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedContentLauncherClusterEventListAttributeCallback(), + readContentLauncherEventListCommandParams + ); + result.put("readEventListAttribute", readContentLauncherEventListAttributeInteractionInfo); + Map readContentLauncherAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readAttributeListAttribute( + (ChipClusters.ContentLauncherCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedContentLauncherClusterAttributeListAttributeCallback(), + readContentLauncherAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readContentLauncherAttributeListAttributeInteractionInfo); + Map readContentLauncherFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readContentLauncherFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readContentLauncherFeatureMapAttributeInteractionInfo); + Map readContentLauncherClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readContentLauncherClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readContentLauncherClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readContentLauncherClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readAudioOutputInteractionInfo() { + Map result = new LinkedHashMap<>();Map readAudioOutputOutputListCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputOutputListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readOutputListAttribute( + (ChipClusters.AudioOutputCluster.OutputListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAudioOutputClusterOutputListAttributeCallback(), + readAudioOutputOutputListCommandParams + ); + result.put("readOutputListAttribute", readAudioOutputOutputListAttributeInteractionInfo); + Map readAudioOutputCurrentOutputCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputCurrentOutputAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readCurrentOutputAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAudioOutputCurrentOutputCommandParams + ); + result.put("readCurrentOutputAttribute", readAudioOutputCurrentOutputAttributeInteractionInfo); + Map readAudioOutputGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.AudioOutputCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAudioOutputClusterGeneratedCommandListAttributeCallback(), + readAudioOutputGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readAudioOutputGeneratedCommandListAttributeInteractionInfo); + Map readAudioOutputAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.AudioOutputCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAudioOutputClusterAcceptedCommandListAttributeCallback(), + readAudioOutputAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readAudioOutputAcceptedCommandListAttributeInteractionInfo); + Map readAudioOutputEventListCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readEventListAttribute( + (ChipClusters.AudioOutputCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAudioOutputClusterEventListAttributeCallback(), + readAudioOutputEventListCommandParams + ); + result.put("readEventListAttribute", readAudioOutputEventListAttributeInteractionInfo); + Map readAudioOutputAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readAttributeListAttribute( + (ChipClusters.AudioOutputCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAudioOutputClusterAttributeListAttributeCallback(), + readAudioOutputAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readAudioOutputAttributeListAttributeInteractionInfo); + Map readAudioOutputFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readAudioOutputFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readAudioOutputFeatureMapAttributeInteractionInfo); + Map readAudioOutputClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readAudioOutputClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAudioOutputClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readAudioOutputClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readApplicationLauncherInteractionInfo() { + Map result = new LinkedHashMap<>();Map readApplicationLauncherCatalogListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationLauncherCatalogListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster).readCatalogListAttribute( + (ChipClusters.ApplicationLauncherCluster.CatalogListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationLauncherClusterCatalogListAttributeCallback(), + readApplicationLauncherCatalogListCommandParams + ); + result.put("readCatalogListAttribute", readApplicationLauncherCatalogListAttributeInteractionInfo); + Map readApplicationLauncherGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationLauncherGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ApplicationLauncherCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationLauncherClusterGeneratedCommandListAttributeCallback(), + readApplicationLauncherGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readApplicationLauncherGeneratedCommandListAttributeInteractionInfo); + Map readApplicationLauncherAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationLauncherAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ApplicationLauncherCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationLauncherClusterAcceptedCommandListAttributeCallback(), + readApplicationLauncherAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readApplicationLauncherAcceptedCommandListAttributeInteractionInfo); + Map readApplicationLauncherEventListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationLauncherEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster).readEventListAttribute( + (ChipClusters.ApplicationLauncherCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationLauncherClusterEventListAttributeCallback(), + readApplicationLauncherEventListCommandParams + ); + result.put("readEventListAttribute", readApplicationLauncherEventListAttributeInteractionInfo); + Map readApplicationLauncherAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationLauncherAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster).readAttributeListAttribute( + (ChipClusters.ApplicationLauncherCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationLauncherClusterAttributeListAttributeCallback(), + readApplicationLauncherAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readApplicationLauncherAttributeListAttributeInteractionInfo); + Map readApplicationLauncherFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationLauncherFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readApplicationLauncherFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readApplicationLauncherFeatureMapAttributeInteractionInfo); + Map readApplicationLauncherClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationLauncherClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readApplicationLauncherClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readApplicationLauncherClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readApplicationBasicInteractionInfo() { + Map result = new LinkedHashMap<>();Map readApplicationBasicVendorNameCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicVendorNameAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readVendorNameAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readApplicationBasicVendorNameCommandParams + ); + result.put("readVendorNameAttribute", readApplicationBasicVendorNameAttributeInteractionInfo); + Map readApplicationBasicVendorIDCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicVendorIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readVendorIDAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readApplicationBasicVendorIDCommandParams + ); + result.put("readVendorIDAttribute", readApplicationBasicVendorIDAttributeInteractionInfo); + Map readApplicationBasicApplicationNameCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicApplicationNameAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readApplicationNameAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readApplicationBasicApplicationNameCommandParams + ); + result.put("readApplicationNameAttribute", readApplicationBasicApplicationNameAttributeInteractionInfo); + Map readApplicationBasicProductIDCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicProductIDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readProductIDAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readApplicationBasicProductIDCommandParams + ); + result.put("readProductIDAttribute", readApplicationBasicProductIDAttributeInteractionInfo); + Map readApplicationBasicStatusCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicStatusAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readStatusAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readApplicationBasicStatusCommandParams + ); + result.put("readStatusAttribute", readApplicationBasicStatusAttributeInteractionInfo); + Map readApplicationBasicApplicationVersionCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicApplicationVersionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readApplicationVersionAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readApplicationBasicApplicationVersionCommandParams + ); + result.put("readApplicationVersionAttribute", readApplicationBasicApplicationVersionAttributeInteractionInfo); + Map readApplicationBasicAllowedVendorListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicAllowedVendorListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readAllowedVendorListAttribute( + (ChipClusters.ApplicationBasicCluster.AllowedVendorListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationBasicClusterAllowedVendorListAttributeCallback(), + readApplicationBasicAllowedVendorListCommandParams + ); + result.put("readAllowedVendorListAttribute", readApplicationBasicAllowedVendorListAttributeInteractionInfo); + Map readApplicationBasicGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ApplicationBasicCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationBasicClusterGeneratedCommandListAttributeCallback(), + readApplicationBasicGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readApplicationBasicGeneratedCommandListAttributeInteractionInfo); + Map readApplicationBasicAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ApplicationBasicCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationBasicClusterAcceptedCommandListAttributeCallback(), + readApplicationBasicAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readApplicationBasicAcceptedCommandListAttributeInteractionInfo); + Map readApplicationBasicEventListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readEventListAttribute( + (ChipClusters.ApplicationBasicCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationBasicClusterEventListAttributeCallback(), + readApplicationBasicEventListCommandParams + ); + result.put("readEventListAttribute", readApplicationBasicEventListAttributeInteractionInfo); + Map readApplicationBasicAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readAttributeListAttribute( + (ChipClusters.ApplicationBasicCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedApplicationBasicClusterAttributeListAttributeCallback(), + readApplicationBasicAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readApplicationBasicAttributeListAttributeInteractionInfo); + Map readApplicationBasicFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readApplicationBasicFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readApplicationBasicFeatureMapAttributeInteractionInfo); + Map readApplicationBasicClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readApplicationBasicClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readApplicationBasicClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readApplicationBasicClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readAccountLoginInteractionInfo() { + Map result = new LinkedHashMap<>();Map readAccountLoginGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAccountLoginGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccountLoginCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.AccountLoginCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccountLoginClusterGeneratedCommandListAttributeCallback(), + readAccountLoginGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readAccountLoginGeneratedCommandListAttributeInteractionInfo); + Map readAccountLoginAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readAccountLoginAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccountLoginCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.AccountLoginCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccountLoginClusterAcceptedCommandListAttributeCallback(), + readAccountLoginAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readAccountLoginAcceptedCommandListAttributeInteractionInfo); + Map readAccountLoginEventListCommandParams = new LinkedHashMap(); + InteractionInfo readAccountLoginEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccountLoginCluster) cluster).readEventListAttribute( + (ChipClusters.AccountLoginCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccountLoginClusterEventListAttributeCallback(), + readAccountLoginEventListCommandParams + ); + result.put("readEventListAttribute", readAccountLoginEventListAttributeInteractionInfo); + Map readAccountLoginAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readAccountLoginAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccountLoginCluster) cluster).readAttributeListAttribute( + (ChipClusters.AccountLoginCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedAccountLoginClusterAttributeListAttributeCallback(), + readAccountLoginAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readAccountLoginAttributeListAttributeInteractionInfo); + Map readAccountLoginFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readAccountLoginFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccountLoginCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readAccountLoginFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readAccountLoginFeatureMapAttributeInteractionInfo); + Map readAccountLoginClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readAccountLoginClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccountLoginCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readAccountLoginClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readAccountLoginClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readElectricalMeasurementInteractionInfo() { + Map result = new LinkedHashMap<>();Map readElectricalMeasurementMeasurementTypeCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasurementTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasurementTypeAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectricalMeasurementMeasurementTypeCommandParams + ); + result.put("readMeasurementTypeAttribute", readElectricalMeasurementMeasurementTypeAttributeInteractionInfo); + Map readElectricalMeasurementDcVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcVoltageAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcVoltageCommandParams + ); + result.put("readDcVoltageAttribute", readElectricalMeasurementDcVoltageAttributeInteractionInfo); + Map readElectricalMeasurementDcVoltageMinCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcVoltageMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcVoltageMinAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcVoltageMinCommandParams + ); + result.put("readDcVoltageMinAttribute", readElectricalMeasurementDcVoltageMinAttributeInteractionInfo); + Map readElectricalMeasurementDcVoltageMaxCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcVoltageMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcVoltageMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcVoltageMaxCommandParams + ); + result.put("readDcVoltageMaxAttribute", readElectricalMeasurementDcVoltageMaxAttributeInteractionInfo); + Map readElectricalMeasurementDcCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcCurrentCommandParams + ); + result.put("readDcCurrentAttribute", readElectricalMeasurementDcCurrentAttributeInteractionInfo); + Map readElectricalMeasurementDcCurrentMinCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcCurrentMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcCurrentMinAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcCurrentMinCommandParams + ); + result.put("readDcCurrentMinAttribute", readElectricalMeasurementDcCurrentMinAttributeInteractionInfo); + Map readElectricalMeasurementDcCurrentMaxCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcCurrentMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcCurrentMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcCurrentMaxCommandParams + ); + result.put("readDcCurrentMaxAttribute", readElectricalMeasurementDcCurrentMaxAttributeInteractionInfo); + Map readElectricalMeasurementDcPowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcPowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcPowerAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcPowerCommandParams + ); + result.put("readDcPowerAttribute", readElectricalMeasurementDcPowerAttributeInteractionInfo); + Map readElectricalMeasurementDcPowerMinCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcPowerMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcPowerMinAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcPowerMinCommandParams + ); + result.put("readDcPowerMinAttribute", readElectricalMeasurementDcPowerMinAttributeInteractionInfo); + Map readElectricalMeasurementDcPowerMaxCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcPowerMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcPowerMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcPowerMaxCommandParams + ); + result.put("readDcPowerMaxAttribute", readElectricalMeasurementDcPowerMaxAttributeInteractionInfo); + Map readElectricalMeasurementDcVoltageMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcVoltageMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcVoltageMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcVoltageMultiplierCommandParams + ); + result.put("readDcVoltageMultiplierAttribute", readElectricalMeasurementDcVoltageMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementDcVoltageDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcVoltageDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcVoltageDivisorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcVoltageDivisorCommandParams + ); + result.put("readDcVoltageDivisorAttribute", readElectricalMeasurementDcVoltageDivisorAttributeInteractionInfo); + Map readElectricalMeasurementDcCurrentMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcCurrentMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcCurrentMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcCurrentMultiplierCommandParams + ); + result.put("readDcCurrentMultiplierAttribute", readElectricalMeasurementDcCurrentMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementDcCurrentDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcCurrentDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcCurrentDivisorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcCurrentDivisorCommandParams + ); + result.put("readDcCurrentDivisorAttribute", readElectricalMeasurementDcCurrentDivisorAttributeInteractionInfo); + Map readElectricalMeasurementDcPowerMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcPowerMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcPowerMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcPowerMultiplierCommandParams + ); + result.put("readDcPowerMultiplierAttribute", readElectricalMeasurementDcPowerMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementDcPowerDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementDcPowerDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readDcPowerDivisorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementDcPowerDivisorCommandParams + ); + result.put("readDcPowerDivisorAttribute", readElectricalMeasurementDcPowerDivisorAttributeInteractionInfo); + Map readElectricalMeasurementAcFrequencyCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcFrequencyAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcFrequencyAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcFrequencyCommandParams + ); + result.put("readAcFrequencyAttribute", readElectricalMeasurementAcFrequencyAttributeInteractionInfo); + Map readElectricalMeasurementAcFrequencyMinCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcFrequencyMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcFrequencyMinAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcFrequencyMinCommandParams + ); + result.put("readAcFrequencyMinAttribute", readElectricalMeasurementAcFrequencyMinAttributeInteractionInfo); + Map readElectricalMeasurementAcFrequencyMaxCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcFrequencyMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcFrequencyMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcFrequencyMaxCommandParams + ); + result.put("readAcFrequencyMaxAttribute", readElectricalMeasurementAcFrequencyMaxAttributeInteractionInfo); + Map readElectricalMeasurementNeutralCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementNeutralCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readNeutralCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementNeutralCurrentCommandParams + ); + result.put("readNeutralCurrentAttribute", readElectricalMeasurementNeutralCurrentAttributeInteractionInfo); + Map readElectricalMeasurementTotalActivePowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementTotalActivePowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readTotalActivePowerAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectricalMeasurementTotalActivePowerCommandParams + ); + result.put("readTotalActivePowerAttribute", readElectricalMeasurementTotalActivePowerAttributeInteractionInfo); + Map readElectricalMeasurementTotalReactivePowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementTotalReactivePowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readTotalReactivePowerAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectricalMeasurementTotalReactivePowerCommandParams + ); + result.put("readTotalReactivePowerAttribute", readElectricalMeasurementTotalReactivePowerAttributeInteractionInfo); + Map readElectricalMeasurementTotalApparentPowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementTotalApparentPowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readTotalApparentPowerAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectricalMeasurementTotalApparentPowerCommandParams + ); + result.put("readTotalApparentPowerAttribute", readElectricalMeasurementTotalApparentPowerAttributeInteractionInfo); + Map readElectricalMeasurementMeasured1stHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasured1stHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasured1stHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasured1stHarmonicCurrentCommandParams + ); + result.put("readMeasured1stHarmonicCurrentAttribute", readElectricalMeasurementMeasured1stHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasured3rdHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasured3rdHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasured3rdHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasured3rdHarmonicCurrentCommandParams + ); + result.put("readMeasured3rdHarmonicCurrentAttribute", readElectricalMeasurementMeasured3rdHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasured5thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasured5thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasured5thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasured5thHarmonicCurrentCommandParams + ); + result.put("readMeasured5thHarmonicCurrentAttribute", readElectricalMeasurementMeasured5thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasured7thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasured7thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasured7thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasured7thHarmonicCurrentCommandParams + ); + result.put("readMeasured7thHarmonicCurrentAttribute", readElectricalMeasurementMeasured7thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasured9thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasured9thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasured9thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasured9thHarmonicCurrentCommandParams + ); + result.put("readMeasured9thHarmonicCurrentAttribute", readElectricalMeasurementMeasured9thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasured11thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasured11thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasured11thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasured11thHarmonicCurrentCommandParams + ); + result.put("readMeasured11thHarmonicCurrentAttribute", readElectricalMeasurementMeasured11thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasuredPhase1stHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasuredPhase1stHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasuredPhase1stHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasuredPhase1stHarmonicCurrentCommandParams + ); + result.put("readMeasuredPhase1stHarmonicCurrentAttribute", readElectricalMeasurementMeasuredPhase1stHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasuredPhase3rdHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentCommandParams + ); + result.put("readMeasuredPhase3rdHarmonicCurrentAttribute", readElectricalMeasurementMeasuredPhase3rdHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasuredPhase5thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasuredPhase5thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasuredPhase5thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasuredPhase5thHarmonicCurrentCommandParams + ); + result.put("readMeasuredPhase5thHarmonicCurrentAttribute", readElectricalMeasurementMeasuredPhase5thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasuredPhase7thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasuredPhase7thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasuredPhase7thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasuredPhase7thHarmonicCurrentCommandParams + ); + result.put("readMeasuredPhase7thHarmonicCurrentAttribute", readElectricalMeasurementMeasuredPhase7thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasuredPhase9thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasuredPhase9thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasuredPhase9thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasuredPhase9thHarmonicCurrentCommandParams + ); + result.put("readMeasuredPhase9thHarmonicCurrentAttribute", readElectricalMeasurementMeasuredPhase9thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementMeasuredPhase11thHarmonicCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementMeasuredPhase11thHarmonicCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readMeasuredPhase11thHarmonicCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementMeasuredPhase11thHarmonicCurrentCommandParams + ); + result.put("readMeasuredPhase11thHarmonicCurrentAttribute", readElectricalMeasurementMeasuredPhase11thHarmonicCurrentAttributeInteractionInfo); + Map readElectricalMeasurementAcFrequencyMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcFrequencyMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcFrequencyMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcFrequencyMultiplierCommandParams + ); + result.put("readAcFrequencyMultiplierAttribute", readElectricalMeasurementAcFrequencyMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementAcFrequencyDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcFrequencyDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcFrequencyDivisorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcFrequencyDivisorCommandParams + ); + result.put("readAcFrequencyDivisorAttribute", readElectricalMeasurementAcFrequencyDivisorAttributeInteractionInfo); + Map readElectricalMeasurementPowerMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementPowerMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readPowerMultiplierAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectricalMeasurementPowerMultiplierCommandParams + ); + result.put("readPowerMultiplierAttribute", readElectricalMeasurementPowerMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementPowerDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementPowerDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readPowerDivisorAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectricalMeasurementPowerDivisorCommandParams + ); + result.put("readPowerDivisorAttribute", readElectricalMeasurementPowerDivisorAttributeInteractionInfo); + Map readElectricalMeasurementHarmonicCurrentMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementHarmonicCurrentMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readHarmonicCurrentMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementHarmonicCurrentMultiplierCommandParams + ); + result.put("readHarmonicCurrentMultiplierAttribute", readElectricalMeasurementHarmonicCurrentMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementPhaseHarmonicCurrentMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementPhaseHarmonicCurrentMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readPhaseHarmonicCurrentMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementPhaseHarmonicCurrentMultiplierCommandParams + ); + result.put("readPhaseHarmonicCurrentMultiplierAttribute", readElectricalMeasurementPhaseHarmonicCurrentMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementInstantaneousVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementInstantaneousVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readInstantaneousVoltageAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementInstantaneousVoltageCommandParams + ); + result.put("readInstantaneousVoltageAttribute", readElectricalMeasurementInstantaneousVoltageAttributeInteractionInfo); + Map readElectricalMeasurementInstantaneousLineCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementInstantaneousLineCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readInstantaneousLineCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementInstantaneousLineCurrentCommandParams + ); + result.put("readInstantaneousLineCurrentAttribute", readElectricalMeasurementInstantaneousLineCurrentAttributeInteractionInfo); + Map readElectricalMeasurementInstantaneousActiveCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementInstantaneousActiveCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readInstantaneousActiveCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementInstantaneousActiveCurrentCommandParams + ); + result.put("readInstantaneousActiveCurrentAttribute", readElectricalMeasurementInstantaneousActiveCurrentAttributeInteractionInfo); + Map readElectricalMeasurementInstantaneousReactiveCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementInstantaneousReactiveCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readInstantaneousReactiveCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementInstantaneousReactiveCurrentCommandParams + ); + result.put("readInstantaneousReactiveCurrentAttribute", readElectricalMeasurementInstantaneousReactiveCurrentAttributeInteractionInfo); + Map readElectricalMeasurementInstantaneousPowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementInstantaneousPowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readInstantaneousPowerAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementInstantaneousPowerCommandParams + ); + result.put("readInstantaneousPowerAttribute", readElectricalMeasurementInstantaneousPowerAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageCommandParams + ); + result.put("readRmsVoltageAttribute", readElectricalMeasurementRmsVoltageAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageMinCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageMinAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageMinCommandParams + ); + result.put("readRmsVoltageMinAttribute", readElectricalMeasurementRmsVoltageMinAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageMaxCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageMaxCommandParams + ); + result.put("readRmsVoltageMaxAttribute", readElectricalMeasurementRmsVoltageMaxAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentCommandParams + ); + result.put("readRmsCurrentAttribute", readElectricalMeasurementRmsCurrentAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentMinCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentMinAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentMinCommandParams + ); + result.put("readRmsCurrentMinAttribute", readElectricalMeasurementRmsCurrentMinAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentMaxCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentMaxCommandParams + ); + result.put("readRmsCurrentMaxAttribute", readElectricalMeasurementRmsCurrentMaxAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerCommandParams + ); + result.put("readActivePowerAttribute", readElectricalMeasurementActivePowerAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerMinCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerMinAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerMinAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerMinCommandParams + ); + result.put("readActivePowerMinAttribute", readElectricalMeasurementActivePowerMinAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerMaxCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerMaxAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerMaxAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerMaxCommandParams + ); + result.put("readActivePowerMaxAttribute", readElectricalMeasurementActivePowerMaxAttributeInteractionInfo); + Map readElectricalMeasurementReactivePowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementReactivePowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readReactivePowerAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementReactivePowerCommandParams + ); + result.put("readReactivePowerAttribute", readElectricalMeasurementReactivePowerAttributeInteractionInfo); + Map readElectricalMeasurementApparentPowerCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementApparentPowerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readApparentPowerAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementApparentPowerCommandParams + ); + result.put("readApparentPowerAttribute", readElectricalMeasurementApparentPowerAttributeInteractionInfo); + Map readElectricalMeasurementPowerFactorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementPowerFactorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readPowerFactorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementPowerFactorCommandParams + ); + result.put("readPowerFactorAttribute", readElectricalMeasurementPowerFactorAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsVoltageMeasurementPeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams + ); + result.put("readAverageRmsVoltageMeasurementPeriodAttribute", readElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsUnderVoltageCounterAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams + ); + result.put("readAverageRmsUnderVoltageCounterAttribute", readElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeOverVoltagePeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams + ); + result.put("readRmsExtremeOverVoltagePeriodAttribute", readElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeUnderVoltagePeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams + ); + result.put("readRmsExtremeUnderVoltagePeriodAttribute", readElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSagPeriodCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSagPeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSagPeriodCommandParams + ); + result.put("readRmsVoltageSagPeriodAttribute", readElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSwellPeriodCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSwellPeriodAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSwellPeriodCommandParams + ); + result.put("readRmsVoltageSwellPeriodAttribute", readElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo); + Map readElectricalMeasurementAcVoltageMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcVoltageMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcVoltageMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcVoltageMultiplierCommandParams + ); + result.put("readAcVoltageMultiplierAttribute", readElectricalMeasurementAcVoltageMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementAcVoltageDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcVoltageDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcVoltageDivisorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcVoltageDivisorCommandParams + ); + result.put("readAcVoltageDivisorAttribute", readElectricalMeasurementAcVoltageDivisorAttributeInteractionInfo); + Map readElectricalMeasurementAcCurrentMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcCurrentMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcCurrentMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcCurrentMultiplierCommandParams + ); + result.put("readAcCurrentMultiplierAttribute", readElectricalMeasurementAcCurrentMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementAcCurrentDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcCurrentDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcCurrentDivisorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcCurrentDivisorCommandParams + ); + result.put("readAcCurrentDivisorAttribute", readElectricalMeasurementAcCurrentDivisorAttributeInteractionInfo); + Map readElectricalMeasurementAcPowerMultiplierCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcPowerMultiplierAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcPowerMultiplierAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcPowerMultiplierCommandParams + ); + result.put("readAcPowerMultiplierAttribute", readElectricalMeasurementAcPowerMultiplierAttributeInteractionInfo); + Map readElectricalMeasurementAcPowerDivisorCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcPowerDivisorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcPowerDivisorAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcPowerDivisorCommandParams + ); + result.put("readAcPowerDivisorAttribute", readElectricalMeasurementAcPowerDivisorAttributeInteractionInfo); + Map readElectricalMeasurementOverloadAlarmsMaskCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readOverloadAlarmsMaskAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementOverloadAlarmsMaskCommandParams + ); + result.put("readOverloadAlarmsMaskAttribute", readElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo); + Map readElectricalMeasurementVoltageOverloadCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementVoltageOverloadAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readVoltageOverloadAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementVoltageOverloadCommandParams + ); + result.put("readVoltageOverloadAttribute", readElectricalMeasurementVoltageOverloadAttributeInteractionInfo); + Map readElectricalMeasurementCurrentOverloadCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementCurrentOverloadAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readCurrentOverloadAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementCurrentOverloadCommandParams + ); + result.put("readCurrentOverloadAttribute", readElectricalMeasurementCurrentOverloadAttributeInteractionInfo); + Map readElectricalMeasurementAcOverloadAlarmsMaskCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcOverloadAlarmsMaskAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcOverloadAlarmsMaskCommandParams + ); + result.put("readAcOverloadAlarmsMaskAttribute", readElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo); + Map readElectricalMeasurementAcVoltageOverloadCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcVoltageOverloadAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcVoltageOverloadAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcVoltageOverloadCommandParams + ); + result.put("readAcVoltageOverloadAttribute", readElectricalMeasurementAcVoltageOverloadAttributeInteractionInfo); + Map readElectricalMeasurementAcCurrentOverloadCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcCurrentOverloadAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcCurrentOverloadAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcCurrentOverloadCommandParams + ); + result.put("readAcCurrentOverloadAttribute", readElectricalMeasurementAcCurrentOverloadAttributeInteractionInfo); + Map readElectricalMeasurementAcActivePowerOverloadCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcActivePowerOverloadAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcActivePowerOverloadAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcActivePowerOverloadCommandParams + ); + result.put("readAcActivePowerOverloadAttribute", readElectricalMeasurementAcActivePowerOverloadAttributeInteractionInfo); + Map readElectricalMeasurementAcReactivePowerOverloadCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcReactivePowerOverloadAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcReactivePowerOverloadAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAcReactivePowerOverloadCommandParams + ); + result.put("readAcReactivePowerOverloadAttribute", readElectricalMeasurementAcReactivePowerOverloadAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsOverVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsOverVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsOverVoltageAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsOverVoltageCommandParams + ); + result.put("readAverageRmsOverVoltageAttribute", readElectricalMeasurementAverageRmsOverVoltageAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsUnderVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsUnderVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsUnderVoltageAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsUnderVoltageCommandParams + ); + result.put("readAverageRmsUnderVoltageAttribute", readElectricalMeasurementAverageRmsUnderVoltageAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeOverVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeOverVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeOverVoltageAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeOverVoltageCommandParams + ); + result.put("readRmsExtremeOverVoltageAttribute", readElectricalMeasurementRmsExtremeOverVoltageAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeUnderVoltageCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeUnderVoltageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeUnderVoltageAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeUnderVoltageCommandParams + ); + result.put("readRmsExtremeUnderVoltageAttribute", readElectricalMeasurementRmsExtremeUnderVoltageAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSagCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSagAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSagAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSagCommandParams + ); + result.put("readRmsVoltageSagAttribute", readElectricalMeasurementRmsVoltageSagAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSwellCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSwellAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSwellAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSwellCommandParams + ); + result.put("readRmsVoltageSwellAttribute", readElectricalMeasurementRmsVoltageSwellAttributeInteractionInfo); + Map readElectricalMeasurementLineCurrentPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementLineCurrentPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readLineCurrentPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementLineCurrentPhaseBCommandParams + ); + result.put("readLineCurrentPhaseBAttribute", readElectricalMeasurementLineCurrentPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementActiveCurrentPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActiveCurrentPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActiveCurrentPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActiveCurrentPhaseBCommandParams + ); + result.put("readActiveCurrentPhaseBAttribute", readElectricalMeasurementActiveCurrentPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementReactiveCurrentPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementReactiveCurrentPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readReactiveCurrentPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementReactiveCurrentPhaseBCommandParams + ); + result.put("readReactiveCurrentPhaseBAttribute", readElectricalMeasurementReactiveCurrentPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltagePhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltagePhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltagePhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltagePhaseBCommandParams + ); + result.put("readRmsVoltagePhaseBAttribute", readElectricalMeasurementRmsVoltagePhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageMinPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageMinPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageMinPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageMinPhaseBCommandParams + ); + result.put("readRmsVoltageMinPhaseBAttribute", readElectricalMeasurementRmsVoltageMinPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageMaxPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageMaxPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageMaxPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageMaxPhaseBCommandParams + ); + result.put("readRmsVoltageMaxPhaseBAttribute", readElectricalMeasurementRmsVoltageMaxPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentPhaseBCommandParams + ); + result.put("readRmsCurrentPhaseBAttribute", readElectricalMeasurementRmsCurrentPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentMinPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentMinPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentMinPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentMinPhaseBCommandParams + ); + result.put("readRmsCurrentMinPhaseBAttribute", readElectricalMeasurementRmsCurrentMinPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentMaxPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentMaxPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentMaxPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentMaxPhaseBCommandParams + ); + result.put("readRmsCurrentMaxPhaseBAttribute", readElectricalMeasurementRmsCurrentMaxPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerPhaseBCommandParams + ); + result.put("readActivePowerPhaseBAttribute", readElectricalMeasurementActivePowerPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerMinPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerMinPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerMinPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerMinPhaseBCommandParams + ); + result.put("readActivePowerMinPhaseBAttribute", readElectricalMeasurementActivePowerMinPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerMaxPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerMaxPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerMaxPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerMaxPhaseBCommandParams + ); + result.put("readActivePowerMaxPhaseBAttribute", readElectricalMeasurementActivePowerMaxPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementReactivePowerPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementReactivePowerPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readReactivePowerPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementReactivePowerPhaseBCommandParams + ); + result.put("readReactivePowerPhaseBAttribute", readElectricalMeasurementReactivePowerPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementApparentPowerPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementApparentPowerPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readApparentPowerPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementApparentPowerPhaseBCommandParams + ); + result.put("readApparentPowerPhaseBAttribute", readElectricalMeasurementApparentPowerPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementPowerFactorPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementPowerFactorPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readPowerFactorPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementPowerFactorPhaseBCommandParams + ); + result.put("readPowerFactorPhaseBAttribute", readElectricalMeasurementPowerFactorPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsVoltageMeasurementPeriodPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBCommandParams + ); + result.put("readAverageRmsVoltageMeasurementPeriodPhaseBAttribute", readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsOverVoltageCounterPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBCommandParams + ); + result.put("readAverageRmsOverVoltageCounterPhaseBAttribute", readElectricalMeasurementAverageRmsOverVoltageCounterPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsUnderVoltageCounterPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBCommandParams + ); + result.put("readAverageRmsUnderVoltageCounterPhaseBAttribute", readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeOverVoltagePeriodPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBCommandParams + ); + result.put("readRmsExtremeOverVoltagePeriodPhaseBAttribute", readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeUnderVoltagePeriodPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBCommandParams + ); + result.put("readRmsExtremeUnderVoltagePeriodPhaseBAttribute", readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSagPeriodPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSagPeriodPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSagPeriodPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSagPeriodPhaseBCommandParams + ); + result.put("readRmsVoltageSagPeriodPhaseBAttribute", readElectricalMeasurementRmsVoltageSagPeriodPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSwellPeriodPhaseBCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSwellPeriodPhaseBAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSwellPeriodPhaseBAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSwellPeriodPhaseBCommandParams + ); + result.put("readRmsVoltageSwellPeriodPhaseBAttribute", readElectricalMeasurementRmsVoltageSwellPeriodPhaseBAttributeInteractionInfo); + Map readElectricalMeasurementLineCurrentPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementLineCurrentPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readLineCurrentPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementLineCurrentPhaseCCommandParams + ); + result.put("readLineCurrentPhaseCAttribute", readElectricalMeasurementLineCurrentPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementActiveCurrentPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActiveCurrentPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActiveCurrentPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActiveCurrentPhaseCCommandParams + ); + result.put("readActiveCurrentPhaseCAttribute", readElectricalMeasurementActiveCurrentPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementReactiveCurrentPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementReactiveCurrentPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readReactiveCurrentPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementReactiveCurrentPhaseCCommandParams + ); + result.put("readReactiveCurrentPhaseCAttribute", readElectricalMeasurementReactiveCurrentPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltagePhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltagePhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltagePhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltagePhaseCCommandParams + ); + result.put("readRmsVoltagePhaseCAttribute", readElectricalMeasurementRmsVoltagePhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageMinPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageMinPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageMinPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageMinPhaseCCommandParams + ); + result.put("readRmsVoltageMinPhaseCAttribute", readElectricalMeasurementRmsVoltageMinPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageMaxPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageMaxPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageMaxPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageMaxPhaseCCommandParams + ); + result.put("readRmsVoltageMaxPhaseCAttribute", readElectricalMeasurementRmsVoltageMaxPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentPhaseCCommandParams + ); + result.put("readRmsCurrentPhaseCAttribute", readElectricalMeasurementRmsCurrentPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentMinPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentMinPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentMinPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentMinPhaseCCommandParams + ); + result.put("readRmsCurrentMinPhaseCAttribute", readElectricalMeasurementRmsCurrentMinPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsCurrentMaxPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsCurrentMaxPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsCurrentMaxPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsCurrentMaxPhaseCCommandParams + ); + result.put("readRmsCurrentMaxPhaseCAttribute", readElectricalMeasurementRmsCurrentMaxPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerPhaseCCommandParams + ); + result.put("readActivePowerPhaseCAttribute", readElectricalMeasurementActivePowerPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerMinPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerMinPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerMinPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerMinPhaseCCommandParams + ); + result.put("readActivePowerMinPhaseCAttribute", readElectricalMeasurementActivePowerMinPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementActivePowerMaxPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementActivePowerMaxPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readActivePowerMaxPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementActivePowerMaxPhaseCCommandParams + ); + result.put("readActivePowerMaxPhaseCAttribute", readElectricalMeasurementActivePowerMaxPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementReactivePowerPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementReactivePowerPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readReactivePowerPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementReactivePowerPhaseCCommandParams + ); + result.put("readReactivePowerPhaseCAttribute", readElectricalMeasurementReactivePowerPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementApparentPowerPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementApparentPowerPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readApparentPowerPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementApparentPowerPhaseCCommandParams + ); + result.put("readApparentPowerPhaseCAttribute", readElectricalMeasurementApparentPowerPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementPowerFactorPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementPowerFactorPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readPowerFactorPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementPowerFactorPhaseCCommandParams + ); + result.put("readPowerFactorPhaseCAttribute", readElectricalMeasurementPowerFactorPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsVoltageMeasurementPeriodPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCCommandParams + ); + result.put("readAverageRmsVoltageMeasurementPeriodPhaseCAttribute", readElectricalMeasurementAverageRmsVoltageMeasurementPeriodPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsOverVoltageCounterPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCCommandParams + ); + result.put("readAverageRmsOverVoltageCounterPhaseCAttribute", readElectricalMeasurementAverageRmsOverVoltageCounterPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAverageRmsUnderVoltageCounterPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCCommandParams + ); + result.put("readAverageRmsUnderVoltageCounterPhaseCAttribute", readElectricalMeasurementAverageRmsUnderVoltageCounterPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeOverVoltagePeriodPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCCommandParams + ); + result.put("readRmsExtremeOverVoltagePeriodPhaseCAttribute", readElectricalMeasurementRmsExtremeOverVoltagePeriodPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsExtremeUnderVoltagePeriodPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCCommandParams + ); + result.put("readRmsExtremeUnderVoltagePeriodPhaseCAttribute", readElectricalMeasurementRmsExtremeUnderVoltagePeriodPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSagPeriodPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSagPeriodPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSagPeriodPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSagPeriodPhaseCCommandParams + ); + result.put("readRmsVoltageSagPeriodPhaseCAttribute", readElectricalMeasurementRmsVoltageSagPeriodPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementRmsVoltageSwellPeriodPhaseCCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementRmsVoltageSwellPeriodPhaseCAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readRmsVoltageSwellPeriodPhaseCAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementRmsVoltageSwellPeriodPhaseCCommandParams + ); + result.put("readRmsVoltageSwellPeriodPhaseCAttribute", readElectricalMeasurementRmsVoltageSwellPeriodPhaseCAttributeInteractionInfo); + Map readElectricalMeasurementGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.ElectricalMeasurementCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectricalMeasurementClusterGeneratedCommandListAttributeCallback(), + readElectricalMeasurementGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readElectricalMeasurementGeneratedCommandListAttributeInteractionInfo); + Map readElectricalMeasurementAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.ElectricalMeasurementCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectricalMeasurementClusterAcceptedCommandListAttributeCallback(), + readElectricalMeasurementAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readElectricalMeasurementAcceptedCommandListAttributeInteractionInfo); + Map readElectricalMeasurementEventListCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readEventListAttribute( + (ChipClusters.ElectricalMeasurementCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectricalMeasurementClusterEventListAttributeCallback(), + readElectricalMeasurementEventListCommandParams + ); + result.put("readEventListAttribute", readElectricalMeasurementEventListAttributeInteractionInfo); + Map readElectricalMeasurementAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readAttributeListAttribute( + (ChipClusters.ElectricalMeasurementCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedElectricalMeasurementClusterAttributeListAttributeCallback(), + readElectricalMeasurementAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readElectricalMeasurementAttributeListAttributeInteractionInfo); + Map readElectricalMeasurementFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readElectricalMeasurementFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readElectricalMeasurementFeatureMapAttributeInteractionInfo); + Map readElectricalMeasurementClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readElectricalMeasurementClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readElectricalMeasurementClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readElectricalMeasurementClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readUnitTestingInteractionInfo() { + Map result = new LinkedHashMap<>();Map readUnitTestingBooleanCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readBooleanAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readUnitTestingBooleanCommandParams + ); + result.put("readBooleanAttribute", readUnitTestingBooleanAttributeInteractionInfo); + Map readUnitTestingBitmap8CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingBitmap8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readBitmap8Attribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingBitmap8CommandParams + ); + result.put("readBitmap8Attribute", readUnitTestingBitmap8AttributeInteractionInfo); + Map readUnitTestingBitmap16CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingBitmap16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readBitmap16Attribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingBitmap16CommandParams + ); + result.put("readBitmap16Attribute", readUnitTestingBitmap16AttributeInteractionInfo); + Map readUnitTestingBitmap32CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingBitmap32AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readBitmap32Attribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingBitmap32CommandParams + ); + result.put("readBitmap32Attribute", readUnitTestingBitmap32AttributeInteractionInfo); + Map readUnitTestingBitmap64CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingBitmap64AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readBitmap64Attribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingBitmap64CommandParams + ); + result.put("readBitmap64Attribute", readUnitTestingBitmap64AttributeInteractionInfo); + Map readUnitTestingInt8uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt8uAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingInt8uCommandParams + ); + result.put("readInt8uAttribute", readUnitTestingInt8uAttributeInteractionInfo); + Map readUnitTestingInt16uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt16uAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingInt16uCommandParams + ); + result.put("readInt16uAttribute", readUnitTestingInt16uAttributeInteractionInfo); + Map readUnitTestingInt24uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt24uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt24uAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt24uCommandParams + ); + result.put("readInt24uAttribute", readUnitTestingInt24uAttributeInteractionInfo); + Map readUnitTestingInt32uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt32uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt32uAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt32uCommandParams + ); + result.put("readInt32uAttribute", readUnitTestingInt32uAttributeInteractionInfo); + Map readUnitTestingInt40uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt40uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt40uAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt40uCommandParams + ); + result.put("readInt40uAttribute", readUnitTestingInt40uAttributeInteractionInfo); + Map readUnitTestingInt48uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt48uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt48uAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt48uCommandParams + ); + result.put("readInt48uAttribute", readUnitTestingInt48uAttributeInteractionInfo); + Map readUnitTestingInt56uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt56uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt56uAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt56uCommandParams + ); + result.put("readInt56uAttribute", readUnitTestingInt56uAttributeInteractionInfo); + Map readUnitTestingInt64uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt64uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt64uAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt64uCommandParams + ); + result.put("readInt64uAttribute", readUnitTestingInt64uAttributeInteractionInfo); + Map readUnitTestingInt8sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt8sAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingInt8sCommandParams + ); + result.put("readInt8sAttribute", readUnitTestingInt8sAttributeInteractionInfo); + Map readUnitTestingInt16sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt16sAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingInt16sCommandParams + ); + result.put("readInt16sAttribute", readUnitTestingInt16sAttributeInteractionInfo); + Map readUnitTestingInt24sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt24sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt24sAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt24sCommandParams + ); + result.put("readInt24sAttribute", readUnitTestingInt24sAttributeInteractionInfo); + Map readUnitTestingInt32sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt32sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt32sAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt32sCommandParams + ); + result.put("readInt32sAttribute", readUnitTestingInt32sAttributeInteractionInfo); + Map readUnitTestingInt40sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt40sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt40sAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt40sCommandParams + ); + result.put("readInt40sAttribute", readUnitTestingInt40sAttributeInteractionInfo); + Map readUnitTestingInt48sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt48sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt48sAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt48sCommandParams + ); + result.put("readInt48sAttribute", readUnitTestingInt48sAttributeInteractionInfo); + Map readUnitTestingInt56sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt56sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt56sAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt56sCommandParams + ); + result.put("readInt56sAttribute", readUnitTestingInt56sAttributeInteractionInfo); + Map readUnitTestingInt64sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingInt64sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readInt64sAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingInt64sCommandParams + ); + result.put("readInt64sAttribute", readUnitTestingInt64sAttributeInteractionInfo); + Map readUnitTestingEnum8CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingEnum8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readEnum8Attribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingEnum8CommandParams + ); + result.put("readEnum8Attribute", readUnitTestingEnum8AttributeInteractionInfo); + Map readUnitTestingEnum16CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingEnum16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readEnum16Attribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingEnum16CommandParams + ); + result.put("readEnum16Attribute", readUnitTestingEnum16AttributeInteractionInfo); + Map readUnitTestingFloatSingleCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingFloatSingleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readFloatSingleAttribute( + (ChipClusters.FloatAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFloatAttributeCallback(), + readUnitTestingFloatSingleCommandParams + ); + result.put("readFloatSingleAttribute", readUnitTestingFloatSingleAttributeInteractionInfo); + Map readUnitTestingFloatDoubleCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingFloatDoubleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readFloatDoubleAttribute( + (ChipClusters.DoubleAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedDoubleAttributeCallback(), + readUnitTestingFloatDoubleCommandParams + ); + result.put("readFloatDoubleAttribute", readUnitTestingFloatDoubleAttributeInteractionInfo); + Map readUnitTestingOctetStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readOctetStringAttribute( + (ChipClusters.OctetStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOctetStringAttributeCallback(), + readUnitTestingOctetStringCommandParams + ); + result.put("readOctetStringAttribute", readUnitTestingOctetStringAttributeInteractionInfo); + Map readUnitTestingListInt8uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingListInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readListInt8uAttribute( + (ChipClusters.UnitTestingCluster.ListInt8uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterListInt8uAttributeCallback(), + readUnitTestingListInt8uCommandParams + ); + result.put("readListInt8uAttribute", readUnitTestingListInt8uAttributeInteractionInfo); + Map readUnitTestingListOctetStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingListOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readListOctetStringAttribute( + (ChipClusters.UnitTestingCluster.ListOctetStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterListOctetStringAttributeCallback(), + readUnitTestingListOctetStringCommandParams + ); + result.put("readListOctetStringAttribute", readUnitTestingListOctetStringAttributeInteractionInfo); + Map readUnitTestingListStructOctetStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingListStructOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readListStructOctetStringAttribute( + (ChipClusters.UnitTestingCluster.ListStructOctetStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterListStructOctetStringAttributeCallback(), + readUnitTestingListStructOctetStringCommandParams + ); + result.put("readListStructOctetStringAttribute", readUnitTestingListStructOctetStringAttributeInteractionInfo); + Map readUnitTestingLongOctetStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingLongOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readLongOctetStringAttribute( + (ChipClusters.OctetStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedOctetStringAttributeCallback(), + readUnitTestingLongOctetStringCommandParams + ); + result.put("readLongOctetStringAttribute", readUnitTestingLongOctetStringAttributeInteractionInfo); + Map readUnitTestingCharStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingCharStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readCharStringAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readUnitTestingCharStringCommandParams + ); + result.put("readCharStringAttribute", readUnitTestingCharStringAttributeInteractionInfo); + Map readUnitTestingLongCharStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingLongCharStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readLongCharStringAttribute( + (ChipClusters.CharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(), + readUnitTestingLongCharStringCommandParams + ); + result.put("readLongCharStringAttribute", readUnitTestingLongCharStringAttributeInteractionInfo); + Map readUnitTestingEpochUsCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingEpochUsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readEpochUsAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingEpochUsCommandParams + ); + result.put("readEpochUsAttribute", readUnitTestingEpochUsAttributeInteractionInfo); + Map readUnitTestingEpochSCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingEpochSAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readEpochSAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingEpochSCommandParams + ); + result.put("readEpochSAttribute", readUnitTestingEpochSAttributeInteractionInfo); + Map readUnitTestingVendorIdCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingVendorIdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readVendorIdAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingVendorIdCommandParams + ); + result.put("readVendorIdAttribute", readUnitTestingVendorIdAttributeInteractionInfo); + Map readUnitTestingListNullablesAndOptionalsStructCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingListNullablesAndOptionalsStructAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readListNullablesAndOptionalsStructAttribute( + (ChipClusters.UnitTestingCluster.ListNullablesAndOptionalsStructAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterListNullablesAndOptionalsStructAttributeCallback(), + readUnitTestingListNullablesAndOptionalsStructCommandParams + ); + result.put("readListNullablesAndOptionalsStructAttribute", readUnitTestingListNullablesAndOptionalsStructAttributeInteractionInfo); + Map readUnitTestingEnumAttrCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingEnumAttrAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readEnumAttrAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingEnumAttrCommandParams + ); + result.put("readEnumAttrAttribute", readUnitTestingEnumAttrAttributeInteractionInfo); + Map readUnitTestingRangeRestrictedInt8uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingRangeRestrictedInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readRangeRestrictedInt8uAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingRangeRestrictedInt8uCommandParams + ); + result.put("readRangeRestrictedInt8uAttribute", readUnitTestingRangeRestrictedInt8uAttributeInteractionInfo); + Map readUnitTestingRangeRestrictedInt8sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingRangeRestrictedInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readRangeRestrictedInt8sAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingRangeRestrictedInt8sCommandParams + ); + result.put("readRangeRestrictedInt8sAttribute", readUnitTestingRangeRestrictedInt8sAttributeInteractionInfo); + Map readUnitTestingRangeRestrictedInt16uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingRangeRestrictedInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readRangeRestrictedInt16uAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingRangeRestrictedInt16uCommandParams + ); + result.put("readRangeRestrictedInt16uAttribute", readUnitTestingRangeRestrictedInt16uAttributeInteractionInfo); + Map readUnitTestingRangeRestrictedInt16sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingRangeRestrictedInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readRangeRestrictedInt16sAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingRangeRestrictedInt16sCommandParams + ); + result.put("readRangeRestrictedInt16sAttribute", readUnitTestingRangeRestrictedInt16sAttributeInteractionInfo); + Map readUnitTestingListLongOctetStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingListLongOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readListLongOctetStringAttribute( + (ChipClusters.UnitTestingCluster.ListLongOctetStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterListLongOctetStringAttributeCallback(), + readUnitTestingListLongOctetStringCommandParams + ); + result.put("readListLongOctetStringAttribute", readUnitTestingListLongOctetStringAttributeInteractionInfo); + Map readUnitTestingListFabricScopedCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingListFabricScopedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readListFabricScopedAttribute( + (ChipClusters.UnitTestingCluster.ListFabricScopedAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterListFabricScopedAttributeCallback(), + readUnitTestingListFabricScopedCommandParams + ); + result.put("readListFabricScopedAttribute", readUnitTestingListFabricScopedAttributeInteractionInfo); + Map readUnitTestingTimedWriteBooleanCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingTimedWriteBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readTimedWriteBooleanAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readUnitTestingTimedWriteBooleanCommandParams + ); + result.put("readTimedWriteBooleanAttribute", readUnitTestingTimedWriteBooleanAttributeInteractionInfo); + Map readUnitTestingGeneralErrorBooleanCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingGeneralErrorBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readGeneralErrorBooleanAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readUnitTestingGeneralErrorBooleanCommandParams + ); + result.put("readGeneralErrorBooleanAttribute", readUnitTestingGeneralErrorBooleanAttributeInteractionInfo); + Map readUnitTestingClusterErrorBooleanCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingClusterErrorBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readClusterErrorBooleanAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readUnitTestingClusterErrorBooleanCommandParams + ); + result.put("readClusterErrorBooleanAttribute", readUnitTestingClusterErrorBooleanAttributeInteractionInfo); + Map readUnitTestingUnsupportedCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingUnsupportedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readUnsupportedAttribute( + (ChipClusters.BooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(), + readUnitTestingUnsupportedCommandParams + ); + result.put("readUnsupportedAttribute", readUnitTestingUnsupportedAttributeInteractionInfo); + Map readUnitTestingNullableBooleanCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableBooleanAttribute( + (ChipClusters.UnitTestingCluster.NullableBooleanAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableBooleanAttributeCallback(), + readUnitTestingNullableBooleanCommandParams + ); + result.put("readNullableBooleanAttribute", readUnitTestingNullableBooleanAttributeInteractionInfo); + Map readUnitTestingNullableBitmap8CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableBitmap8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableBitmap8Attribute( + (ChipClusters.UnitTestingCluster.NullableBitmap8AttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableBitmap8AttributeCallback(), + readUnitTestingNullableBitmap8CommandParams + ); + result.put("readNullableBitmap8Attribute", readUnitTestingNullableBitmap8AttributeInteractionInfo); + Map readUnitTestingNullableBitmap16CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableBitmap16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableBitmap16Attribute( + (ChipClusters.UnitTestingCluster.NullableBitmap16AttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableBitmap16AttributeCallback(), + readUnitTestingNullableBitmap16CommandParams + ); + result.put("readNullableBitmap16Attribute", readUnitTestingNullableBitmap16AttributeInteractionInfo); + Map readUnitTestingNullableBitmap32CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableBitmap32AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableBitmap32Attribute( + (ChipClusters.UnitTestingCluster.NullableBitmap32AttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableBitmap32AttributeCallback(), + readUnitTestingNullableBitmap32CommandParams + ); + result.put("readNullableBitmap32Attribute", readUnitTestingNullableBitmap32AttributeInteractionInfo); + Map readUnitTestingNullableBitmap64CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableBitmap64AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableBitmap64Attribute( + (ChipClusters.UnitTestingCluster.NullableBitmap64AttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableBitmap64AttributeCallback(), + readUnitTestingNullableBitmap64CommandParams + ); + result.put("readNullableBitmap64Attribute", readUnitTestingNullableBitmap64AttributeInteractionInfo); + Map readUnitTestingNullableInt8uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt8uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt8uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt8uAttributeCallback(), + readUnitTestingNullableInt8uCommandParams + ); + result.put("readNullableInt8uAttribute", readUnitTestingNullableInt8uAttributeInteractionInfo); + Map readUnitTestingNullableInt16uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt16uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt16uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt16uAttributeCallback(), + readUnitTestingNullableInt16uCommandParams + ); + result.put("readNullableInt16uAttribute", readUnitTestingNullableInt16uAttributeInteractionInfo); + Map readUnitTestingNullableInt24uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt24uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt24uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt24uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt24uAttributeCallback(), + readUnitTestingNullableInt24uCommandParams + ); + result.put("readNullableInt24uAttribute", readUnitTestingNullableInt24uAttributeInteractionInfo); + Map readUnitTestingNullableInt32uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt32uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt32uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt32uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt32uAttributeCallback(), + readUnitTestingNullableInt32uCommandParams + ); + result.put("readNullableInt32uAttribute", readUnitTestingNullableInt32uAttributeInteractionInfo); + Map readUnitTestingNullableInt40uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt40uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt40uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt40uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt40uAttributeCallback(), + readUnitTestingNullableInt40uCommandParams + ); + result.put("readNullableInt40uAttribute", readUnitTestingNullableInt40uAttributeInteractionInfo); + Map readUnitTestingNullableInt48uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt48uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt48uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt48uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt48uAttributeCallback(), + readUnitTestingNullableInt48uCommandParams + ); + result.put("readNullableInt48uAttribute", readUnitTestingNullableInt48uAttributeInteractionInfo); + Map readUnitTestingNullableInt56uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt56uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt56uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt56uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt56uAttributeCallback(), + readUnitTestingNullableInt56uCommandParams + ); + result.put("readNullableInt56uAttribute", readUnitTestingNullableInt56uAttributeInteractionInfo); + Map readUnitTestingNullableInt64uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt64uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt64uAttribute( + (ChipClusters.UnitTestingCluster.NullableInt64uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt64uAttributeCallback(), + readUnitTestingNullableInt64uCommandParams + ); + result.put("readNullableInt64uAttribute", readUnitTestingNullableInt64uAttributeInteractionInfo); + Map readUnitTestingNullableInt8sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt8sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt8sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt8sAttributeCallback(), + readUnitTestingNullableInt8sCommandParams + ); + result.put("readNullableInt8sAttribute", readUnitTestingNullableInt8sAttributeInteractionInfo); + Map readUnitTestingNullableInt16sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt16sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt16sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt16sAttributeCallback(), + readUnitTestingNullableInt16sCommandParams + ); + result.put("readNullableInt16sAttribute", readUnitTestingNullableInt16sAttributeInteractionInfo); + Map readUnitTestingNullableInt24sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt24sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt24sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt24sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt24sAttributeCallback(), + readUnitTestingNullableInt24sCommandParams + ); + result.put("readNullableInt24sAttribute", readUnitTestingNullableInt24sAttributeInteractionInfo); + Map readUnitTestingNullableInt32sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt32sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt32sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt32sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt32sAttributeCallback(), + readUnitTestingNullableInt32sCommandParams + ); + result.put("readNullableInt32sAttribute", readUnitTestingNullableInt32sAttributeInteractionInfo); + Map readUnitTestingNullableInt40sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt40sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt40sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt40sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt40sAttributeCallback(), + readUnitTestingNullableInt40sCommandParams + ); + result.put("readNullableInt40sAttribute", readUnitTestingNullableInt40sAttributeInteractionInfo); + Map readUnitTestingNullableInt48sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt48sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt48sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt48sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt48sAttributeCallback(), + readUnitTestingNullableInt48sCommandParams + ); + result.put("readNullableInt48sAttribute", readUnitTestingNullableInt48sAttributeInteractionInfo); + Map readUnitTestingNullableInt56sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt56sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt56sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt56sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt56sAttributeCallback(), + readUnitTestingNullableInt56sCommandParams + ); + result.put("readNullableInt56sAttribute", readUnitTestingNullableInt56sAttributeInteractionInfo); + Map readUnitTestingNullableInt64sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableInt64sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableInt64sAttribute( + (ChipClusters.UnitTestingCluster.NullableInt64sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableInt64sAttributeCallback(), + readUnitTestingNullableInt64sCommandParams + ); + result.put("readNullableInt64sAttribute", readUnitTestingNullableInt64sAttributeInteractionInfo); + Map readUnitTestingNullableEnum8CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableEnum8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableEnum8Attribute( + (ChipClusters.UnitTestingCluster.NullableEnum8AttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableEnum8AttributeCallback(), + readUnitTestingNullableEnum8CommandParams + ); + result.put("readNullableEnum8Attribute", readUnitTestingNullableEnum8AttributeInteractionInfo); + Map readUnitTestingNullableEnum16CommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableEnum16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableEnum16Attribute( + (ChipClusters.UnitTestingCluster.NullableEnum16AttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableEnum16AttributeCallback(), + readUnitTestingNullableEnum16CommandParams + ); + result.put("readNullableEnum16Attribute", readUnitTestingNullableEnum16AttributeInteractionInfo); + Map readUnitTestingNullableFloatSingleCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableFloatSingleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableFloatSingleAttribute( + (ChipClusters.UnitTestingCluster.NullableFloatSingleAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableFloatSingleAttributeCallback(), + readUnitTestingNullableFloatSingleCommandParams + ); + result.put("readNullableFloatSingleAttribute", readUnitTestingNullableFloatSingleAttributeInteractionInfo); + Map readUnitTestingNullableFloatDoubleCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableFloatDoubleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableFloatDoubleAttribute( + (ChipClusters.UnitTestingCluster.NullableFloatDoubleAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableFloatDoubleAttributeCallback(), + readUnitTestingNullableFloatDoubleCommandParams + ); + result.put("readNullableFloatDoubleAttribute", readUnitTestingNullableFloatDoubleAttributeInteractionInfo); + Map readUnitTestingNullableOctetStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableOctetStringAttribute( + (ChipClusters.UnitTestingCluster.NullableOctetStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableOctetStringAttributeCallback(), + readUnitTestingNullableOctetStringCommandParams + ); + result.put("readNullableOctetStringAttribute", readUnitTestingNullableOctetStringAttributeInteractionInfo); + Map readUnitTestingNullableCharStringCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableCharStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableCharStringAttribute( + (ChipClusters.UnitTestingCluster.NullableCharStringAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableCharStringAttributeCallback(), + readUnitTestingNullableCharStringCommandParams + ); + result.put("readNullableCharStringAttribute", readUnitTestingNullableCharStringAttributeInteractionInfo); + Map readUnitTestingNullableEnumAttrCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableEnumAttrAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableEnumAttrAttribute( + (ChipClusters.UnitTestingCluster.NullableEnumAttrAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableEnumAttrAttributeCallback(), + readUnitTestingNullableEnumAttrCommandParams + ); + result.put("readNullableEnumAttrAttribute", readUnitTestingNullableEnumAttrAttributeInteractionInfo); + Map readUnitTestingNullableRangeRestrictedInt8uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableRangeRestrictedInt8uAttribute( + (ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt8uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableRangeRestrictedInt8uAttributeCallback(), + readUnitTestingNullableRangeRestrictedInt8uCommandParams + ); + result.put("readNullableRangeRestrictedInt8uAttribute", readUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo); + Map readUnitTestingNullableRangeRestrictedInt8sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableRangeRestrictedInt8sAttribute( + (ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt8sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableRangeRestrictedInt8sAttributeCallback(), + readUnitTestingNullableRangeRestrictedInt8sCommandParams + ); + result.put("readNullableRangeRestrictedInt8sAttribute", readUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo); + Map readUnitTestingNullableRangeRestrictedInt16uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableRangeRestrictedInt16uAttribute( + (ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt16uAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableRangeRestrictedInt16uAttributeCallback(), + readUnitTestingNullableRangeRestrictedInt16uCommandParams + ); + result.put("readNullableRangeRestrictedInt16uAttribute", readUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo); + Map readUnitTestingNullableRangeRestrictedInt16sCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readNullableRangeRestrictedInt16sAttribute( + (ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt16sAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterNullableRangeRestrictedInt16sAttributeCallback(), + readUnitTestingNullableRangeRestrictedInt16sCommandParams + ); + result.put("readNullableRangeRestrictedInt16sAttribute", readUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo); + Map readUnitTestingWriteOnlyInt8uCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingWriteOnlyInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readWriteOnlyInt8uAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingWriteOnlyInt8uCommandParams + ); + result.put("readWriteOnlyInt8uAttribute", readUnitTestingWriteOnlyInt8uAttributeInteractionInfo); + Map readUnitTestingGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.UnitTestingCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterGeneratedCommandListAttributeCallback(), + readUnitTestingGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readUnitTestingGeneratedCommandListAttributeInteractionInfo); + Map readUnitTestingAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.UnitTestingCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterAcceptedCommandListAttributeCallback(), + readUnitTestingAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readUnitTestingAcceptedCommandListAttributeInteractionInfo); + Map readUnitTestingEventListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readEventListAttribute( + (ChipClusters.UnitTestingCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterEventListAttributeCallback(), + readUnitTestingEventListCommandParams + ); + result.put("readEventListAttribute", readUnitTestingEventListAttributeInteractionInfo); + Map readUnitTestingAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readAttributeListAttribute( + (ChipClusters.UnitTestingCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedUnitTestingClusterAttributeListAttributeCallback(), + readUnitTestingAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readUnitTestingAttributeListAttributeInteractionInfo); + Map readUnitTestingFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readUnitTestingFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readUnitTestingFeatureMapAttributeInteractionInfo); + Map readUnitTestingClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readUnitTestingClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readUnitTestingClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readUnitTestingClusterRevisionAttributeInteractionInfo); + + return result; + } + private static Map readFaultInjectionInteractionInfo() { + Map result = new LinkedHashMap<>();Map readFaultInjectionGeneratedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFaultInjectionGeneratedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FaultInjectionCluster) cluster).readGeneratedCommandListAttribute( + (ChipClusters.FaultInjectionCluster.GeneratedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFaultInjectionClusterGeneratedCommandListAttributeCallback(), + readFaultInjectionGeneratedCommandListCommandParams + ); + result.put("readGeneratedCommandListAttribute", readFaultInjectionGeneratedCommandListAttributeInteractionInfo); + Map readFaultInjectionAcceptedCommandListCommandParams = new LinkedHashMap(); + InteractionInfo readFaultInjectionAcceptedCommandListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FaultInjectionCluster) cluster).readAcceptedCommandListAttribute( + (ChipClusters.FaultInjectionCluster.AcceptedCommandListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFaultInjectionClusterAcceptedCommandListAttributeCallback(), + readFaultInjectionAcceptedCommandListCommandParams + ); + result.put("readAcceptedCommandListAttribute", readFaultInjectionAcceptedCommandListAttributeInteractionInfo); + Map readFaultInjectionEventListCommandParams = new LinkedHashMap(); + InteractionInfo readFaultInjectionEventListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FaultInjectionCluster) cluster).readEventListAttribute( + (ChipClusters.FaultInjectionCluster.EventListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFaultInjectionClusterEventListAttributeCallback(), + readFaultInjectionEventListCommandParams + ); + result.put("readEventListAttribute", readFaultInjectionEventListAttributeInteractionInfo); + Map readFaultInjectionAttributeListCommandParams = new LinkedHashMap(); + InteractionInfo readFaultInjectionAttributeListAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FaultInjectionCluster) cluster).readAttributeListAttribute( + (ChipClusters.FaultInjectionCluster.AttributeListAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedFaultInjectionClusterAttributeListAttributeCallback(), + readFaultInjectionAttributeListCommandParams + ); + result.put("readAttributeListAttribute", readFaultInjectionAttributeListAttributeInteractionInfo); + Map readFaultInjectionFeatureMapCommandParams = new LinkedHashMap(); + InteractionInfo readFaultInjectionFeatureMapAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FaultInjectionCluster) cluster).readFeatureMapAttribute( + (ChipClusters.LongAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(), + readFaultInjectionFeatureMapCommandParams + ); + result.put("readFeatureMapAttribute", readFaultInjectionFeatureMapAttributeInteractionInfo); + Map readFaultInjectionClusterRevisionCommandParams = new LinkedHashMap(); + InteractionInfo readFaultInjectionClusterRevisionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FaultInjectionCluster) cluster).readClusterRevisionAttribute( + (ChipClusters.IntegerAttributeCallback) callback + ); + }, + () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(), + readFaultInjectionClusterRevisionCommandParams + ); + result.put("readClusterRevisionAttribute", readFaultInjectionClusterRevisionAttributeInteractionInfo); + + return result; + } + @SuppressWarnings("serial") + public Map> getReadAttributeMap() { + + return new HashMap>(){{ + put("identify", readIdentifyInteractionInfo()); + put("groups", readGroupsInteractionInfo()); + put("scenes", readScenesInteractionInfo()); + put("onOff", readOnOffInteractionInfo()); + put("onOffSwitchConfiguration", readOnOffSwitchConfigurationInteractionInfo()); + put("levelControl", readLevelControlInteractionInfo()); + put("binaryInputBasic", readBinaryInputBasicInteractionInfo()); + put("pulseWidthModulation", readPulseWidthModulationInteractionInfo()); + put("descriptor", readDescriptorInteractionInfo()); + put("binding", readBindingInteractionInfo()); + put("accessControl", readAccessControlInteractionInfo()); + put("actions", readActionsInteractionInfo()); + put("basicInformation", readBasicInformationInteractionInfo()); + put("otaSoftwareUpdateProvider", readOtaSoftwareUpdateProviderInteractionInfo()); + put("otaSoftwareUpdateRequestor", readOtaSoftwareUpdateRequestorInteractionInfo()); + put("localizationConfiguration", readLocalizationConfigurationInteractionInfo()); + put("timeFormatLocalization", readTimeFormatLocalizationInteractionInfo()); + put("unitLocalization", readUnitLocalizationInteractionInfo()); + put("powerSourceConfiguration", readPowerSourceConfigurationInteractionInfo()); + put("powerSource", readPowerSourceInteractionInfo()); + put("generalCommissioning", readGeneralCommissioningInteractionInfo()); + put("networkCommissioning", readNetworkCommissioningInteractionInfo()); + put("diagnosticLogs", readDiagnosticLogsInteractionInfo()); + put("generalDiagnostics", readGeneralDiagnosticsInteractionInfo()); + put("softwareDiagnostics", readSoftwareDiagnosticsInteractionInfo()); + put("threadNetworkDiagnostics", readThreadNetworkDiagnosticsInteractionInfo()); + put("wiFiNetworkDiagnostics", readWiFiNetworkDiagnosticsInteractionInfo()); + put("ethernetNetworkDiagnostics", readEthernetNetworkDiagnosticsInteractionInfo()); + put("timeSynchronization", readTimeSynchronizationInteractionInfo()); + put("bridgedDeviceBasicInformation", readBridgedDeviceBasicInformationInteractionInfo()); + put("switch", readSwitchInteractionInfo()); + put("administratorCommissioning", readAdministratorCommissioningInteractionInfo()); + put("operationalCredentials", readOperationalCredentialsInteractionInfo()); + put("groupKeyManagement", readGroupKeyManagementInteractionInfo()); + put("fixedLabel", readFixedLabelInteractionInfo()); + put("userLabel", readUserLabelInteractionInfo()); + put("proxyConfiguration", readProxyConfigurationInteractionInfo()); + put("proxyDiscovery", readProxyDiscoveryInteractionInfo()); + put("proxyValid", readProxyValidInteractionInfo()); + put("booleanState", readBooleanStateInteractionInfo()); + put("icdManagement", readIcdManagementInteractionInfo()); + put("modeSelect", readModeSelectInteractionInfo()); + put("temperatureControl", readTemperatureControlInteractionInfo()); + put("refrigeratorAlarm", readRefrigeratorAlarmInteractionInfo()); + put("airQuality", readAirQualityInteractionInfo()); + put("smokeCoAlarm", readSmokeCoAlarmInteractionInfo()); + put("hepaFilterMonitoring", readHepaFilterMonitoringInteractionInfo()); + put("activatedCarbonFilterMonitoring", readActivatedCarbonFilterMonitoringInteractionInfo()); + put("ceramicFilterMonitoring", readCeramicFilterMonitoringInteractionInfo()); + put("electrostaticFilterMonitoring", readElectrostaticFilterMonitoringInteractionInfo()); + put("uvFilterMonitoring", readUvFilterMonitoringInteractionInfo()); + put("ionizingFilterMonitoring", readIonizingFilterMonitoringInteractionInfo()); + put("zeoliteFilterMonitoring", readZeoliteFilterMonitoringInteractionInfo()); + put("ozoneFilterMonitoring", readOzoneFilterMonitoringInteractionInfo()); + put("waterTankMonitoring", readWaterTankMonitoringInteractionInfo()); + put("fuelTankMonitoring", readFuelTankMonitoringInteractionInfo()); + put("inkCartridgeMonitoring", readInkCartridgeMonitoringInteractionInfo()); + put("tonerCartridgeMonitoring", readTonerCartridgeMonitoringInteractionInfo()); + put("doorLock", readDoorLockInteractionInfo()); + put("windowCovering", readWindowCoveringInteractionInfo()); + put("barrierControl", readBarrierControlInteractionInfo()); + put("pumpConfigurationAndControl", readPumpConfigurationAndControlInteractionInfo()); + put("thermostat", readThermostatInteractionInfo()); + put("fanControl", readFanControlInteractionInfo()); + put("thermostatUserInterfaceConfiguration", readThermostatUserInterfaceConfigurationInteractionInfo()); + put("colorControl", readColorControlInteractionInfo()); + put("ballastConfiguration", readBallastConfigurationInteractionInfo()); + put("illuminanceMeasurement", readIlluminanceMeasurementInteractionInfo()); + put("temperatureMeasurement", readTemperatureMeasurementInteractionInfo()); + put("pressureMeasurement", readPressureMeasurementInteractionInfo()); + put("flowMeasurement", readFlowMeasurementInteractionInfo()); + put("relativeHumidityMeasurement", readRelativeHumidityMeasurementInteractionInfo()); + put("occupancySensing", readOccupancySensingInteractionInfo()); + put("wakeOnLan", readWakeOnLanInteractionInfo()); + put("channel", readChannelInteractionInfo()); + put("targetNavigator", readTargetNavigatorInteractionInfo()); + put("mediaPlayback", readMediaPlaybackInteractionInfo()); + put("mediaInput", readMediaInputInteractionInfo()); + put("lowPower", readLowPowerInteractionInfo()); + put("keypadInput", readKeypadInputInteractionInfo()); + put("contentLauncher", readContentLauncherInteractionInfo()); + put("audioOutput", readAudioOutputInteractionInfo()); + put("applicationLauncher", readApplicationLauncherInteractionInfo()); + put("applicationBasic", readApplicationBasicInteractionInfo()); + put("accountLogin", readAccountLoginInteractionInfo()); + put("electricalMeasurement", readElectricalMeasurementInteractionInfo()); + put("unitTesting", readUnitTestingInteractionInfo()); + put("faultInjection", readFaultInjectionInteractionInfo());}}; + } } + diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java index 649598fc021af8..8f7821e8c34352 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java @@ -27,323 +27,414 @@ public class ClusterWriteMapping { public Map> getWriteAttributeMap() { Map> writeAttributeMap = new HashMap<>(); Map writeIdentifyInteractionInfo = new LinkedHashMap<>(); - Map writeIdentifyIdentifyTimeCommandParams = - new LinkedHashMap(); + Map writeIdentifyIdentifyTimeCommandParams = new LinkedHashMap(); CommandParameterInfo identifyidentifyTimeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeIdentifyIdentifyTimeCommandParams.put("value", identifyidentifyTimeCommandParameterInfo); - InteractionInfo writeIdentifyIdentifyTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.IdentifyCluster) cluster) - .writeIdentifyTimeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeIdentifyIdentifyTimeCommandParams); - writeIdentifyInteractionInfo.put( - "writeIdentifyTimeAttribute", writeIdentifyIdentifyTimeAttributeInteractionInfo); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeIdentifyIdentifyTimeCommandParams.put( + "value", + identifyidentifyTimeCommandParameterInfo + ); + InteractionInfo writeIdentifyIdentifyTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster).writeIdentifyTimeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeIdentifyIdentifyTimeCommandParams + ); + writeIdentifyInteractionInfo.put("writeIdentifyTimeAttribute", writeIdentifyIdentifyTimeAttributeInteractionInfo); writeAttributeMap.put("identify", writeIdentifyInteractionInfo); Map writeGroupsInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("groups", writeGroupsInteractionInfo); Map writeScenesInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("scenes", writeScenesInteractionInfo); Map writeOnOffInteractionInfo = new LinkedHashMap<>(); - Map writeOnOffOnTimeCommandParams = - new LinkedHashMap(); + Map writeOnOffOnTimeCommandParams = new LinkedHashMap(); CommandParameterInfo onOffonTimeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeOnOffOnTimeCommandParams.put("value", onOffonTimeCommandParameterInfo); - InteractionInfo writeOnOffOnTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .writeOnTimeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOnOffOnTimeCommandParams); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeOnOffOnTimeCommandParams.put( + "value", + onOffonTimeCommandParameterInfo + ); + InteractionInfo writeOnOffOnTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).writeOnTimeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOnOffOnTimeCommandParams + ); writeOnOffInteractionInfo.put("writeOnTimeAttribute", writeOnOffOnTimeAttributeInteractionInfo); - Map writeOnOffOffWaitTimeCommandParams = - new LinkedHashMap(); + Map writeOnOffOffWaitTimeCommandParams = new LinkedHashMap(); CommandParameterInfo onOffoffWaitTimeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeOnOffOffWaitTimeCommandParams.put("value", onOffoffWaitTimeCommandParameterInfo); - InteractionInfo writeOnOffOffWaitTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .writeOffWaitTimeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOnOffOffWaitTimeCommandParams); - writeOnOffInteractionInfo.put( - "writeOffWaitTimeAttribute", writeOnOffOffWaitTimeAttributeInteractionInfo); - Map writeOnOffStartUpOnOffCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeOnOffOffWaitTimeCommandParams.put( + "value", + onOffoffWaitTimeCommandParameterInfo + ); + InteractionInfo writeOnOffOffWaitTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).writeOffWaitTimeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOnOffOffWaitTimeCommandParams + ); + writeOnOffInteractionInfo.put("writeOffWaitTimeAttribute", writeOnOffOffWaitTimeAttributeInteractionInfo); + Map writeOnOffStartUpOnOffCommandParams = new LinkedHashMap(); CommandParameterInfo onOffstartUpOnOffCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeOnOffStartUpOnOffCommandParams.put("value", onOffstartUpOnOffCommandParameterInfo); - InteractionInfo writeOnOffStartUpOnOffAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffCluster) cluster) - .writeStartUpOnOffAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOnOffStartUpOnOffCommandParams); - writeOnOffInteractionInfo.put( - "writeStartUpOnOffAttribute", writeOnOffStartUpOnOffAttributeInteractionInfo); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeOnOffStartUpOnOffCommandParams.put( + "value", + onOffstartUpOnOffCommandParameterInfo + ); + InteractionInfo writeOnOffStartUpOnOffAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster).writeStartUpOnOffAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOnOffStartUpOnOffCommandParams + ); + writeOnOffInteractionInfo.put("writeStartUpOnOffAttribute", writeOnOffStartUpOnOffAttributeInteractionInfo); writeAttributeMap.put("onOff", writeOnOffInteractionInfo); - Map writeOnOffSwitchConfigurationInteractionInfo = - new LinkedHashMap<>(); - Map writeOnOffSwitchConfigurationSwitchActionsCommandParams = - new LinkedHashMap(); + Map writeOnOffSwitchConfigurationInteractionInfo = new LinkedHashMap<>(); + Map writeOnOffSwitchConfigurationSwitchActionsCommandParams = new LinkedHashMap(); CommandParameterInfo onOffSwitchConfigurationswitchActionsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOnOffSwitchConfigurationSwitchActionsCommandParams.put( - "value", onOffSwitchConfigurationswitchActionsCommandParameterInfo); - InteractionInfo writeOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) - .writeSwitchActionsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOnOffSwitchConfigurationSwitchActionsCommandParams); - writeOnOffSwitchConfigurationInteractionInfo.put( - "writeSwitchActionsAttribute", - writeOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo); + "value", + onOffSwitchConfigurationswitchActionsCommandParameterInfo + ); + InteractionInfo writeOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster).writeSwitchActionsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOnOffSwitchConfigurationSwitchActionsCommandParams + ); + writeOnOffSwitchConfigurationInteractionInfo.put("writeSwitchActionsAttribute", writeOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo); writeAttributeMap.put("onOffSwitchConfiguration", writeOnOffSwitchConfigurationInteractionInfo); Map writeLevelControlInteractionInfo = new LinkedHashMap<>(); - Map writeLevelControlOptionsCommandParams = - new LinkedHashMap(); + Map writeLevelControlOptionsCommandParams = new LinkedHashMap(); CommandParameterInfo levelControloptionsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeLevelControlOptionsCommandParams.put("value", levelControloptionsCommandParameterInfo); - InteractionInfo writeLevelControlOptionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .writeOptionsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLevelControlOptionsCommandParams); - writeLevelControlInteractionInfo.put( - "writeOptionsAttribute", writeLevelControlOptionsAttributeInteractionInfo); - Map writeLevelControlOnOffTransitionTimeCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeLevelControlOptionsCommandParams.put( + "value", + levelControloptionsCommandParameterInfo + ); + InteractionInfo writeLevelControlOptionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).writeOptionsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLevelControlOptionsCommandParams + ); + writeLevelControlInteractionInfo.put("writeOptionsAttribute", writeLevelControlOptionsAttributeInteractionInfo); + Map writeLevelControlOnOffTransitionTimeCommandParams = new LinkedHashMap(); CommandParameterInfo levelControlonOffTransitionTimeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeLevelControlOnOffTransitionTimeCommandParams.put( - "value", levelControlonOffTransitionTimeCommandParameterInfo); - InteractionInfo writeLevelControlOnOffTransitionTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .writeOnOffTransitionTimeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLevelControlOnOffTransitionTimeCommandParams); - writeLevelControlInteractionInfo.put( - "writeOnOffTransitionTimeAttribute", - writeLevelControlOnOffTransitionTimeAttributeInteractionInfo); - Map writeLevelControlOnLevelCommandParams = - new LinkedHashMap(); + "value", + levelControlonOffTransitionTimeCommandParameterInfo + ); + InteractionInfo writeLevelControlOnOffTransitionTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).writeOnOffTransitionTimeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLevelControlOnOffTransitionTimeCommandParams + ); + writeLevelControlInteractionInfo.put("writeOnOffTransitionTimeAttribute", writeLevelControlOnOffTransitionTimeAttributeInteractionInfo); + Map writeLevelControlOnLevelCommandParams = new LinkedHashMap(); CommandParameterInfo levelControlonLevelCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeLevelControlOnLevelCommandParams.put("value", levelControlonLevelCommandParameterInfo); - InteractionInfo writeLevelControlOnLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .writeOnLevelAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLevelControlOnLevelCommandParams); - writeLevelControlInteractionInfo.put( - "writeOnLevelAttribute", writeLevelControlOnLevelAttributeInteractionInfo); - Map writeLevelControlOnTransitionTimeCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeLevelControlOnLevelCommandParams.put( + "value", + levelControlonLevelCommandParameterInfo + ); + InteractionInfo writeLevelControlOnLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).writeOnLevelAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLevelControlOnLevelCommandParams + ); + writeLevelControlInteractionInfo.put("writeOnLevelAttribute", writeLevelControlOnLevelAttributeInteractionInfo); + Map writeLevelControlOnTransitionTimeCommandParams = new LinkedHashMap(); CommandParameterInfo levelControlonTransitionTimeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeLevelControlOnTransitionTimeCommandParams.put( - "value", levelControlonTransitionTimeCommandParameterInfo); - InteractionInfo writeLevelControlOnTransitionTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .writeOnTransitionTimeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLevelControlOnTransitionTimeCommandParams); - writeLevelControlInteractionInfo.put( - "writeOnTransitionTimeAttribute", - writeLevelControlOnTransitionTimeAttributeInteractionInfo); - Map writeLevelControlOffTransitionTimeCommandParams = - new LinkedHashMap(); + "value", + levelControlonTransitionTimeCommandParameterInfo + ); + InteractionInfo writeLevelControlOnTransitionTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).writeOnTransitionTimeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLevelControlOnTransitionTimeCommandParams + ); + writeLevelControlInteractionInfo.put("writeOnTransitionTimeAttribute", writeLevelControlOnTransitionTimeAttributeInteractionInfo); + Map writeLevelControlOffTransitionTimeCommandParams = new LinkedHashMap(); CommandParameterInfo levelControloffTransitionTimeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeLevelControlOffTransitionTimeCommandParams.put( - "value", levelControloffTransitionTimeCommandParameterInfo); - InteractionInfo writeLevelControlOffTransitionTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .writeOffTransitionTimeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLevelControlOffTransitionTimeCommandParams); - writeLevelControlInteractionInfo.put( - "writeOffTransitionTimeAttribute", - writeLevelControlOffTransitionTimeAttributeInteractionInfo); - Map writeLevelControlDefaultMoveRateCommandParams = - new LinkedHashMap(); + "value", + levelControloffTransitionTimeCommandParameterInfo + ); + InteractionInfo writeLevelControlOffTransitionTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).writeOffTransitionTimeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLevelControlOffTransitionTimeCommandParams + ); + writeLevelControlInteractionInfo.put("writeOffTransitionTimeAttribute", writeLevelControlOffTransitionTimeAttributeInteractionInfo); + Map writeLevelControlDefaultMoveRateCommandParams = new LinkedHashMap(); CommandParameterInfo levelControldefaultMoveRateCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeLevelControlDefaultMoveRateCommandParams.put( - "value", levelControldefaultMoveRateCommandParameterInfo); - InteractionInfo writeLevelControlDefaultMoveRateAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .writeDefaultMoveRateAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLevelControlDefaultMoveRateCommandParams); - writeLevelControlInteractionInfo.put( - "writeDefaultMoveRateAttribute", writeLevelControlDefaultMoveRateAttributeInteractionInfo); - Map writeLevelControlStartUpCurrentLevelCommandParams = - new LinkedHashMap(); + "value", + levelControldefaultMoveRateCommandParameterInfo + ); + InteractionInfo writeLevelControlDefaultMoveRateAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).writeDefaultMoveRateAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLevelControlDefaultMoveRateCommandParams + ); + writeLevelControlInteractionInfo.put("writeDefaultMoveRateAttribute", writeLevelControlDefaultMoveRateAttributeInteractionInfo); + Map writeLevelControlStartUpCurrentLevelCommandParams = new LinkedHashMap(); CommandParameterInfo levelControlstartUpCurrentLevelCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeLevelControlStartUpCurrentLevelCommandParams.put( - "value", levelControlstartUpCurrentLevelCommandParameterInfo); - InteractionInfo writeLevelControlStartUpCurrentLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LevelControlCluster) cluster) - .writeStartUpCurrentLevelAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLevelControlStartUpCurrentLevelCommandParams); - writeLevelControlInteractionInfo.put( - "writeStartUpCurrentLevelAttribute", - writeLevelControlStartUpCurrentLevelAttributeInteractionInfo); + "value", + levelControlstartUpCurrentLevelCommandParameterInfo + ); + InteractionInfo writeLevelControlStartUpCurrentLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster).writeStartUpCurrentLevelAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLevelControlStartUpCurrentLevelCommandParams + ); + writeLevelControlInteractionInfo.put("writeStartUpCurrentLevelAttribute", writeLevelControlStartUpCurrentLevelAttributeInteractionInfo); writeAttributeMap.put("levelControl", writeLevelControlInteractionInfo); Map writeBinaryInputBasicInteractionInfo = new LinkedHashMap<>(); - Map writeBinaryInputBasicActiveTextCommandParams = - new LinkedHashMap(); + Map writeBinaryInputBasicActiveTextCommandParams = new LinkedHashMap(); CommandParameterInfo binaryInputBasicactiveTextCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBinaryInputBasicActiveTextCommandParams.put( - "value", binaryInputBasicactiveTextCommandParameterInfo); - InteractionInfo writeBinaryInputBasicActiveTextAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .writeActiveTextAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBinaryInputBasicActiveTextCommandParams); - writeBinaryInputBasicInteractionInfo.put( - "writeActiveTextAttribute", writeBinaryInputBasicActiveTextAttributeInteractionInfo); - Map writeBinaryInputBasicDescriptionCommandParams = - new LinkedHashMap(); + "value", + binaryInputBasicactiveTextCommandParameterInfo + ); + InteractionInfo writeBinaryInputBasicActiveTextAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).writeActiveTextAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBinaryInputBasicActiveTextCommandParams + ); + writeBinaryInputBasicInteractionInfo.put("writeActiveTextAttribute", writeBinaryInputBasicActiveTextAttributeInteractionInfo); + Map writeBinaryInputBasicDescriptionCommandParams = new LinkedHashMap(); CommandParameterInfo binaryInputBasicdescriptionCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBinaryInputBasicDescriptionCommandParams.put( - "value", binaryInputBasicdescriptionCommandParameterInfo); - InteractionInfo writeBinaryInputBasicDescriptionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .writeDescriptionAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBinaryInputBasicDescriptionCommandParams); - writeBinaryInputBasicInteractionInfo.put( - "writeDescriptionAttribute", writeBinaryInputBasicDescriptionAttributeInteractionInfo); - Map writeBinaryInputBasicInactiveTextCommandParams = - new LinkedHashMap(); + "value", + binaryInputBasicdescriptionCommandParameterInfo + ); + InteractionInfo writeBinaryInputBasicDescriptionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).writeDescriptionAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBinaryInputBasicDescriptionCommandParams + ); + writeBinaryInputBasicInteractionInfo.put("writeDescriptionAttribute", writeBinaryInputBasicDescriptionAttributeInteractionInfo); + Map writeBinaryInputBasicInactiveTextCommandParams = new LinkedHashMap(); CommandParameterInfo binaryInputBasicinactiveTextCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBinaryInputBasicInactiveTextCommandParams.put( - "value", binaryInputBasicinactiveTextCommandParameterInfo); - InteractionInfo writeBinaryInputBasicInactiveTextAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .writeInactiveTextAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBinaryInputBasicInactiveTextCommandParams); - writeBinaryInputBasicInteractionInfo.put( - "writeInactiveTextAttribute", writeBinaryInputBasicInactiveTextAttributeInteractionInfo); - Map writeBinaryInputBasicOutOfServiceCommandParams = - new LinkedHashMap(); + "value", + binaryInputBasicinactiveTextCommandParameterInfo + ); + InteractionInfo writeBinaryInputBasicInactiveTextAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).writeInactiveTextAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBinaryInputBasicInactiveTextCommandParams + ); + writeBinaryInputBasicInteractionInfo.put("writeInactiveTextAttribute", writeBinaryInputBasicInactiveTextAttributeInteractionInfo); + Map writeBinaryInputBasicOutOfServiceCommandParams = new LinkedHashMap(); CommandParameterInfo binaryInputBasicoutOfServiceCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeBinaryInputBasicOutOfServiceCommandParams.put( - "value", binaryInputBasicoutOfServiceCommandParameterInfo); - InteractionInfo writeBinaryInputBasicOutOfServiceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .writeOutOfServiceAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBinaryInputBasicOutOfServiceCommandParams); - writeBinaryInputBasicInteractionInfo.put( - "writeOutOfServiceAttribute", writeBinaryInputBasicOutOfServiceAttributeInteractionInfo); - Map writeBinaryInputBasicPresentValueCommandParams = - new LinkedHashMap(); + "value", + binaryInputBasicoutOfServiceCommandParameterInfo + ); + InteractionInfo writeBinaryInputBasicOutOfServiceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).writeOutOfServiceAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBinaryInputBasicOutOfServiceCommandParams + ); + writeBinaryInputBasicInteractionInfo.put("writeOutOfServiceAttribute", writeBinaryInputBasicOutOfServiceAttributeInteractionInfo); + Map writeBinaryInputBasicPresentValueCommandParams = new LinkedHashMap(); CommandParameterInfo binaryInputBasicpresentValueCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeBinaryInputBasicPresentValueCommandParams.put( - "value", binaryInputBasicpresentValueCommandParameterInfo); - InteractionInfo writeBinaryInputBasicPresentValueAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .writePresentValueAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBinaryInputBasicPresentValueCommandParams); - writeBinaryInputBasicInteractionInfo.put( - "writePresentValueAttribute", writeBinaryInputBasicPresentValueAttributeInteractionInfo); - Map writeBinaryInputBasicReliabilityCommandParams = - new LinkedHashMap(); + "value", + binaryInputBasicpresentValueCommandParameterInfo + ); + InteractionInfo writeBinaryInputBasicPresentValueAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).writePresentValueAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBinaryInputBasicPresentValueCommandParams + ); + writeBinaryInputBasicInteractionInfo.put("writePresentValueAttribute", writeBinaryInputBasicPresentValueAttributeInteractionInfo); + Map writeBinaryInputBasicReliabilityCommandParams = new LinkedHashMap(); CommandParameterInfo binaryInputBasicreliabilityCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBinaryInputBasicReliabilityCommandParams.put( - "value", binaryInputBasicreliabilityCommandParameterInfo); - InteractionInfo writeBinaryInputBasicReliabilityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BinaryInputBasicCluster) cluster) - .writeReliabilityAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBinaryInputBasicReliabilityCommandParams); - writeBinaryInputBasicInteractionInfo.put( - "writeReliabilityAttribute", writeBinaryInputBasicReliabilityAttributeInteractionInfo); + "value", + binaryInputBasicreliabilityCommandParameterInfo + ); + InteractionInfo writeBinaryInputBasicReliabilityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster).writeReliabilityAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBinaryInputBasicReliabilityCommandParams + ); + writeBinaryInputBasicInteractionInfo.put("writeReliabilityAttribute", writeBinaryInputBasicReliabilityAttributeInteractionInfo); writeAttributeMap.put("binaryInputBasic", writeBinaryInputBasicInteractionInfo); Map writePulseWidthModulationInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("pulseWidthModulation", writePulseWidthModulationInteractionInfo); @@ -356,189 +447,222 @@ public Map> getWriteAttributeMap() { Map writeActionsInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("actions", writeActionsInteractionInfo); Map writeBasicInformationInteractionInfo = new LinkedHashMap<>(); - Map writeBasicInformationNodeLabelCommandParams = - new LinkedHashMap(); + Map writeBasicInformationNodeLabelCommandParams = new LinkedHashMap(); CommandParameterInfo basicInformationnodeLabelCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBasicInformationNodeLabelCommandParams.put( - "value", basicInformationnodeLabelCommandParameterInfo); - InteractionInfo writeBasicInformationNodeLabelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .writeNodeLabelAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBasicInformationNodeLabelCommandParams); - writeBasicInformationInteractionInfo.put( - "writeNodeLabelAttribute", writeBasicInformationNodeLabelAttributeInteractionInfo); - Map writeBasicInformationLocationCommandParams = - new LinkedHashMap(); + "value", + basicInformationnodeLabelCommandParameterInfo + ); + InteractionInfo writeBasicInformationNodeLabelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).writeNodeLabelAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBasicInformationNodeLabelCommandParams + ); + writeBasicInformationInteractionInfo.put("writeNodeLabelAttribute", writeBasicInformationNodeLabelAttributeInteractionInfo); + Map writeBasicInformationLocationCommandParams = new LinkedHashMap(); CommandParameterInfo basicInformationlocationCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBasicInformationLocationCommandParams.put( - "value", basicInformationlocationCommandParameterInfo); - InteractionInfo writeBasicInformationLocationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .writeLocationAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBasicInformationLocationCommandParams); - writeBasicInformationInteractionInfo.put( - "writeLocationAttribute", writeBasicInformationLocationAttributeInteractionInfo); - Map writeBasicInformationLocalConfigDisabledCommandParams = - new LinkedHashMap(); + "value", + basicInformationlocationCommandParameterInfo + ); + InteractionInfo writeBasicInformationLocationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).writeLocationAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBasicInformationLocationCommandParams + ); + writeBasicInformationInteractionInfo.put("writeLocationAttribute", writeBasicInformationLocationAttributeInteractionInfo); + Map writeBasicInformationLocalConfigDisabledCommandParams = new LinkedHashMap(); CommandParameterInfo basicInformationlocalConfigDisabledCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeBasicInformationLocalConfigDisabledCommandParams.put( - "value", basicInformationlocalConfigDisabledCommandParameterInfo); - InteractionInfo writeBasicInformationLocalConfigDisabledAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BasicInformationCluster) cluster) - .writeLocalConfigDisabledAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBasicInformationLocalConfigDisabledCommandParams); - writeBasicInformationInteractionInfo.put( - "writeLocalConfigDisabledAttribute", - writeBasicInformationLocalConfigDisabledAttributeInteractionInfo); + "value", + basicInformationlocalConfigDisabledCommandParameterInfo + ); + InteractionInfo writeBasicInformationLocalConfigDisabledAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicInformationCluster) cluster).writeLocalConfigDisabledAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBasicInformationLocalConfigDisabledCommandParams + ); + writeBasicInformationInteractionInfo.put("writeLocalConfigDisabledAttribute", writeBasicInformationLocalConfigDisabledAttributeInteractionInfo); writeAttributeMap.put("basicInformation", writeBasicInformationInteractionInfo); - Map writeOtaSoftwareUpdateProviderInteractionInfo = - new LinkedHashMap<>(); - writeAttributeMap.put( - "otaSoftwareUpdateProvider", writeOtaSoftwareUpdateProviderInteractionInfo); - Map writeOtaSoftwareUpdateRequestorInteractionInfo = - new LinkedHashMap<>(); - writeAttributeMap.put( - "otaSoftwareUpdateRequestor", writeOtaSoftwareUpdateRequestorInteractionInfo); - Map writeLocalizationConfigurationInteractionInfo = - new LinkedHashMap<>(); - Map writeLocalizationConfigurationActiveLocaleCommandParams = - new LinkedHashMap(); + Map writeOtaSoftwareUpdateProviderInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("otaSoftwareUpdateProvider", writeOtaSoftwareUpdateProviderInteractionInfo); + Map writeOtaSoftwareUpdateRequestorInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("otaSoftwareUpdateRequestor", writeOtaSoftwareUpdateRequestorInteractionInfo); + Map writeLocalizationConfigurationInteractionInfo = new LinkedHashMap<>(); + Map writeLocalizationConfigurationActiveLocaleCommandParams = new LinkedHashMap(); CommandParameterInfo localizationConfigurationactiveLocaleCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeLocalizationConfigurationActiveLocaleCommandParams.put( - "value", localizationConfigurationactiveLocaleCommandParameterInfo); - InteractionInfo writeLocalizationConfigurationActiveLocaleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.LocalizationConfigurationCluster) cluster) - .writeActiveLocaleAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeLocalizationConfigurationActiveLocaleCommandParams); - writeLocalizationConfigurationInteractionInfo.put( - "writeActiveLocaleAttribute", - writeLocalizationConfigurationActiveLocaleAttributeInteractionInfo); - writeAttributeMap.put( - "localizationConfiguration", writeLocalizationConfigurationInteractionInfo); + "value", + localizationConfigurationactiveLocaleCommandParameterInfo + ); + InteractionInfo writeLocalizationConfigurationActiveLocaleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LocalizationConfigurationCluster) cluster).writeActiveLocaleAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeLocalizationConfigurationActiveLocaleCommandParams + ); + writeLocalizationConfigurationInteractionInfo.put("writeActiveLocaleAttribute", writeLocalizationConfigurationActiveLocaleAttributeInteractionInfo); + writeAttributeMap.put("localizationConfiguration", writeLocalizationConfigurationInteractionInfo); Map writeTimeFormatLocalizationInteractionInfo = new LinkedHashMap<>(); - Map writeTimeFormatLocalizationHourFormatCommandParams = - new LinkedHashMap(); + Map writeTimeFormatLocalizationHourFormatCommandParams = new LinkedHashMap(); CommandParameterInfo timeFormatLocalizationhourFormatCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeTimeFormatLocalizationHourFormatCommandParams.put( - "value", timeFormatLocalizationhourFormatCommandParameterInfo); - InteractionInfo writeTimeFormatLocalizationHourFormatAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .writeHourFormatAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeTimeFormatLocalizationHourFormatCommandParams); - writeTimeFormatLocalizationInteractionInfo.put( - "writeHourFormatAttribute", writeTimeFormatLocalizationHourFormatAttributeInteractionInfo); - Map writeTimeFormatLocalizationActiveCalendarTypeCommandParams = - new LinkedHashMap(); + "value", + timeFormatLocalizationhourFormatCommandParameterInfo + ); + InteractionInfo writeTimeFormatLocalizationHourFormatAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).writeHourFormatAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeTimeFormatLocalizationHourFormatCommandParams + ); + writeTimeFormatLocalizationInteractionInfo.put("writeHourFormatAttribute", writeTimeFormatLocalizationHourFormatAttributeInteractionInfo); + Map writeTimeFormatLocalizationActiveCalendarTypeCommandParams = new LinkedHashMap(); CommandParameterInfo timeFormatLocalizationactiveCalendarTypeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeTimeFormatLocalizationActiveCalendarTypeCommandParams.put( - "value", timeFormatLocalizationactiveCalendarTypeCommandParameterInfo); - InteractionInfo writeTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.TimeFormatLocalizationCluster) cluster) - .writeActiveCalendarTypeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeTimeFormatLocalizationActiveCalendarTypeCommandParams); - writeTimeFormatLocalizationInteractionInfo.put( - "writeActiveCalendarTypeAttribute", - writeTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo); + "value", + timeFormatLocalizationactiveCalendarTypeCommandParameterInfo + ); + InteractionInfo writeTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TimeFormatLocalizationCluster) cluster).writeActiveCalendarTypeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeTimeFormatLocalizationActiveCalendarTypeCommandParams + ); + writeTimeFormatLocalizationInteractionInfo.put("writeActiveCalendarTypeAttribute", writeTimeFormatLocalizationActiveCalendarTypeAttributeInteractionInfo); writeAttributeMap.put("timeFormatLocalization", writeTimeFormatLocalizationInteractionInfo); Map writeUnitLocalizationInteractionInfo = new LinkedHashMap<>(); - Map writeUnitLocalizationTemperatureUnitCommandParams = - new LinkedHashMap(); + Map writeUnitLocalizationTemperatureUnitCommandParams = new LinkedHashMap(); CommandParameterInfo unitLocalizationtemperatureUnitCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitLocalizationTemperatureUnitCommandParams.put( - "value", unitLocalizationtemperatureUnitCommandParameterInfo); - InteractionInfo writeUnitLocalizationTemperatureUnitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitLocalizationCluster) cluster) - .writeTemperatureUnitAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitLocalizationTemperatureUnitCommandParams); - writeUnitLocalizationInteractionInfo.put( - "writeTemperatureUnitAttribute", - writeUnitLocalizationTemperatureUnitAttributeInteractionInfo); + "value", + unitLocalizationtemperatureUnitCommandParameterInfo + ); + InteractionInfo writeUnitLocalizationTemperatureUnitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitLocalizationCluster) cluster).writeTemperatureUnitAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitLocalizationTemperatureUnitCommandParams + ); + writeUnitLocalizationInteractionInfo.put("writeTemperatureUnitAttribute", writeUnitLocalizationTemperatureUnitAttributeInteractionInfo); writeAttributeMap.put("unitLocalization", writeUnitLocalizationInteractionInfo); - Map writePowerSourceConfigurationInteractionInfo = - new LinkedHashMap<>(); + Map writePowerSourceConfigurationInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("powerSourceConfiguration", writePowerSourceConfigurationInteractionInfo); Map writePowerSourceInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("powerSource", writePowerSourceInteractionInfo); Map writeGeneralCommissioningInteractionInfo = new LinkedHashMap<>(); - Map writeGeneralCommissioningBreadcrumbCommandParams = - new LinkedHashMap(); + Map writeGeneralCommissioningBreadcrumbCommandParams = new LinkedHashMap(); CommandParameterInfo generalCommissioningbreadcrumbCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeGeneralCommissioningBreadcrumbCommandParams.put( - "value", generalCommissioningbreadcrumbCommandParameterInfo); - InteractionInfo writeGeneralCommissioningBreadcrumbAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.GeneralCommissioningCluster) cluster) - .writeBreadcrumbAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeGeneralCommissioningBreadcrumbCommandParams); - writeGeneralCommissioningInteractionInfo.put( - "writeBreadcrumbAttribute", writeGeneralCommissioningBreadcrumbAttributeInteractionInfo); + "value", + generalCommissioningbreadcrumbCommandParameterInfo + ); + InteractionInfo writeGeneralCommissioningBreadcrumbAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster).writeBreadcrumbAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeGeneralCommissioningBreadcrumbCommandParams + ); + writeGeneralCommissioningInteractionInfo.put("writeBreadcrumbAttribute", writeGeneralCommissioningBreadcrumbAttributeInteractionInfo); writeAttributeMap.put("generalCommissioning", writeGeneralCommissioningInteractionInfo); Map writeNetworkCommissioningInteractionInfo = new LinkedHashMap<>(); - Map writeNetworkCommissioningInterfaceEnabledCommandParams = - new LinkedHashMap(); + Map writeNetworkCommissioningInterfaceEnabledCommandParams = new LinkedHashMap(); CommandParameterInfo networkCommissioninginterfaceEnabledCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeNetworkCommissioningInterfaceEnabledCommandParams.put( - "value", networkCommissioninginterfaceEnabledCommandParameterInfo); - InteractionInfo writeNetworkCommissioningInterfaceEnabledAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.NetworkCommissioningCluster) cluster) - .writeInterfaceEnabledAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeNetworkCommissioningInterfaceEnabledCommandParams); - writeNetworkCommissioningInteractionInfo.put( - "writeInterfaceEnabledAttribute", - writeNetworkCommissioningInterfaceEnabledAttributeInteractionInfo); + "value", + networkCommissioninginterfaceEnabledCommandParameterInfo + ); + InteractionInfo writeNetworkCommissioningInterfaceEnabledAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster).writeInterfaceEnabledAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeNetworkCommissioningInterfaceEnabledCommandParams + ); + writeNetworkCommissioningInteractionInfo.put("writeInterfaceEnabledAttribute", writeNetworkCommissioningInterfaceEnabledAttributeInteractionInfo); writeAttributeMap.put("networkCommissioning", writeNetworkCommissioningInteractionInfo); Map writeDiagnosticLogsInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("diagnosticLogs", writeDiagnosticLogsInteractionInfo); @@ -546,45 +670,42 @@ public Map> getWriteAttributeMap() { writeAttributeMap.put("generalDiagnostics", writeGeneralDiagnosticsInteractionInfo); Map writeSoftwareDiagnosticsInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("softwareDiagnostics", writeSoftwareDiagnosticsInteractionInfo); - Map writeThreadNetworkDiagnosticsInteractionInfo = - new LinkedHashMap<>(); + Map writeThreadNetworkDiagnosticsInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("threadNetworkDiagnostics", writeThreadNetworkDiagnosticsInteractionInfo); Map writeWiFiNetworkDiagnosticsInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("wiFiNetworkDiagnostics", writeWiFiNetworkDiagnosticsInteractionInfo); - Map writeEthernetNetworkDiagnosticsInteractionInfo = - new LinkedHashMap<>(); - writeAttributeMap.put( - "ethernetNetworkDiagnostics", writeEthernetNetworkDiagnosticsInteractionInfo); + Map writeEthernetNetworkDiagnosticsInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("ethernetNetworkDiagnostics", writeEthernetNetworkDiagnosticsInteractionInfo); Map writeTimeSynchronizationInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("timeSynchronization", writeTimeSynchronizationInteractionInfo); - Map writeBridgedDeviceBasicInformationInteractionInfo = - new LinkedHashMap<>(); - Map writeBridgedDeviceBasicInformationNodeLabelCommandParams = - new LinkedHashMap(); + Map writeBridgedDeviceBasicInformationInteractionInfo = new LinkedHashMap<>(); + Map writeBridgedDeviceBasicInformationNodeLabelCommandParams = new LinkedHashMap(); CommandParameterInfo bridgedDeviceBasicInformationnodeLabelCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBridgedDeviceBasicInformationNodeLabelCommandParams.put( - "value", bridgedDeviceBasicInformationnodeLabelCommandParameterInfo); - InteractionInfo writeBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster) - .writeNodeLabelAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBridgedDeviceBasicInformationNodeLabelCommandParams); - writeBridgedDeviceBasicInformationInteractionInfo.put( - "writeNodeLabelAttribute", - writeBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo); - writeAttributeMap.put( - "bridgedDeviceBasicInformation", writeBridgedDeviceBasicInformationInteractionInfo); + "value", + bridgedDeviceBasicInformationnodeLabelCommandParameterInfo + ); + InteractionInfo writeBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster).writeNodeLabelAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBridgedDeviceBasicInformationNodeLabelCommandParams + ); + writeBridgedDeviceBasicInformationInteractionInfo.put("writeNodeLabelAttribute", writeBridgedDeviceBasicInformationNodeLabelAttributeInteractionInfo); + writeAttributeMap.put("bridgedDeviceBasicInformation", writeBridgedDeviceBasicInformationInteractionInfo); Map writeSwitchInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("switch", writeSwitchInteractionInfo); - Map writeAdministratorCommissioningInteractionInfo = - new LinkedHashMap<>(); - writeAttributeMap.put( - "administratorCommissioning", writeAdministratorCommissioningInteractionInfo); + Map writeAdministratorCommissioningInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("administratorCommissioning", writeAdministratorCommissioningInteractionInfo); Map writeOperationalCredentialsInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("operationalCredentials", writeOperationalCredentialsInteractionInfo); Map writeGroupKeyManagementInteractionInfo = new LinkedHashMap<>(); @@ -604,101 +725,116 @@ public Map> getWriteAttributeMap() { Map writeIcdManagementInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("icdManagement", writeIcdManagementInteractionInfo); Map writeModeSelectInteractionInfo = new LinkedHashMap<>(); - Map writeModeSelectStartUpModeCommandParams = - new LinkedHashMap(); + Map writeModeSelectStartUpModeCommandParams = new LinkedHashMap(); CommandParameterInfo modeSelectstartUpModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeModeSelectStartUpModeCommandParams.put("value", modeSelectstartUpModeCommandParameterInfo); - InteractionInfo writeModeSelectStartUpModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .writeStartUpModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeModeSelectStartUpModeCommandParams); - writeModeSelectInteractionInfo.put( - "writeStartUpModeAttribute", writeModeSelectStartUpModeAttributeInteractionInfo); - Map writeModeSelectOnModeCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeModeSelectStartUpModeCommandParams.put( + "value", + modeSelectstartUpModeCommandParameterInfo + ); + InteractionInfo writeModeSelectStartUpModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).writeStartUpModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeModeSelectStartUpModeCommandParams + ); + writeModeSelectInteractionInfo.put("writeStartUpModeAttribute", writeModeSelectStartUpModeAttributeInteractionInfo); + Map writeModeSelectOnModeCommandParams = new LinkedHashMap(); CommandParameterInfo modeSelectonModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeModeSelectOnModeCommandParams.put("value", modeSelectonModeCommandParameterInfo); - InteractionInfo writeModeSelectOnModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ModeSelectCluster) cluster) - .writeOnModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeModeSelectOnModeCommandParams); - writeModeSelectInteractionInfo.put( - "writeOnModeAttribute", writeModeSelectOnModeAttributeInteractionInfo); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeModeSelectOnModeCommandParams.put( + "value", + modeSelectonModeCommandParameterInfo + ); + InteractionInfo writeModeSelectOnModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster).writeOnModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeModeSelectOnModeCommandParams + ); + writeModeSelectInteractionInfo.put("writeOnModeAttribute", writeModeSelectOnModeAttributeInteractionInfo); writeAttributeMap.put("modeSelect", writeModeSelectInteractionInfo); Map writeTemperatureControlInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("temperatureControl", writeTemperatureControlInteractionInfo); Map writeRefrigeratorAlarmInteractionInfo = new LinkedHashMap<>(); - Map writeRefrigeratorAlarmMaskCommandParams = - new LinkedHashMap(); + Map writeRefrigeratorAlarmMaskCommandParams = new LinkedHashMap(); CommandParameterInfo refrigeratorAlarmmaskCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeRefrigeratorAlarmMaskCommandParams.put("value", refrigeratorAlarmmaskCommandParameterInfo); - InteractionInfo writeRefrigeratorAlarmMaskAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.RefrigeratorAlarmCluster) cluster) - .writeMaskAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeRefrigeratorAlarmMaskCommandParams); - writeRefrigeratorAlarmInteractionInfo.put( - "writeMaskAttribute", writeRefrigeratorAlarmMaskAttributeInteractionInfo); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeRefrigeratorAlarmMaskCommandParams.put( + "value", + refrigeratorAlarmmaskCommandParameterInfo + ); + InteractionInfo writeRefrigeratorAlarmMaskAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RefrigeratorAlarmCluster) cluster).writeMaskAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeRefrigeratorAlarmMaskCommandParams + ); + writeRefrigeratorAlarmInteractionInfo.put("writeMaskAttribute", writeRefrigeratorAlarmMaskAttributeInteractionInfo); writeAttributeMap.put("refrigeratorAlarm", writeRefrigeratorAlarmInteractionInfo); Map writeAirQualityInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("airQuality", writeAirQualityInteractionInfo); Map writeSmokeCoAlarmInteractionInfo = new LinkedHashMap<>(); - Map writeSmokeCoAlarmSensitivityLevelCommandParams = - new LinkedHashMap(); + Map writeSmokeCoAlarmSensitivityLevelCommandParams = new LinkedHashMap(); CommandParameterInfo smokeCoAlarmsensitivityLevelCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeSmokeCoAlarmSensitivityLevelCommandParams.put( - "value", smokeCoAlarmsensitivityLevelCommandParameterInfo); - InteractionInfo writeSmokeCoAlarmSensitivityLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.SmokeCoAlarmCluster) cluster) - .writeSensitivityLevelAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeSmokeCoAlarmSensitivityLevelCommandParams); - writeSmokeCoAlarmInteractionInfo.put( - "writeSensitivityLevelAttribute", - writeSmokeCoAlarmSensitivityLevelAttributeInteractionInfo); + "value", + smokeCoAlarmsensitivityLevelCommandParameterInfo + ); + InteractionInfo writeSmokeCoAlarmSensitivityLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SmokeCoAlarmCluster) cluster).writeSensitivityLevelAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeSmokeCoAlarmSensitivityLevelCommandParams + ); + writeSmokeCoAlarmInteractionInfo.put("writeSensitivityLevelAttribute", writeSmokeCoAlarmSensitivityLevelAttributeInteractionInfo); writeAttributeMap.put("smokeCoAlarm", writeSmokeCoAlarmInteractionInfo); Map writeHepaFilterMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("hepaFilterMonitoring", writeHepaFilterMonitoringInteractionInfo); - Map writeActivatedCarbonFilterMonitoringInteractionInfo = - new LinkedHashMap<>(); - writeAttributeMap.put( - "activatedCarbonFilterMonitoring", writeActivatedCarbonFilterMonitoringInteractionInfo); - Map writeCeramicFilterMonitoringInteractionInfo = - new LinkedHashMap<>(); + Map writeActivatedCarbonFilterMonitoringInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("activatedCarbonFilterMonitoring", writeActivatedCarbonFilterMonitoringInteractionInfo); + Map writeCeramicFilterMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("ceramicFilterMonitoring", writeCeramicFilterMonitoringInteractionInfo); - Map writeElectrostaticFilterMonitoringInteractionInfo = - new LinkedHashMap<>(); - writeAttributeMap.put( - "electrostaticFilterMonitoring", writeElectrostaticFilterMonitoringInteractionInfo); + Map writeElectrostaticFilterMonitoringInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("electrostaticFilterMonitoring", writeElectrostaticFilterMonitoringInteractionInfo); Map writeUvFilterMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("uvFilterMonitoring", writeUvFilterMonitoringInteractionInfo); - Map writeIonizingFilterMonitoringInteractionInfo = - new LinkedHashMap<>(); + Map writeIonizingFilterMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("ionizingFilterMonitoring", writeIonizingFilterMonitoringInteractionInfo); - Map writeZeoliteFilterMonitoringInteractionInfo = - new LinkedHashMap<>(); + Map writeZeoliteFilterMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("zeoliteFilterMonitoring", writeZeoliteFilterMonitoringInteractionInfo); Map writeOzoneFilterMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("ozoneFilterMonitoring", writeOzoneFilterMonitoringInteractionInfo); @@ -708,1578 +844,1961 @@ public Map> getWriteAttributeMap() { writeAttributeMap.put("fuelTankMonitoring", writeFuelTankMonitoringInteractionInfo); Map writeInkCartridgeMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("inkCartridgeMonitoring", writeInkCartridgeMonitoringInteractionInfo); - Map writeTonerCartridgeMonitoringInteractionInfo = - new LinkedHashMap<>(); + Map writeTonerCartridgeMonitoringInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("tonerCartridgeMonitoring", writeTonerCartridgeMonitoringInteractionInfo); Map writeDoorLockInteractionInfo = new LinkedHashMap<>(); - Map writeDoorLockDoorOpenEventsCommandParams = - new LinkedHashMap(); + Map writeDoorLockDoorOpenEventsCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockdoorOpenEventsCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeDoorLockDoorOpenEventsCommandParams.put( - "value", doorLockdoorOpenEventsCommandParameterInfo); - InteractionInfo writeDoorLockDoorOpenEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeDoorOpenEventsAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockDoorOpenEventsCommandParams); - writeDoorLockInteractionInfo.put( - "writeDoorOpenEventsAttribute", writeDoorLockDoorOpenEventsAttributeInteractionInfo); - Map writeDoorLockDoorClosedEventsCommandParams = - new LinkedHashMap(); + "value", + doorLockdoorOpenEventsCommandParameterInfo + ); + InteractionInfo writeDoorLockDoorOpenEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeDoorOpenEventsAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockDoorOpenEventsCommandParams + ); + writeDoorLockInteractionInfo.put("writeDoorOpenEventsAttribute", writeDoorLockDoorOpenEventsAttributeInteractionInfo); + Map writeDoorLockDoorClosedEventsCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockdoorClosedEventsCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeDoorLockDoorClosedEventsCommandParams.put( - "value", doorLockdoorClosedEventsCommandParameterInfo); - InteractionInfo writeDoorLockDoorClosedEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeDoorClosedEventsAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockDoorClosedEventsCommandParams); - writeDoorLockInteractionInfo.put( - "writeDoorClosedEventsAttribute", writeDoorLockDoorClosedEventsAttributeInteractionInfo); - Map writeDoorLockOpenPeriodCommandParams = - new LinkedHashMap(); + "value", + doorLockdoorClosedEventsCommandParameterInfo + ); + InteractionInfo writeDoorLockDoorClosedEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeDoorClosedEventsAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockDoorClosedEventsCommandParams + ); + writeDoorLockInteractionInfo.put("writeDoorClosedEventsAttribute", writeDoorLockDoorClosedEventsAttributeInteractionInfo); + Map writeDoorLockOpenPeriodCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockopenPeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeDoorLockOpenPeriodCommandParams.put("value", doorLockopenPeriodCommandParameterInfo); - InteractionInfo writeDoorLockOpenPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeOpenPeriodAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockOpenPeriodCommandParams); - writeDoorLockInteractionInfo.put( - "writeOpenPeriodAttribute", writeDoorLockOpenPeriodAttributeInteractionInfo); - Map writeDoorLockLanguageCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeDoorLockOpenPeriodCommandParams.put( + "value", + doorLockopenPeriodCommandParameterInfo + ); + InteractionInfo writeDoorLockOpenPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeOpenPeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockOpenPeriodCommandParams + ); + writeDoorLockInteractionInfo.put("writeOpenPeriodAttribute", writeDoorLockOpenPeriodAttributeInteractionInfo); + Map writeDoorLockLanguageCommandParams = new LinkedHashMap(); CommandParameterInfo doorLocklanguageCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); - writeDoorLockLanguageCommandParams.put("value", doorLocklanguageCommandParameterInfo); - InteractionInfo writeDoorLockLanguageAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeLanguageAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockLanguageCommandParams); - writeDoorLockInteractionInfo.put( - "writeLanguageAttribute", writeDoorLockLanguageAttributeInteractionInfo); - Map writeDoorLockLEDSettingsCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + String.class, + String.class + ); + writeDoorLockLanguageCommandParams.put( + "value", + doorLocklanguageCommandParameterInfo + ); + InteractionInfo writeDoorLockLanguageAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeLanguageAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockLanguageCommandParams + ); + writeDoorLockInteractionInfo.put("writeLanguageAttribute", writeDoorLockLanguageAttributeInteractionInfo); + Map writeDoorLockLEDSettingsCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockLEDSettingsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeDoorLockLEDSettingsCommandParams.put("value", doorLockLEDSettingsCommandParameterInfo); - InteractionInfo writeDoorLockLEDSettingsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeLEDSettingsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockLEDSettingsCommandParams); - writeDoorLockInteractionInfo.put( - "writeLEDSettingsAttribute", writeDoorLockLEDSettingsAttributeInteractionInfo); - Map writeDoorLockAutoRelockTimeCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeDoorLockLEDSettingsCommandParams.put( + "value", + doorLockLEDSettingsCommandParameterInfo + ); + InteractionInfo writeDoorLockLEDSettingsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeLEDSettingsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockLEDSettingsCommandParams + ); + writeDoorLockInteractionInfo.put("writeLEDSettingsAttribute", writeDoorLockLEDSettingsAttributeInteractionInfo); + Map writeDoorLockAutoRelockTimeCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockautoRelockTimeCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeDoorLockAutoRelockTimeCommandParams.put( - "value", doorLockautoRelockTimeCommandParameterInfo); - InteractionInfo writeDoorLockAutoRelockTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeAutoRelockTimeAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockAutoRelockTimeCommandParams); - writeDoorLockInteractionInfo.put( - "writeAutoRelockTimeAttribute", writeDoorLockAutoRelockTimeAttributeInteractionInfo); - Map writeDoorLockSoundVolumeCommandParams = - new LinkedHashMap(); + "value", + doorLockautoRelockTimeCommandParameterInfo + ); + InteractionInfo writeDoorLockAutoRelockTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeAutoRelockTimeAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockAutoRelockTimeCommandParams + ); + writeDoorLockInteractionInfo.put("writeAutoRelockTimeAttribute", writeDoorLockAutoRelockTimeAttributeInteractionInfo); + Map writeDoorLockSoundVolumeCommandParams = new LinkedHashMap(); CommandParameterInfo doorLocksoundVolumeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeDoorLockSoundVolumeCommandParams.put("value", doorLocksoundVolumeCommandParameterInfo); - InteractionInfo writeDoorLockSoundVolumeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeSoundVolumeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockSoundVolumeCommandParams); - writeDoorLockInteractionInfo.put( - "writeSoundVolumeAttribute", writeDoorLockSoundVolumeAttributeInteractionInfo); - Map writeDoorLockOperatingModeCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeDoorLockSoundVolumeCommandParams.put( + "value", + doorLocksoundVolumeCommandParameterInfo + ); + InteractionInfo writeDoorLockSoundVolumeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeSoundVolumeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockSoundVolumeCommandParams + ); + writeDoorLockInteractionInfo.put("writeSoundVolumeAttribute", writeDoorLockSoundVolumeAttributeInteractionInfo); + Map writeDoorLockOperatingModeCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockoperatingModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeDoorLockOperatingModeCommandParams.put("value", doorLockoperatingModeCommandParameterInfo); - InteractionInfo writeDoorLockOperatingModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeOperatingModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockOperatingModeCommandParams); - writeDoorLockInteractionInfo.put( - "writeOperatingModeAttribute", writeDoorLockOperatingModeAttributeInteractionInfo); - Map writeDoorLockEnableLocalProgrammingCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeDoorLockOperatingModeCommandParams.put( + "value", + doorLockoperatingModeCommandParameterInfo + ); + InteractionInfo writeDoorLockOperatingModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeOperatingModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockOperatingModeCommandParams + ); + writeDoorLockInteractionInfo.put("writeOperatingModeAttribute", writeDoorLockOperatingModeAttributeInteractionInfo); + Map writeDoorLockEnableLocalProgrammingCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockenableLocalProgrammingCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeDoorLockEnableLocalProgrammingCommandParams.put( - "value", doorLockenableLocalProgrammingCommandParameterInfo); - InteractionInfo writeDoorLockEnableLocalProgrammingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeEnableLocalProgrammingAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockEnableLocalProgrammingCommandParams); - writeDoorLockInteractionInfo.put( - "writeEnableLocalProgrammingAttribute", - writeDoorLockEnableLocalProgrammingAttributeInteractionInfo); - Map writeDoorLockEnableOneTouchLockingCommandParams = - new LinkedHashMap(); + "value", + doorLockenableLocalProgrammingCommandParameterInfo + ); + InteractionInfo writeDoorLockEnableLocalProgrammingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeEnableLocalProgrammingAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockEnableLocalProgrammingCommandParams + ); + writeDoorLockInteractionInfo.put("writeEnableLocalProgrammingAttribute", writeDoorLockEnableLocalProgrammingAttributeInteractionInfo); + Map writeDoorLockEnableOneTouchLockingCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockenableOneTouchLockingCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeDoorLockEnableOneTouchLockingCommandParams.put( - "value", doorLockenableOneTouchLockingCommandParameterInfo); - InteractionInfo writeDoorLockEnableOneTouchLockingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeEnableOneTouchLockingAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockEnableOneTouchLockingCommandParams); - writeDoorLockInteractionInfo.put( - "writeEnableOneTouchLockingAttribute", - writeDoorLockEnableOneTouchLockingAttributeInteractionInfo); - Map writeDoorLockEnableInsideStatusLEDCommandParams = - new LinkedHashMap(); + "value", + doorLockenableOneTouchLockingCommandParameterInfo + ); + InteractionInfo writeDoorLockEnableOneTouchLockingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeEnableOneTouchLockingAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockEnableOneTouchLockingCommandParams + ); + writeDoorLockInteractionInfo.put("writeEnableOneTouchLockingAttribute", writeDoorLockEnableOneTouchLockingAttributeInteractionInfo); + Map writeDoorLockEnableInsideStatusLEDCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockenableInsideStatusLEDCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeDoorLockEnableInsideStatusLEDCommandParams.put( - "value", doorLockenableInsideStatusLEDCommandParameterInfo); - InteractionInfo writeDoorLockEnableInsideStatusLEDAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeEnableInsideStatusLEDAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockEnableInsideStatusLEDCommandParams); - writeDoorLockInteractionInfo.put( - "writeEnableInsideStatusLEDAttribute", - writeDoorLockEnableInsideStatusLEDAttributeInteractionInfo); - Map writeDoorLockEnablePrivacyModeButtonCommandParams = - new LinkedHashMap(); + "value", + doorLockenableInsideStatusLEDCommandParameterInfo + ); + InteractionInfo writeDoorLockEnableInsideStatusLEDAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeEnableInsideStatusLEDAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockEnableInsideStatusLEDCommandParams + ); + writeDoorLockInteractionInfo.put("writeEnableInsideStatusLEDAttribute", writeDoorLockEnableInsideStatusLEDAttributeInteractionInfo); + Map writeDoorLockEnablePrivacyModeButtonCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockenablePrivacyModeButtonCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeDoorLockEnablePrivacyModeButtonCommandParams.put( - "value", doorLockenablePrivacyModeButtonCommandParameterInfo); - InteractionInfo writeDoorLockEnablePrivacyModeButtonAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeEnablePrivacyModeButtonAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockEnablePrivacyModeButtonCommandParams); - writeDoorLockInteractionInfo.put( - "writeEnablePrivacyModeButtonAttribute", - writeDoorLockEnablePrivacyModeButtonAttributeInteractionInfo); - Map writeDoorLockLocalProgrammingFeaturesCommandParams = - new LinkedHashMap(); + "value", + doorLockenablePrivacyModeButtonCommandParameterInfo + ); + InteractionInfo writeDoorLockEnablePrivacyModeButtonAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeEnablePrivacyModeButtonAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockEnablePrivacyModeButtonCommandParams + ); + writeDoorLockInteractionInfo.put("writeEnablePrivacyModeButtonAttribute", writeDoorLockEnablePrivacyModeButtonAttributeInteractionInfo); + Map writeDoorLockLocalProgrammingFeaturesCommandParams = new LinkedHashMap(); CommandParameterInfo doorLocklocalProgrammingFeaturesCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeDoorLockLocalProgrammingFeaturesCommandParams.put( - "value", doorLocklocalProgrammingFeaturesCommandParameterInfo); - InteractionInfo writeDoorLockLocalProgrammingFeaturesAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeLocalProgrammingFeaturesAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockLocalProgrammingFeaturesCommandParams); - writeDoorLockInteractionInfo.put( - "writeLocalProgrammingFeaturesAttribute", - writeDoorLockLocalProgrammingFeaturesAttributeInteractionInfo); - Map writeDoorLockWrongCodeEntryLimitCommandParams = - new LinkedHashMap(); + "value", + doorLocklocalProgrammingFeaturesCommandParameterInfo + ); + InteractionInfo writeDoorLockLocalProgrammingFeaturesAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeLocalProgrammingFeaturesAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockLocalProgrammingFeaturesCommandParams + ); + writeDoorLockInteractionInfo.put("writeLocalProgrammingFeaturesAttribute", writeDoorLockLocalProgrammingFeaturesAttributeInteractionInfo); + Map writeDoorLockWrongCodeEntryLimitCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockwrongCodeEntryLimitCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeDoorLockWrongCodeEntryLimitCommandParams.put( - "value", doorLockwrongCodeEntryLimitCommandParameterInfo); - InteractionInfo writeDoorLockWrongCodeEntryLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeWrongCodeEntryLimitAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockWrongCodeEntryLimitCommandParams); - writeDoorLockInteractionInfo.put( - "writeWrongCodeEntryLimitAttribute", - writeDoorLockWrongCodeEntryLimitAttributeInteractionInfo); - Map writeDoorLockUserCodeTemporaryDisableTimeCommandParams = - new LinkedHashMap(); + "value", + doorLockwrongCodeEntryLimitCommandParameterInfo + ); + InteractionInfo writeDoorLockWrongCodeEntryLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeWrongCodeEntryLimitAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockWrongCodeEntryLimitCommandParams + ); + writeDoorLockInteractionInfo.put("writeWrongCodeEntryLimitAttribute", writeDoorLockWrongCodeEntryLimitAttributeInteractionInfo); + Map writeDoorLockUserCodeTemporaryDisableTimeCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockuserCodeTemporaryDisableTimeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeDoorLockUserCodeTemporaryDisableTimeCommandParams.put( - "value", doorLockuserCodeTemporaryDisableTimeCommandParameterInfo); - InteractionInfo writeDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeUserCodeTemporaryDisableTimeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockUserCodeTemporaryDisableTimeCommandParams); - writeDoorLockInteractionInfo.put( - "writeUserCodeTemporaryDisableTimeAttribute", - writeDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo); - Map writeDoorLockSendPINOverTheAirCommandParams = - new LinkedHashMap(); + "value", + doorLockuserCodeTemporaryDisableTimeCommandParameterInfo + ); + InteractionInfo writeDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeUserCodeTemporaryDisableTimeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockUserCodeTemporaryDisableTimeCommandParams + ); + writeDoorLockInteractionInfo.put("writeUserCodeTemporaryDisableTimeAttribute", writeDoorLockUserCodeTemporaryDisableTimeAttributeInteractionInfo); + Map writeDoorLockSendPINOverTheAirCommandParams = new LinkedHashMap(); CommandParameterInfo doorLocksendPINOverTheAirCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeDoorLockSendPINOverTheAirCommandParams.put( - "value", doorLocksendPINOverTheAirCommandParameterInfo); - InteractionInfo writeDoorLockSendPINOverTheAirAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeSendPINOverTheAirAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockSendPINOverTheAirCommandParams); - writeDoorLockInteractionInfo.put( - "writeSendPINOverTheAirAttribute", writeDoorLockSendPINOverTheAirAttributeInteractionInfo); - Map writeDoorLockRequirePINforRemoteOperationCommandParams = - new LinkedHashMap(); + "value", + doorLocksendPINOverTheAirCommandParameterInfo + ); + InteractionInfo writeDoorLockSendPINOverTheAirAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeSendPINOverTheAirAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockSendPINOverTheAirCommandParams + ); + writeDoorLockInteractionInfo.put("writeSendPINOverTheAirAttribute", writeDoorLockSendPINOverTheAirAttributeInteractionInfo); + Map writeDoorLockRequirePINforRemoteOperationCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockrequirePINforRemoteOperationCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeDoorLockRequirePINforRemoteOperationCommandParams.put( - "value", doorLockrequirePINforRemoteOperationCommandParameterInfo); - InteractionInfo writeDoorLockRequirePINforRemoteOperationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeRequirePINforRemoteOperationAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockRequirePINforRemoteOperationCommandParams); - writeDoorLockInteractionInfo.put( - "writeRequirePINforRemoteOperationAttribute", - writeDoorLockRequirePINforRemoteOperationAttributeInteractionInfo); - Map writeDoorLockExpiringUserTimeoutCommandParams = - new LinkedHashMap(); + "value", + doorLockrequirePINforRemoteOperationCommandParameterInfo + ); + InteractionInfo writeDoorLockRequirePINforRemoteOperationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeRequirePINforRemoteOperationAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockRequirePINforRemoteOperationCommandParams + ); + writeDoorLockInteractionInfo.put("writeRequirePINforRemoteOperationAttribute", writeDoorLockRequirePINforRemoteOperationAttributeInteractionInfo); + Map writeDoorLockExpiringUserTimeoutCommandParams = new LinkedHashMap(); CommandParameterInfo doorLockexpiringUserTimeoutCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeDoorLockExpiringUserTimeoutCommandParams.put( - "value", doorLockexpiringUserTimeoutCommandParameterInfo); - InteractionInfo writeDoorLockExpiringUserTimeoutAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.DoorLockCluster) cluster) - .writeExpiringUserTimeoutAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeDoorLockExpiringUserTimeoutCommandParams); - writeDoorLockInteractionInfo.put( - "writeExpiringUserTimeoutAttribute", - writeDoorLockExpiringUserTimeoutAttributeInteractionInfo); + "value", + doorLockexpiringUserTimeoutCommandParameterInfo + ); + InteractionInfo writeDoorLockExpiringUserTimeoutAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster).writeExpiringUserTimeoutAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeDoorLockExpiringUserTimeoutCommandParams + ); + writeDoorLockInteractionInfo.put("writeExpiringUserTimeoutAttribute", writeDoorLockExpiringUserTimeoutAttributeInteractionInfo); writeAttributeMap.put("doorLock", writeDoorLockInteractionInfo); Map writeWindowCoveringInteractionInfo = new LinkedHashMap<>(); - Map writeWindowCoveringModeCommandParams = - new LinkedHashMap(); + Map writeWindowCoveringModeCommandParams = new LinkedHashMap(); CommandParameterInfo windowCoveringmodeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeWindowCoveringModeCommandParams.put("value", windowCoveringmodeCommandParameterInfo); - InteractionInfo writeWindowCoveringModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.WindowCoveringCluster) cluster) - .writeModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeWindowCoveringModeCommandParams); - writeWindowCoveringInteractionInfo.put( - "writeModeAttribute", writeWindowCoveringModeAttributeInteractionInfo); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeWindowCoveringModeCommandParams.put( + "value", + windowCoveringmodeCommandParameterInfo + ); + InteractionInfo writeWindowCoveringModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster).writeModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeWindowCoveringModeCommandParams + ); + writeWindowCoveringInteractionInfo.put("writeModeAttribute", writeWindowCoveringModeAttributeInteractionInfo); writeAttributeMap.put("windowCovering", writeWindowCoveringInteractionInfo); Map writeBarrierControlInteractionInfo = new LinkedHashMap<>(); - Map writeBarrierControlBarrierOpenEventsCommandParams = - new LinkedHashMap(); + Map writeBarrierControlBarrierOpenEventsCommandParams = new LinkedHashMap(); CommandParameterInfo barrierControlbarrierOpenEventsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBarrierControlBarrierOpenEventsCommandParams.put( - "value", barrierControlbarrierOpenEventsCommandParameterInfo); - InteractionInfo writeBarrierControlBarrierOpenEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .writeBarrierOpenEventsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBarrierControlBarrierOpenEventsCommandParams); - writeBarrierControlInteractionInfo.put( - "writeBarrierOpenEventsAttribute", - writeBarrierControlBarrierOpenEventsAttributeInteractionInfo); - Map writeBarrierControlBarrierCloseEventsCommandParams = - new LinkedHashMap(); + "value", + barrierControlbarrierOpenEventsCommandParameterInfo + ); + InteractionInfo writeBarrierControlBarrierOpenEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).writeBarrierOpenEventsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBarrierControlBarrierOpenEventsCommandParams + ); + writeBarrierControlInteractionInfo.put("writeBarrierOpenEventsAttribute", writeBarrierControlBarrierOpenEventsAttributeInteractionInfo); + Map writeBarrierControlBarrierCloseEventsCommandParams = new LinkedHashMap(); CommandParameterInfo barrierControlbarrierCloseEventsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBarrierControlBarrierCloseEventsCommandParams.put( - "value", barrierControlbarrierCloseEventsCommandParameterInfo); - InteractionInfo writeBarrierControlBarrierCloseEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .writeBarrierCloseEventsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBarrierControlBarrierCloseEventsCommandParams); - writeBarrierControlInteractionInfo.put( - "writeBarrierCloseEventsAttribute", - writeBarrierControlBarrierCloseEventsAttributeInteractionInfo); - Map writeBarrierControlBarrierCommandOpenEventsCommandParams = - new LinkedHashMap(); + "value", + barrierControlbarrierCloseEventsCommandParameterInfo + ); + InteractionInfo writeBarrierControlBarrierCloseEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).writeBarrierCloseEventsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBarrierControlBarrierCloseEventsCommandParams + ); + writeBarrierControlInteractionInfo.put("writeBarrierCloseEventsAttribute", writeBarrierControlBarrierCloseEventsAttributeInteractionInfo); + Map writeBarrierControlBarrierCommandOpenEventsCommandParams = new LinkedHashMap(); CommandParameterInfo barrierControlbarrierCommandOpenEventsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBarrierControlBarrierCommandOpenEventsCommandParams.put( - "value", barrierControlbarrierCommandOpenEventsCommandParameterInfo); - InteractionInfo writeBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .writeBarrierCommandOpenEventsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBarrierControlBarrierCommandOpenEventsCommandParams); - writeBarrierControlInteractionInfo.put( - "writeBarrierCommandOpenEventsAttribute", - writeBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo); - Map writeBarrierControlBarrierCommandCloseEventsCommandParams = - new LinkedHashMap(); + "value", + barrierControlbarrierCommandOpenEventsCommandParameterInfo + ); + InteractionInfo writeBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).writeBarrierCommandOpenEventsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBarrierControlBarrierCommandOpenEventsCommandParams + ); + writeBarrierControlInteractionInfo.put("writeBarrierCommandOpenEventsAttribute", writeBarrierControlBarrierCommandOpenEventsAttributeInteractionInfo); + Map writeBarrierControlBarrierCommandCloseEventsCommandParams = new LinkedHashMap(); CommandParameterInfo barrierControlbarrierCommandCloseEventsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBarrierControlBarrierCommandCloseEventsCommandParams.put( - "value", barrierControlbarrierCommandCloseEventsCommandParameterInfo); - InteractionInfo writeBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .writeBarrierCommandCloseEventsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBarrierControlBarrierCommandCloseEventsCommandParams); - writeBarrierControlInteractionInfo.put( - "writeBarrierCommandCloseEventsAttribute", - writeBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo); - Map writeBarrierControlBarrierOpenPeriodCommandParams = - new LinkedHashMap(); + "value", + barrierControlbarrierCommandCloseEventsCommandParameterInfo + ); + InteractionInfo writeBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).writeBarrierCommandCloseEventsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBarrierControlBarrierCommandCloseEventsCommandParams + ); + writeBarrierControlInteractionInfo.put("writeBarrierCommandCloseEventsAttribute", writeBarrierControlBarrierCommandCloseEventsAttributeInteractionInfo); + Map writeBarrierControlBarrierOpenPeriodCommandParams = new LinkedHashMap(); CommandParameterInfo barrierControlbarrierOpenPeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBarrierControlBarrierOpenPeriodCommandParams.put( - "value", barrierControlbarrierOpenPeriodCommandParameterInfo); - InteractionInfo writeBarrierControlBarrierOpenPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .writeBarrierOpenPeriodAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBarrierControlBarrierOpenPeriodCommandParams); - writeBarrierControlInteractionInfo.put( - "writeBarrierOpenPeriodAttribute", - writeBarrierControlBarrierOpenPeriodAttributeInteractionInfo); - Map writeBarrierControlBarrierClosePeriodCommandParams = - new LinkedHashMap(); + "value", + barrierControlbarrierOpenPeriodCommandParameterInfo + ); + InteractionInfo writeBarrierControlBarrierOpenPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).writeBarrierOpenPeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBarrierControlBarrierOpenPeriodCommandParams + ); + writeBarrierControlInteractionInfo.put("writeBarrierOpenPeriodAttribute", writeBarrierControlBarrierOpenPeriodAttributeInteractionInfo); + Map writeBarrierControlBarrierClosePeriodCommandParams = new LinkedHashMap(); CommandParameterInfo barrierControlbarrierClosePeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBarrierControlBarrierClosePeriodCommandParams.put( - "value", barrierControlbarrierClosePeriodCommandParameterInfo); - InteractionInfo writeBarrierControlBarrierClosePeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BarrierControlCluster) cluster) - .writeBarrierClosePeriodAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBarrierControlBarrierClosePeriodCommandParams); - writeBarrierControlInteractionInfo.put( - "writeBarrierClosePeriodAttribute", - writeBarrierControlBarrierClosePeriodAttributeInteractionInfo); + "value", + barrierControlbarrierClosePeriodCommandParameterInfo + ); + InteractionInfo writeBarrierControlBarrierClosePeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster).writeBarrierClosePeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBarrierControlBarrierClosePeriodCommandParams + ); + writeBarrierControlInteractionInfo.put("writeBarrierClosePeriodAttribute", writeBarrierControlBarrierClosePeriodAttributeInteractionInfo); writeAttributeMap.put("barrierControl", writeBarrierControlInteractionInfo); - Map writePumpConfigurationAndControlInteractionInfo = - new LinkedHashMap<>(); - Map - writePumpConfigurationAndControlLifetimeRunningHoursCommandParams = - new LinkedHashMap(); + Map writePumpConfigurationAndControlInteractionInfo = new LinkedHashMap<>(); + Map writePumpConfigurationAndControlLifetimeRunningHoursCommandParams = new LinkedHashMap(); CommandParameterInfo pumpConfigurationAndControllifetimeRunningHoursCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writePumpConfigurationAndControlLifetimeRunningHoursCommandParams.put( - "value", pumpConfigurationAndControllifetimeRunningHoursCommandParameterInfo); - InteractionInfo writePumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .writeLifetimeRunningHoursAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writePumpConfigurationAndControlLifetimeRunningHoursCommandParams); - writePumpConfigurationAndControlInteractionInfo.put( - "writeLifetimeRunningHoursAttribute", - writePumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo); - Map - writePumpConfigurationAndControlLifetimeEnergyConsumedCommandParams = - new LinkedHashMap(); + "value", + pumpConfigurationAndControllifetimeRunningHoursCommandParameterInfo + ); + InteractionInfo writePumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).writeLifetimeRunningHoursAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writePumpConfigurationAndControlLifetimeRunningHoursCommandParams + ); + writePumpConfigurationAndControlInteractionInfo.put("writeLifetimeRunningHoursAttribute", writePumpConfigurationAndControlLifetimeRunningHoursAttributeInteractionInfo); + Map writePumpConfigurationAndControlLifetimeEnergyConsumedCommandParams = new LinkedHashMap(); CommandParameterInfo pumpConfigurationAndControllifetimeEnergyConsumedCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writePumpConfigurationAndControlLifetimeEnergyConsumedCommandParams.put( - "value", pumpConfigurationAndControllifetimeEnergyConsumedCommandParameterInfo); - InteractionInfo writePumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .writeLifetimeEnergyConsumedAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writePumpConfigurationAndControlLifetimeEnergyConsumedCommandParams); - writePumpConfigurationAndControlInteractionInfo.put( - "writeLifetimeEnergyConsumedAttribute", - writePumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo); - Map writePumpConfigurationAndControlOperationModeCommandParams = - new LinkedHashMap(); + "value", + pumpConfigurationAndControllifetimeEnergyConsumedCommandParameterInfo + ); + InteractionInfo writePumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).writeLifetimeEnergyConsumedAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writePumpConfigurationAndControlLifetimeEnergyConsumedCommandParams + ); + writePumpConfigurationAndControlInteractionInfo.put("writeLifetimeEnergyConsumedAttribute", writePumpConfigurationAndControlLifetimeEnergyConsumedAttributeInteractionInfo); + Map writePumpConfigurationAndControlOperationModeCommandParams = new LinkedHashMap(); CommandParameterInfo pumpConfigurationAndControloperationModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writePumpConfigurationAndControlOperationModeCommandParams.put( - "value", pumpConfigurationAndControloperationModeCommandParameterInfo); - InteractionInfo writePumpConfigurationAndControlOperationModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .writeOperationModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writePumpConfigurationAndControlOperationModeCommandParams); - writePumpConfigurationAndControlInteractionInfo.put( - "writeOperationModeAttribute", - writePumpConfigurationAndControlOperationModeAttributeInteractionInfo); - Map writePumpConfigurationAndControlControlModeCommandParams = - new LinkedHashMap(); + "value", + pumpConfigurationAndControloperationModeCommandParameterInfo + ); + InteractionInfo writePumpConfigurationAndControlOperationModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).writeOperationModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writePumpConfigurationAndControlOperationModeCommandParams + ); + writePumpConfigurationAndControlInteractionInfo.put("writeOperationModeAttribute", writePumpConfigurationAndControlOperationModeAttributeInteractionInfo); + Map writePumpConfigurationAndControlControlModeCommandParams = new LinkedHashMap(); CommandParameterInfo pumpConfigurationAndControlcontrolModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writePumpConfigurationAndControlControlModeCommandParams.put( - "value", pumpConfigurationAndControlcontrolModeCommandParameterInfo); - InteractionInfo writePumpConfigurationAndControlControlModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.PumpConfigurationAndControlCluster) cluster) - .writeControlModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writePumpConfigurationAndControlControlModeCommandParams); - writePumpConfigurationAndControlInteractionInfo.put( - "writeControlModeAttribute", - writePumpConfigurationAndControlControlModeAttributeInteractionInfo); - writeAttributeMap.put( - "pumpConfigurationAndControl", writePumpConfigurationAndControlInteractionInfo); + "value", + pumpConfigurationAndControlcontrolModeCommandParameterInfo + ); + InteractionInfo writePumpConfigurationAndControlControlModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster).writeControlModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writePumpConfigurationAndControlControlModeCommandParams + ); + writePumpConfigurationAndControlInteractionInfo.put("writeControlModeAttribute", writePumpConfigurationAndControlControlModeAttributeInteractionInfo); + writeAttributeMap.put("pumpConfigurationAndControl", writePumpConfigurationAndControlInteractionInfo); Map writeThermostatInteractionInfo = new LinkedHashMap<>(); - Map writeThermostatHVACSystemTypeConfigurationCommandParams = - new LinkedHashMap(); + Map writeThermostatHVACSystemTypeConfigurationCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatHVACSystemTypeConfigurationCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatHVACSystemTypeConfigurationCommandParams.put( - "value", thermostatHVACSystemTypeConfigurationCommandParameterInfo); - InteractionInfo writeThermostatHVACSystemTypeConfigurationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeHVACSystemTypeConfigurationAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatHVACSystemTypeConfigurationCommandParams); - writeThermostatInteractionInfo.put( - "writeHVACSystemTypeConfigurationAttribute", - writeThermostatHVACSystemTypeConfigurationAttributeInteractionInfo); - Map writeThermostatLocalTemperatureCalibrationCommandParams = - new LinkedHashMap(); + "value", + thermostatHVACSystemTypeConfigurationCommandParameterInfo + ); + InteractionInfo writeThermostatHVACSystemTypeConfigurationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeHVACSystemTypeConfigurationAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatHVACSystemTypeConfigurationCommandParams + ); + writeThermostatInteractionInfo.put("writeHVACSystemTypeConfigurationAttribute", writeThermostatHVACSystemTypeConfigurationAttributeInteractionInfo); + Map writeThermostatLocalTemperatureCalibrationCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatlocalTemperatureCalibrationCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatLocalTemperatureCalibrationCommandParams.put( - "value", thermostatlocalTemperatureCalibrationCommandParameterInfo); - InteractionInfo writeThermostatLocalTemperatureCalibrationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeLocalTemperatureCalibrationAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatLocalTemperatureCalibrationCommandParams); - writeThermostatInteractionInfo.put( - "writeLocalTemperatureCalibrationAttribute", - writeThermostatLocalTemperatureCalibrationAttributeInteractionInfo); - Map writeThermostatOccupiedCoolingSetpointCommandParams = - new LinkedHashMap(); + "value", + thermostatlocalTemperatureCalibrationCommandParameterInfo + ); + InteractionInfo writeThermostatLocalTemperatureCalibrationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeLocalTemperatureCalibrationAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatLocalTemperatureCalibrationCommandParams + ); + writeThermostatInteractionInfo.put("writeLocalTemperatureCalibrationAttribute", writeThermostatLocalTemperatureCalibrationAttributeInteractionInfo); + Map writeThermostatOccupiedCoolingSetpointCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatoccupiedCoolingSetpointCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatOccupiedCoolingSetpointCommandParams.put( - "value", thermostatoccupiedCoolingSetpointCommandParameterInfo); - InteractionInfo writeThermostatOccupiedCoolingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeOccupiedCoolingSetpointAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatOccupiedCoolingSetpointCommandParams); - writeThermostatInteractionInfo.put( - "writeOccupiedCoolingSetpointAttribute", - writeThermostatOccupiedCoolingSetpointAttributeInteractionInfo); - Map writeThermostatOccupiedHeatingSetpointCommandParams = - new LinkedHashMap(); + "value", + thermostatoccupiedCoolingSetpointCommandParameterInfo + ); + InteractionInfo writeThermostatOccupiedCoolingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeOccupiedCoolingSetpointAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatOccupiedCoolingSetpointCommandParams + ); + writeThermostatInteractionInfo.put("writeOccupiedCoolingSetpointAttribute", writeThermostatOccupiedCoolingSetpointAttributeInteractionInfo); + Map writeThermostatOccupiedHeatingSetpointCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatoccupiedHeatingSetpointCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatOccupiedHeatingSetpointCommandParams.put( - "value", thermostatoccupiedHeatingSetpointCommandParameterInfo); - InteractionInfo writeThermostatOccupiedHeatingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeOccupiedHeatingSetpointAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatOccupiedHeatingSetpointCommandParams); - writeThermostatInteractionInfo.put( - "writeOccupiedHeatingSetpointAttribute", - writeThermostatOccupiedHeatingSetpointAttributeInteractionInfo); - Map writeThermostatUnoccupiedCoolingSetpointCommandParams = - new LinkedHashMap(); + "value", + thermostatoccupiedHeatingSetpointCommandParameterInfo + ); + InteractionInfo writeThermostatOccupiedHeatingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeOccupiedHeatingSetpointAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatOccupiedHeatingSetpointCommandParams + ); + writeThermostatInteractionInfo.put("writeOccupiedHeatingSetpointAttribute", writeThermostatOccupiedHeatingSetpointAttributeInteractionInfo); + Map writeThermostatUnoccupiedCoolingSetpointCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatunoccupiedCoolingSetpointCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatUnoccupiedCoolingSetpointCommandParams.put( - "value", thermostatunoccupiedCoolingSetpointCommandParameterInfo); - InteractionInfo writeThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeUnoccupiedCoolingSetpointAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatUnoccupiedCoolingSetpointCommandParams); - writeThermostatInteractionInfo.put( - "writeUnoccupiedCoolingSetpointAttribute", - writeThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo); - Map writeThermostatUnoccupiedHeatingSetpointCommandParams = - new LinkedHashMap(); + "value", + thermostatunoccupiedCoolingSetpointCommandParameterInfo + ); + InteractionInfo writeThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeUnoccupiedCoolingSetpointAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatUnoccupiedCoolingSetpointCommandParams + ); + writeThermostatInteractionInfo.put("writeUnoccupiedCoolingSetpointAttribute", writeThermostatUnoccupiedCoolingSetpointAttributeInteractionInfo); + Map writeThermostatUnoccupiedHeatingSetpointCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatunoccupiedHeatingSetpointCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatUnoccupiedHeatingSetpointCommandParams.put( - "value", thermostatunoccupiedHeatingSetpointCommandParameterInfo); - InteractionInfo writeThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeUnoccupiedHeatingSetpointAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatUnoccupiedHeatingSetpointCommandParams); - writeThermostatInteractionInfo.put( - "writeUnoccupiedHeatingSetpointAttribute", - writeThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo); - Map writeThermostatMinHeatSetpointLimitCommandParams = - new LinkedHashMap(); + "value", + thermostatunoccupiedHeatingSetpointCommandParameterInfo + ); + InteractionInfo writeThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeUnoccupiedHeatingSetpointAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatUnoccupiedHeatingSetpointCommandParams + ); + writeThermostatInteractionInfo.put("writeUnoccupiedHeatingSetpointAttribute", writeThermostatUnoccupiedHeatingSetpointAttributeInteractionInfo); + Map writeThermostatMinHeatSetpointLimitCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatminHeatSetpointLimitCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatMinHeatSetpointLimitCommandParams.put( - "value", thermostatminHeatSetpointLimitCommandParameterInfo); - InteractionInfo writeThermostatMinHeatSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeMinHeatSetpointLimitAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatMinHeatSetpointLimitCommandParams); - writeThermostatInteractionInfo.put( - "writeMinHeatSetpointLimitAttribute", - writeThermostatMinHeatSetpointLimitAttributeInteractionInfo); - Map writeThermostatMaxHeatSetpointLimitCommandParams = - new LinkedHashMap(); + "value", + thermostatminHeatSetpointLimitCommandParameterInfo + ); + InteractionInfo writeThermostatMinHeatSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeMinHeatSetpointLimitAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatMinHeatSetpointLimitCommandParams + ); + writeThermostatInteractionInfo.put("writeMinHeatSetpointLimitAttribute", writeThermostatMinHeatSetpointLimitAttributeInteractionInfo); + Map writeThermostatMaxHeatSetpointLimitCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatmaxHeatSetpointLimitCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatMaxHeatSetpointLimitCommandParams.put( - "value", thermostatmaxHeatSetpointLimitCommandParameterInfo); - InteractionInfo writeThermostatMaxHeatSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeMaxHeatSetpointLimitAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatMaxHeatSetpointLimitCommandParams); - writeThermostatInteractionInfo.put( - "writeMaxHeatSetpointLimitAttribute", - writeThermostatMaxHeatSetpointLimitAttributeInteractionInfo); - Map writeThermostatMinCoolSetpointLimitCommandParams = - new LinkedHashMap(); + "value", + thermostatmaxHeatSetpointLimitCommandParameterInfo + ); + InteractionInfo writeThermostatMaxHeatSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeMaxHeatSetpointLimitAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatMaxHeatSetpointLimitCommandParams + ); + writeThermostatInteractionInfo.put("writeMaxHeatSetpointLimitAttribute", writeThermostatMaxHeatSetpointLimitAttributeInteractionInfo); + Map writeThermostatMinCoolSetpointLimitCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatminCoolSetpointLimitCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatMinCoolSetpointLimitCommandParams.put( - "value", thermostatminCoolSetpointLimitCommandParameterInfo); - InteractionInfo writeThermostatMinCoolSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeMinCoolSetpointLimitAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatMinCoolSetpointLimitCommandParams); - writeThermostatInteractionInfo.put( - "writeMinCoolSetpointLimitAttribute", - writeThermostatMinCoolSetpointLimitAttributeInteractionInfo); - Map writeThermostatMaxCoolSetpointLimitCommandParams = - new LinkedHashMap(); + "value", + thermostatminCoolSetpointLimitCommandParameterInfo + ); + InteractionInfo writeThermostatMinCoolSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeMinCoolSetpointLimitAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatMinCoolSetpointLimitCommandParams + ); + writeThermostatInteractionInfo.put("writeMinCoolSetpointLimitAttribute", writeThermostatMinCoolSetpointLimitAttributeInteractionInfo); + Map writeThermostatMaxCoolSetpointLimitCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatmaxCoolSetpointLimitCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatMaxCoolSetpointLimitCommandParams.put( - "value", thermostatmaxCoolSetpointLimitCommandParameterInfo); - InteractionInfo writeThermostatMaxCoolSetpointLimitAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeMaxCoolSetpointLimitAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatMaxCoolSetpointLimitCommandParams); - writeThermostatInteractionInfo.put( - "writeMaxCoolSetpointLimitAttribute", - writeThermostatMaxCoolSetpointLimitAttributeInteractionInfo); - Map writeThermostatMinSetpointDeadBandCommandParams = - new LinkedHashMap(); + "value", + thermostatmaxCoolSetpointLimitCommandParameterInfo + ); + InteractionInfo writeThermostatMaxCoolSetpointLimitAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeMaxCoolSetpointLimitAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatMaxCoolSetpointLimitCommandParams + ); + writeThermostatInteractionInfo.put("writeMaxCoolSetpointLimitAttribute", writeThermostatMaxCoolSetpointLimitAttributeInteractionInfo); + Map writeThermostatMinSetpointDeadBandCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatminSetpointDeadBandCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatMinSetpointDeadBandCommandParams.put( - "value", thermostatminSetpointDeadBandCommandParameterInfo); - InteractionInfo writeThermostatMinSetpointDeadBandAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeMinSetpointDeadBandAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatMinSetpointDeadBandCommandParams); - writeThermostatInteractionInfo.put( - "writeMinSetpointDeadBandAttribute", - writeThermostatMinSetpointDeadBandAttributeInteractionInfo); - Map writeThermostatRemoteSensingCommandParams = - new LinkedHashMap(); + "value", + thermostatminSetpointDeadBandCommandParameterInfo + ); + InteractionInfo writeThermostatMinSetpointDeadBandAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeMinSetpointDeadBandAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatMinSetpointDeadBandCommandParams + ); + writeThermostatInteractionInfo.put("writeMinSetpointDeadBandAttribute", writeThermostatMinSetpointDeadBandAttributeInteractionInfo); + Map writeThermostatRemoteSensingCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatremoteSensingCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatRemoteSensingCommandParams.put( - "value", thermostatremoteSensingCommandParameterInfo); - InteractionInfo writeThermostatRemoteSensingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeRemoteSensingAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatRemoteSensingCommandParams); - writeThermostatInteractionInfo.put( - "writeRemoteSensingAttribute", writeThermostatRemoteSensingAttributeInteractionInfo); - Map writeThermostatControlSequenceOfOperationCommandParams = - new LinkedHashMap(); + "value", + thermostatremoteSensingCommandParameterInfo + ); + InteractionInfo writeThermostatRemoteSensingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeRemoteSensingAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatRemoteSensingCommandParams + ); + writeThermostatInteractionInfo.put("writeRemoteSensingAttribute", writeThermostatRemoteSensingAttributeInteractionInfo); + Map writeThermostatControlSequenceOfOperationCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatcontrolSequenceOfOperationCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatControlSequenceOfOperationCommandParams.put( - "value", thermostatcontrolSequenceOfOperationCommandParameterInfo); - InteractionInfo writeThermostatControlSequenceOfOperationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeControlSequenceOfOperationAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatControlSequenceOfOperationCommandParams); - writeThermostatInteractionInfo.put( - "writeControlSequenceOfOperationAttribute", - writeThermostatControlSequenceOfOperationAttributeInteractionInfo); - Map writeThermostatSystemModeCommandParams = - new LinkedHashMap(); + "value", + thermostatcontrolSequenceOfOperationCommandParameterInfo + ); + InteractionInfo writeThermostatControlSequenceOfOperationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeControlSequenceOfOperationAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatControlSequenceOfOperationCommandParams + ); + writeThermostatInteractionInfo.put("writeControlSequenceOfOperationAttribute", writeThermostatControlSequenceOfOperationAttributeInteractionInfo); + Map writeThermostatSystemModeCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatsystemModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeThermostatSystemModeCommandParams.put("value", thermostatsystemModeCommandParameterInfo); - InteractionInfo writeThermostatSystemModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeSystemModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatSystemModeCommandParams); - writeThermostatInteractionInfo.put( - "writeSystemModeAttribute", writeThermostatSystemModeAttributeInteractionInfo); - Map writeThermostatTemperatureSetpointHoldCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeThermostatSystemModeCommandParams.put( + "value", + thermostatsystemModeCommandParameterInfo + ); + InteractionInfo writeThermostatSystemModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeSystemModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatSystemModeCommandParams + ); + writeThermostatInteractionInfo.put("writeSystemModeAttribute", writeThermostatSystemModeAttributeInteractionInfo); + Map writeThermostatTemperatureSetpointHoldCommandParams = new LinkedHashMap(); CommandParameterInfo thermostattemperatureSetpointHoldCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatTemperatureSetpointHoldCommandParams.put( - "value", thermostattemperatureSetpointHoldCommandParameterInfo); - InteractionInfo writeThermostatTemperatureSetpointHoldAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeTemperatureSetpointHoldAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatTemperatureSetpointHoldCommandParams); - writeThermostatInteractionInfo.put( - "writeTemperatureSetpointHoldAttribute", - writeThermostatTemperatureSetpointHoldAttributeInteractionInfo); - Map writeThermostatTemperatureSetpointHoldDurationCommandParams = - new LinkedHashMap(); + "value", + thermostattemperatureSetpointHoldCommandParameterInfo + ); + InteractionInfo writeThermostatTemperatureSetpointHoldAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeTemperatureSetpointHoldAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatTemperatureSetpointHoldCommandParams + ); + writeThermostatInteractionInfo.put("writeTemperatureSetpointHoldAttribute", writeThermostatTemperatureSetpointHoldAttributeInteractionInfo); + Map writeThermostatTemperatureSetpointHoldDurationCommandParams = new LinkedHashMap(); CommandParameterInfo thermostattemperatureSetpointHoldDurationCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatTemperatureSetpointHoldDurationCommandParams.put( - "value", thermostattemperatureSetpointHoldDurationCommandParameterInfo); - InteractionInfo writeThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeTemperatureSetpointHoldDurationAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatTemperatureSetpointHoldDurationCommandParams); - writeThermostatInteractionInfo.put( - "writeTemperatureSetpointHoldDurationAttribute", - writeThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo); - Map - writeThermostatThermostatProgrammingOperationModeCommandParams = - new LinkedHashMap(); + "value", + thermostattemperatureSetpointHoldDurationCommandParameterInfo + ); + InteractionInfo writeThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeTemperatureSetpointHoldDurationAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatTemperatureSetpointHoldDurationCommandParams + ); + writeThermostatInteractionInfo.put("writeTemperatureSetpointHoldDurationAttribute", writeThermostatTemperatureSetpointHoldDurationAttributeInteractionInfo); + Map writeThermostatThermostatProgrammingOperationModeCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatthermostatProgrammingOperationModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatThermostatProgrammingOperationModeCommandParams.put( - "value", thermostatthermostatProgrammingOperationModeCommandParameterInfo); - InteractionInfo writeThermostatThermostatProgrammingOperationModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeThermostatProgrammingOperationModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatThermostatProgrammingOperationModeCommandParams); - writeThermostatInteractionInfo.put( - "writeThermostatProgrammingOperationModeAttribute", - writeThermostatThermostatProgrammingOperationModeAttributeInteractionInfo); - Map writeThermostatOccupiedSetbackCommandParams = - new LinkedHashMap(); + "value", + thermostatthermostatProgrammingOperationModeCommandParameterInfo + ); + InteractionInfo writeThermostatThermostatProgrammingOperationModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeThermostatProgrammingOperationModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatThermostatProgrammingOperationModeCommandParams + ); + writeThermostatInteractionInfo.put("writeThermostatProgrammingOperationModeAttribute", writeThermostatThermostatProgrammingOperationModeAttributeInteractionInfo); + Map writeThermostatOccupiedSetbackCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatoccupiedSetbackCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatOccupiedSetbackCommandParams.put( - "value", thermostatoccupiedSetbackCommandParameterInfo); - InteractionInfo writeThermostatOccupiedSetbackAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeOccupiedSetbackAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatOccupiedSetbackCommandParams); - writeThermostatInteractionInfo.put( - "writeOccupiedSetbackAttribute", writeThermostatOccupiedSetbackAttributeInteractionInfo); - Map writeThermostatUnoccupiedSetbackCommandParams = - new LinkedHashMap(); + "value", + thermostatoccupiedSetbackCommandParameterInfo + ); + InteractionInfo writeThermostatOccupiedSetbackAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeOccupiedSetbackAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatOccupiedSetbackCommandParams + ); + writeThermostatInteractionInfo.put("writeOccupiedSetbackAttribute", writeThermostatOccupiedSetbackAttributeInteractionInfo); + Map writeThermostatUnoccupiedSetbackCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatunoccupiedSetbackCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatUnoccupiedSetbackCommandParams.put( - "value", thermostatunoccupiedSetbackCommandParameterInfo); - InteractionInfo writeThermostatUnoccupiedSetbackAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeUnoccupiedSetbackAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatUnoccupiedSetbackCommandParams); - writeThermostatInteractionInfo.put( - "writeUnoccupiedSetbackAttribute", - writeThermostatUnoccupiedSetbackAttributeInteractionInfo); - Map writeThermostatEmergencyHeatDeltaCommandParams = - new LinkedHashMap(); + "value", + thermostatunoccupiedSetbackCommandParameterInfo + ); + InteractionInfo writeThermostatUnoccupiedSetbackAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeUnoccupiedSetbackAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatUnoccupiedSetbackCommandParams + ); + writeThermostatInteractionInfo.put("writeUnoccupiedSetbackAttribute", writeThermostatUnoccupiedSetbackAttributeInteractionInfo); + Map writeThermostatEmergencyHeatDeltaCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatemergencyHeatDeltaCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatEmergencyHeatDeltaCommandParams.put( - "value", thermostatemergencyHeatDeltaCommandParameterInfo); - InteractionInfo writeThermostatEmergencyHeatDeltaAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeEmergencyHeatDeltaAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatEmergencyHeatDeltaCommandParams); - writeThermostatInteractionInfo.put( - "writeEmergencyHeatDeltaAttribute", - writeThermostatEmergencyHeatDeltaAttributeInteractionInfo); - Map writeThermostatACTypeCommandParams = - new LinkedHashMap(); + "value", + thermostatemergencyHeatDeltaCommandParameterInfo + ); + InteractionInfo writeThermostatEmergencyHeatDeltaAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeEmergencyHeatDeltaAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatEmergencyHeatDeltaCommandParams + ); + writeThermostatInteractionInfo.put("writeEmergencyHeatDeltaAttribute", writeThermostatEmergencyHeatDeltaAttributeInteractionInfo); + Map writeThermostatACTypeCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatACTypeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeThermostatACTypeCommandParams.put("value", thermostatACTypeCommandParameterInfo); - InteractionInfo writeThermostatACTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeACTypeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatACTypeCommandParams); - writeThermostatInteractionInfo.put( - "writeACTypeAttribute", writeThermostatACTypeAttributeInteractionInfo); - Map writeThermostatACCapacityCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeThermostatACTypeCommandParams.put( + "value", + thermostatACTypeCommandParameterInfo + ); + InteractionInfo writeThermostatACTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeACTypeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatACTypeCommandParams + ); + writeThermostatInteractionInfo.put("writeACTypeAttribute", writeThermostatACTypeAttributeInteractionInfo); + Map writeThermostatACCapacityCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatACCapacityCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeThermostatACCapacityCommandParams.put("value", thermostatACCapacityCommandParameterInfo); - InteractionInfo writeThermostatACCapacityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeACCapacityAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatACCapacityCommandParams); - writeThermostatInteractionInfo.put( - "writeACCapacityAttribute", writeThermostatACCapacityAttributeInteractionInfo); - Map writeThermostatACRefrigerantTypeCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeThermostatACCapacityCommandParams.put( + "value", + thermostatACCapacityCommandParameterInfo + ); + InteractionInfo writeThermostatACCapacityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeACCapacityAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatACCapacityCommandParams + ); + writeThermostatInteractionInfo.put("writeACCapacityAttribute", writeThermostatACCapacityAttributeInteractionInfo); + Map writeThermostatACRefrigerantTypeCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatACRefrigerantTypeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatACRefrigerantTypeCommandParams.put( - "value", thermostatACRefrigerantTypeCommandParameterInfo); - InteractionInfo writeThermostatACRefrigerantTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeACRefrigerantTypeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatACRefrigerantTypeCommandParams); - writeThermostatInteractionInfo.put( - "writeACRefrigerantTypeAttribute", - writeThermostatACRefrigerantTypeAttributeInteractionInfo); - Map writeThermostatACCompressorTypeCommandParams = - new LinkedHashMap(); + "value", + thermostatACRefrigerantTypeCommandParameterInfo + ); + InteractionInfo writeThermostatACRefrigerantTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeACRefrigerantTypeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatACRefrigerantTypeCommandParams + ); + writeThermostatInteractionInfo.put("writeACRefrigerantTypeAttribute", writeThermostatACRefrigerantTypeAttributeInteractionInfo); + Map writeThermostatACCompressorTypeCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatACCompressorTypeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatACCompressorTypeCommandParams.put( - "value", thermostatACCompressorTypeCommandParameterInfo); - InteractionInfo writeThermostatACCompressorTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeACCompressorTypeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatACCompressorTypeCommandParams); - writeThermostatInteractionInfo.put( - "writeACCompressorTypeAttribute", writeThermostatACCompressorTypeAttributeInteractionInfo); - Map writeThermostatACErrorCodeCommandParams = - new LinkedHashMap(); + "value", + thermostatACCompressorTypeCommandParameterInfo + ); + InteractionInfo writeThermostatACCompressorTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeACCompressorTypeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatACCompressorTypeCommandParams + ); + writeThermostatInteractionInfo.put("writeACCompressorTypeAttribute", writeThermostatACCompressorTypeAttributeInteractionInfo); + Map writeThermostatACErrorCodeCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatACErrorCodeCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeThermostatACErrorCodeCommandParams.put("value", thermostatACErrorCodeCommandParameterInfo); - InteractionInfo writeThermostatACErrorCodeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeACErrorCodeAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatACErrorCodeCommandParams); - writeThermostatInteractionInfo.put( - "writeACErrorCodeAttribute", writeThermostatACErrorCodeAttributeInteractionInfo); - Map writeThermostatACLouverPositionCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeThermostatACErrorCodeCommandParams.put( + "value", + thermostatACErrorCodeCommandParameterInfo + ); + InteractionInfo writeThermostatACErrorCodeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeACErrorCodeAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatACErrorCodeCommandParams + ); + writeThermostatInteractionInfo.put("writeACErrorCodeAttribute", writeThermostatACErrorCodeAttributeInteractionInfo); + Map writeThermostatACLouverPositionCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatACLouverPositionCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatACLouverPositionCommandParams.put( - "value", thermostatACLouverPositionCommandParameterInfo); - InteractionInfo writeThermostatACLouverPositionAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeACLouverPositionAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatACLouverPositionCommandParams); - writeThermostatInteractionInfo.put( - "writeACLouverPositionAttribute", writeThermostatACLouverPositionAttributeInteractionInfo); - Map writeThermostatACCapacityformatCommandParams = - new LinkedHashMap(); + "value", + thermostatACLouverPositionCommandParameterInfo + ); + InteractionInfo writeThermostatACLouverPositionAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeACLouverPositionAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatACLouverPositionCommandParams + ); + writeThermostatInteractionInfo.put("writeACLouverPositionAttribute", writeThermostatACLouverPositionAttributeInteractionInfo); + Map writeThermostatACCapacityformatCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatACCapacityformatCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatACCapacityformatCommandParams.put( - "value", thermostatACCapacityformatCommandParameterInfo); - InteractionInfo writeThermostatACCapacityformatAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatCluster) cluster) - .writeACCapacityformatAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatACCapacityformatCommandParams); - writeThermostatInteractionInfo.put( - "writeACCapacityformatAttribute", writeThermostatACCapacityformatAttributeInteractionInfo); + "value", + thermostatACCapacityformatCommandParameterInfo + ); + InteractionInfo writeThermostatACCapacityformatAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster).writeACCapacityformatAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatACCapacityformatCommandParams + ); + writeThermostatInteractionInfo.put("writeACCapacityformatAttribute", writeThermostatACCapacityformatAttributeInteractionInfo); writeAttributeMap.put("thermostat", writeThermostatInteractionInfo); Map writeFanControlInteractionInfo = new LinkedHashMap<>(); - Map writeFanControlFanModeCommandParams = - new LinkedHashMap(); + Map writeFanControlFanModeCommandParams = new LinkedHashMap(); CommandParameterInfo fanControlfanModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeFanControlFanModeCommandParams.put("value", fanControlfanModeCommandParameterInfo); - InteractionInfo writeFanControlFanModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .writeFanModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeFanControlFanModeCommandParams); - writeFanControlInteractionInfo.put( - "writeFanModeAttribute", writeFanControlFanModeAttributeInteractionInfo); - Map writeFanControlFanModeSequenceCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeFanControlFanModeCommandParams.put( + "value", + fanControlfanModeCommandParameterInfo + ); + InteractionInfo writeFanControlFanModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).writeFanModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeFanControlFanModeCommandParams + ); + writeFanControlInteractionInfo.put("writeFanModeAttribute", writeFanControlFanModeAttributeInteractionInfo); + Map writeFanControlFanModeSequenceCommandParams = new LinkedHashMap(); CommandParameterInfo fanControlfanModeSequenceCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeFanControlFanModeSequenceCommandParams.put( - "value", fanControlfanModeSequenceCommandParameterInfo); - InteractionInfo writeFanControlFanModeSequenceAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .writeFanModeSequenceAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeFanControlFanModeSequenceCommandParams); - writeFanControlInteractionInfo.put( - "writeFanModeSequenceAttribute", writeFanControlFanModeSequenceAttributeInteractionInfo); - Map writeFanControlPercentSettingCommandParams = - new LinkedHashMap(); + "value", + fanControlfanModeSequenceCommandParameterInfo + ); + InteractionInfo writeFanControlFanModeSequenceAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).writeFanModeSequenceAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeFanControlFanModeSequenceCommandParams + ); + writeFanControlInteractionInfo.put("writeFanModeSequenceAttribute", writeFanControlFanModeSequenceAttributeInteractionInfo); + Map writeFanControlPercentSettingCommandParams = new LinkedHashMap(); CommandParameterInfo fanControlpercentSettingCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeFanControlPercentSettingCommandParams.put( - "value", fanControlpercentSettingCommandParameterInfo); - InteractionInfo writeFanControlPercentSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .writePercentSettingAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeFanControlPercentSettingCommandParams); - writeFanControlInteractionInfo.put( - "writePercentSettingAttribute", writeFanControlPercentSettingAttributeInteractionInfo); - Map writeFanControlSpeedSettingCommandParams = - new LinkedHashMap(); + "value", + fanControlpercentSettingCommandParameterInfo + ); + InteractionInfo writeFanControlPercentSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).writePercentSettingAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeFanControlPercentSettingCommandParams + ); + writeFanControlInteractionInfo.put("writePercentSettingAttribute", writeFanControlPercentSettingAttributeInteractionInfo); + Map writeFanControlSpeedSettingCommandParams = new LinkedHashMap(); CommandParameterInfo fanControlspeedSettingCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeFanControlSpeedSettingCommandParams.put( - "value", fanControlspeedSettingCommandParameterInfo); - InteractionInfo writeFanControlSpeedSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .writeSpeedSettingAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeFanControlSpeedSettingCommandParams); - writeFanControlInteractionInfo.put( - "writeSpeedSettingAttribute", writeFanControlSpeedSettingAttributeInteractionInfo); - Map writeFanControlRockSettingCommandParams = - new LinkedHashMap(); + "value", + fanControlspeedSettingCommandParameterInfo + ); + InteractionInfo writeFanControlSpeedSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).writeSpeedSettingAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeFanControlSpeedSettingCommandParams + ); + writeFanControlInteractionInfo.put("writeSpeedSettingAttribute", writeFanControlSpeedSettingAttributeInteractionInfo); + Map writeFanControlRockSettingCommandParams = new LinkedHashMap(); CommandParameterInfo fanControlrockSettingCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeFanControlRockSettingCommandParams.put("value", fanControlrockSettingCommandParameterInfo); - InteractionInfo writeFanControlRockSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .writeRockSettingAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeFanControlRockSettingCommandParams); - writeFanControlInteractionInfo.put( - "writeRockSettingAttribute", writeFanControlRockSettingAttributeInteractionInfo); - Map writeFanControlWindSettingCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeFanControlRockSettingCommandParams.put( + "value", + fanControlrockSettingCommandParameterInfo + ); + InteractionInfo writeFanControlRockSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).writeRockSettingAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeFanControlRockSettingCommandParams + ); + writeFanControlInteractionInfo.put("writeRockSettingAttribute", writeFanControlRockSettingAttributeInteractionInfo); + Map writeFanControlWindSettingCommandParams = new LinkedHashMap(); CommandParameterInfo fanControlwindSettingCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeFanControlWindSettingCommandParams.put("value", fanControlwindSettingCommandParameterInfo); - InteractionInfo writeFanControlWindSettingAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.FanControlCluster) cluster) - .writeWindSettingAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeFanControlWindSettingCommandParams); - writeFanControlInteractionInfo.put( - "writeWindSettingAttribute", writeFanControlWindSettingAttributeInteractionInfo); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeFanControlWindSettingCommandParams.put( + "value", + fanControlwindSettingCommandParameterInfo + ); + InteractionInfo writeFanControlWindSettingAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FanControlCluster) cluster).writeWindSettingAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeFanControlWindSettingCommandParams + ); + writeFanControlInteractionInfo.put("writeWindSettingAttribute", writeFanControlWindSettingAttributeInteractionInfo); writeAttributeMap.put("fanControl", writeFanControlInteractionInfo); - Map writeThermostatUserInterfaceConfigurationInteractionInfo = - new LinkedHashMap<>(); - Map - writeThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams = - new LinkedHashMap(); - CommandParameterInfo - thermostatUserInterfaceConfigurationtemperatureDisplayModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + Map writeThermostatUserInterfaceConfigurationInteractionInfo = new LinkedHashMap<>(); + Map writeThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams = new LinkedHashMap(); + CommandParameterInfo thermostatUserInterfaceConfigurationtemperatureDisplayModeCommandParameterInfo = + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams.put( - "value", thermostatUserInterfaceConfigurationtemperatureDisplayModeCommandParameterInfo); - InteractionInfo - writeThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .writeTemperatureDisplayModeAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams); - writeThermostatUserInterfaceConfigurationInteractionInfo.put( - "writeTemperatureDisplayModeAttribute", - writeThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo); - Map - writeThermostatUserInterfaceConfigurationKeypadLockoutCommandParams = - new LinkedHashMap(); + "value", + thermostatUserInterfaceConfigurationtemperatureDisplayModeCommandParameterInfo + ); + InteractionInfo writeThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).writeTemperatureDisplayModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatUserInterfaceConfigurationTemperatureDisplayModeCommandParams + ); + writeThermostatUserInterfaceConfigurationInteractionInfo.put("writeTemperatureDisplayModeAttribute", writeThermostatUserInterfaceConfigurationTemperatureDisplayModeAttributeInteractionInfo); + Map writeThermostatUserInterfaceConfigurationKeypadLockoutCommandParams = new LinkedHashMap(); CommandParameterInfo thermostatUserInterfaceConfigurationkeypadLockoutCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatUserInterfaceConfigurationKeypadLockoutCommandParams.put( - "value", thermostatUserInterfaceConfigurationkeypadLockoutCommandParameterInfo); - InteractionInfo writeThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .writeKeypadLockoutAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatUserInterfaceConfigurationKeypadLockoutCommandParams); - writeThermostatUserInterfaceConfigurationInteractionInfo.put( - "writeKeypadLockoutAttribute", - writeThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo); - Map - writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams = - new LinkedHashMap(); - CommandParameterInfo - thermostatUserInterfaceConfigurationscheduleProgrammingVisibilityCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + "value", + thermostatUserInterfaceConfigurationkeypadLockoutCommandParameterInfo + ); + InteractionInfo writeThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).writeKeypadLockoutAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatUserInterfaceConfigurationKeypadLockoutCommandParams + ); + writeThermostatUserInterfaceConfigurationInteractionInfo.put("writeKeypadLockoutAttribute", writeThermostatUserInterfaceConfigurationKeypadLockoutAttributeInteractionInfo); + Map writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams = new LinkedHashMap(); + CommandParameterInfo thermostatUserInterfaceConfigurationscheduleProgrammingVisibilityCommandParameterInfo = + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams.put( "value", - thermostatUserInterfaceConfigurationscheduleProgrammingVisibilityCommandParameterInfo); - InteractionInfo - writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) - .writeScheduleProgrammingVisibilityAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams); - writeThermostatUserInterfaceConfigurationInteractionInfo.put( - "writeScheduleProgrammingVisibilityAttribute", - writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo); - writeAttributeMap.put( - "thermostatUserInterfaceConfiguration", - writeThermostatUserInterfaceConfigurationInteractionInfo); + thermostatUserInterfaceConfigurationscheduleProgrammingVisibilityCommandParameterInfo + ); + InteractionInfo writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster).writeScheduleProgrammingVisibilityAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityCommandParams + ); + writeThermostatUserInterfaceConfigurationInteractionInfo.put("writeScheduleProgrammingVisibilityAttribute", writeThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo); + writeAttributeMap.put("thermostatUserInterfaceConfiguration", writeThermostatUserInterfaceConfigurationInteractionInfo); Map writeColorControlInteractionInfo = new LinkedHashMap<>(); - Map writeColorControlOptionsCommandParams = - new LinkedHashMap(); + Map writeColorControlOptionsCommandParams = new LinkedHashMap(); CommandParameterInfo colorControloptionsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeColorControlOptionsCommandParams.put("value", colorControloptionsCommandParameterInfo); - InteractionInfo writeColorControlOptionsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeOptionsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlOptionsCommandParams); - writeColorControlInteractionInfo.put( - "writeOptionsAttribute", writeColorControlOptionsAttributeInteractionInfo); - Map writeColorControlWhitePointXCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeColorControlOptionsCommandParams.put( + "value", + colorControloptionsCommandParameterInfo + ); + InteractionInfo writeColorControlOptionsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeOptionsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlOptionsCommandParams + ); + writeColorControlInteractionInfo.put("writeOptionsAttribute", writeColorControlOptionsAttributeInteractionInfo); + Map writeColorControlWhitePointXCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlwhitePointXCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlWhitePointXCommandParams.put( - "value", colorControlwhitePointXCommandParameterInfo); - InteractionInfo writeColorControlWhitePointXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeWhitePointXAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlWhitePointXCommandParams); - writeColorControlInteractionInfo.put( - "writeWhitePointXAttribute", writeColorControlWhitePointXAttributeInteractionInfo); - Map writeColorControlWhitePointYCommandParams = - new LinkedHashMap(); + "value", + colorControlwhitePointXCommandParameterInfo + ); + InteractionInfo writeColorControlWhitePointXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeWhitePointXAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlWhitePointXCommandParams + ); + writeColorControlInteractionInfo.put("writeWhitePointXAttribute", writeColorControlWhitePointXAttributeInteractionInfo); + Map writeColorControlWhitePointYCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlwhitePointYCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlWhitePointYCommandParams.put( - "value", colorControlwhitePointYCommandParameterInfo); - InteractionInfo writeColorControlWhitePointYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeWhitePointYAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlWhitePointYCommandParams); - writeColorControlInteractionInfo.put( - "writeWhitePointYAttribute", writeColorControlWhitePointYAttributeInteractionInfo); - Map writeColorControlColorPointRXCommandParams = - new LinkedHashMap(); + "value", + colorControlwhitePointYCommandParameterInfo + ); + InteractionInfo writeColorControlWhitePointYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeWhitePointYAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlWhitePointYCommandParams + ); + writeColorControlInteractionInfo.put("writeWhitePointYAttribute", writeColorControlWhitePointYAttributeInteractionInfo); + Map writeColorControlColorPointRXCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointRXCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointRXCommandParams.put( - "value", colorControlcolorPointRXCommandParameterInfo); - InteractionInfo writeColorControlColorPointRXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointRXAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointRXCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointRXAttribute", writeColorControlColorPointRXAttributeInteractionInfo); - Map writeColorControlColorPointRYCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointRXCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointRXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointRXAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointRXCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointRXAttribute", writeColorControlColorPointRXAttributeInteractionInfo); + Map writeColorControlColorPointRYCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointRYCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointRYCommandParams.put( - "value", colorControlcolorPointRYCommandParameterInfo); - InteractionInfo writeColorControlColorPointRYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointRYAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointRYCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointRYAttribute", writeColorControlColorPointRYAttributeInteractionInfo); - Map writeColorControlColorPointRIntensityCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointRYCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointRYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointRYAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointRYCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointRYAttribute", writeColorControlColorPointRYAttributeInteractionInfo); + Map writeColorControlColorPointRIntensityCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointRIntensityCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointRIntensityCommandParams.put( - "value", colorControlcolorPointRIntensityCommandParameterInfo); - InteractionInfo writeColorControlColorPointRIntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointRIntensityAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointRIntensityCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointRIntensityAttribute", - writeColorControlColorPointRIntensityAttributeInteractionInfo); - Map writeColorControlColorPointGXCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointRIntensityCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointRIntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointRIntensityAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointRIntensityCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointRIntensityAttribute", writeColorControlColorPointRIntensityAttributeInteractionInfo); + Map writeColorControlColorPointGXCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointGXCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointGXCommandParams.put( - "value", colorControlcolorPointGXCommandParameterInfo); - InteractionInfo writeColorControlColorPointGXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointGXAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointGXCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointGXAttribute", writeColorControlColorPointGXAttributeInteractionInfo); - Map writeColorControlColorPointGYCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointGXCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointGXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointGXAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointGXCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointGXAttribute", writeColorControlColorPointGXAttributeInteractionInfo); + Map writeColorControlColorPointGYCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointGYCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointGYCommandParams.put( - "value", colorControlcolorPointGYCommandParameterInfo); - InteractionInfo writeColorControlColorPointGYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointGYAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointGYCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointGYAttribute", writeColorControlColorPointGYAttributeInteractionInfo); - Map writeColorControlColorPointGIntensityCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointGYCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointGYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointGYAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointGYCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointGYAttribute", writeColorControlColorPointGYAttributeInteractionInfo); + Map writeColorControlColorPointGIntensityCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointGIntensityCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointGIntensityCommandParams.put( - "value", colorControlcolorPointGIntensityCommandParameterInfo); - InteractionInfo writeColorControlColorPointGIntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointGIntensityAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointGIntensityCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointGIntensityAttribute", - writeColorControlColorPointGIntensityAttributeInteractionInfo); - Map writeColorControlColorPointBXCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointGIntensityCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointGIntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointGIntensityAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointGIntensityCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointGIntensityAttribute", writeColorControlColorPointGIntensityAttributeInteractionInfo); + Map writeColorControlColorPointBXCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointBXCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointBXCommandParams.put( - "value", colorControlcolorPointBXCommandParameterInfo); - InteractionInfo writeColorControlColorPointBXAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointBXAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointBXCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointBXAttribute", writeColorControlColorPointBXAttributeInteractionInfo); - Map writeColorControlColorPointBYCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointBXCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointBXAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointBXAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointBXCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointBXAttribute", writeColorControlColorPointBXAttributeInteractionInfo); + Map writeColorControlColorPointBYCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointBYCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointBYCommandParams.put( - "value", colorControlcolorPointBYCommandParameterInfo); - InteractionInfo writeColorControlColorPointBYAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointBYAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointBYCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointBYAttribute", writeColorControlColorPointBYAttributeInteractionInfo); - Map writeColorControlColorPointBIntensityCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointBYCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointBYAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointBYAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointBYCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointBYAttribute", writeColorControlColorPointBYAttributeInteractionInfo); + Map writeColorControlColorPointBIntensityCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlcolorPointBIntensityCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlColorPointBIntensityCommandParams.put( - "value", colorControlcolorPointBIntensityCommandParameterInfo); - InteractionInfo writeColorControlColorPointBIntensityAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeColorPointBIntensityAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlColorPointBIntensityCommandParams); - writeColorControlInteractionInfo.put( - "writeColorPointBIntensityAttribute", - writeColorControlColorPointBIntensityAttributeInteractionInfo); - Map writeColorControlStartUpColorTemperatureMiredsCommandParams = - new LinkedHashMap(); + "value", + colorControlcolorPointBIntensityCommandParameterInfo + ); + InteractionInfo writeColorControlColorPointBIntensityAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeColorPointBIntensityAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlColorPointBIntensityCommandParams + ); + writeColorControlInteractionInfo.put("writeColorPointBIntensityAttribute", writeColorControlColorPointBIntensityAttributeInteractionInfo); + Map writeColorControlStartUpColorTemperatureMiredsCommandParams = new LinkedHashMap(); CommandParameterInfo colorControlstartUpColorTemperatureMiredsCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeColorControlStartUpColorTemperatureMiredsCommandParams.put( - "value", colorControlstartUpColorTemperatureMiredsCommandParameterInfo); - InteractionInfo writeColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ColorControlCluster) cluster) - .writeStartUpColorTemperatureMiredsAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeColorControlStartUpColorTemperatureMiredsCommandParams); - writeColorControlInteractionInfo.put( - "writeStartUpColorTemperatureMiredsAttribute", - writeColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo); + "value", + colorControlstartUpColorTemperatureMiredsCommandParameterInfo + ); + InteractionInfo writeColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster).writeStartUpColorTemperatureMiredsAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeColorControlStartUpColorTemperatureMiredsCommandParams + ); + writeColorControlInteractionInfo.put("writeStartUpColorTemperatureMiredsAttribute", writeColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo); writeAttributeMap.put("colorControl", writeColorControlInteractionInfo); Map writeBallastConfigurationInteractionInfo = new LinkedHashMap<>(); - Map writeBallastConfigurationMinLevelCommandParams = - new LinkedHashMap(); + Map writeBallastConfigurationMinLevelCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationminLevelCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBallastConfigurationMinLevelCommandParams.put( - "value", ballastConfigurationminLevelCommandParameterInfo); - InteractionInfo writeBallastConfigurationMinLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeMinLevelAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationMinLevelCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeMinLevelAttribute", writeBallastConfigurationMinLevelAttributeInteractionInfo); - Map writeBallastConfigurationMaxLevelCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationminLevelCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationMinLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeMinLevelAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationMinLevelCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeMinLevelAttribute", writeBallastConfigurationMinLevelAttributeInteractionInfo); + Map writeBallastConfigurationMaxLevelCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationmaxLevelCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBallastConfigurationMaxLevelCommandParams.put( - "value", ballastConfigurationmaxLevelCommandParameterInfo); - InteractionInfo writeBallastConfigurationMaxLevelAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeMaxLevelAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationMaxLevelCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeMaxLevelAttribute", writeBallastConfigurationMaxLevelAttributeInteractionInfo); - Map writeBallastConfigurationIntrinsicBallastFactorCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationmaxLevelCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationMaxLevelAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeMaxLevelAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationMaxLevelCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeMaxLevelAttribute", writeBallastConfigurationMaxLevelAttributeInteractionInfo); + Map writeBallastConfigurationIntrinsicBallastFactorCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationintrinsicBallastFactorCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBallastConfigurationIntrinsicBallastFactorCommandParams.put( - "value", ballastConfigurationintrinsicBallastFactorCommandParameterInfo); - InteractionInfo writeBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeIntrinsicBallastFactorAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationIntrinsicBallastFactorCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeIntrinsicBallastFactorAttribute", - writeBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo); - Map - writeBallastConfigurationBallastFactorAdjustmentCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationintrinsicBallastFactorCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeIntrinsicBallastFactorAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationIntrinsicBallastFactorCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeIntrinsicBallastFactorAttribute", writeBallastConfigurationIntrinsicBallastFactorAttributeInteractionInfo); + Map writeBallastConfigurationBallastFactorAdjustmentCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationballastFactorAdjustmentCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBallastConfigurationBallastFactorAdjustmentCommandParams.put( - "value", ballastConfigurationballastFactorAdjustmentCommandParameterInfo); - InteractionInfo writeBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeBallastFactorAdjustmentAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationBallastFactorAdjustmentCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeBallastFactorAdjustmentAttribute", - writeBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo); - Map writeBallastConfigurationLampTypeCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationballastFactorAdjustmentCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeBallastFactorAdjustmentAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationBallastFactorAdjustmentCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeBallastFactorAdjustmentAttribute", writeBallastConfigurationBallastFactorAdjustmentAttributeInteractionInfo); + Map writeBallastConfigurationLampTypeCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationlampTypeCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBallastConfigurationLampTypeCommandParams.put( - "value", ballastConfigurationlampTypeCommandParameterInfo); - InteractionInfo writeBallastConfigurationLampTypeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeLampTypeAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationLampTypeCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeLampTypeAttribute", writeBallastConfigurationLampTypeAttributeInteractionInfo); - Map writeBallastConfigurationLampManufacturerCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationlampTypeCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationLampTypeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeLampTypeAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationLampTypeCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeLampTypeAttribute", writeBallastConfigurationLampTypeAttributeInteractionInfo); + Map writeBallastConfigurationLampManufacturerCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationlampManufacturerCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeBallastConfigurationLampManufacturerCommandParams.put( - "value", ballastConfigurationlampManufacturerCommandParameterInfo); - InteractionInfo writeBallastConfigurationLampManufacturerAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeLampManufacturerAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationLampManufacturerCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeLampManufacturerAttribute", - writeBallastConfigurationLampManufacturerAttributeInteractionInfo); - Map writeBallastConfigurationLampRatedHoursCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationlampManufacturerCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationLampManufacturerAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeLampManufacturerAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationLampManufacturerCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeLampManufacturerAttribute", writeBallastConfigurationLampManufacturerAttributeInteractionInfo); + Map writeBallastConfigurationLampRatedHoursCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationlampRatedHoursCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeBallastConfigurationLampRatedHoursCommandParams.put( - "value", ballastConfigurationlampRatedHoursCommandParameterInfo); - InteractionInfo writeBallastConfigurationLampRatedHoursAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeLampRatedHoursAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationLampRatedHoursCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeLampRatedHoursAttribute", - writeBallastConfigurationLampRatedHoursAttributeInteractionInfo); - Map writeBallastConfigurationLampBurnHoursCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationlampRatedHoursCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationLampRatedHoursAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeLampRatedHoursAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationLampRatedHoursCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeLampRatedHoursAttribute", writeBallastConfigurationLampRatedHoursAttributeInteractionInfo); + Map writeBallastConfigurationLampBurnHoursCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationlampBurnHoursCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeBallastConfigurationLampBurnHoursCommandParams.put( - "value", ballastConfigurationlampBurnHoursCommandParameterInfo); - InteractionInfo writeBallastConfigurationLampBurnHoursAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeLampBurnHoursAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationLampBurnHoursCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeLampBurnHoursAttribute", - writeBallastConfigurationLampBurnHoursAttributeInteractionInfo); - Map writeBallastConfigurationLampAlarmModeCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationlampBurnHoursCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationLampBurnHoursAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeLampBurnHoursAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationLampBurnHoursCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeLampBurnHoursAttribute", writeBallastConfigurationLampBurnHoursAttributeInteractionInfo); + Map writeBallastConfigurationLampAlarmModeCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationlampAlarmModeCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeBallastConfigurationLampAlarmModeCommandParams.put( - "value", ballastConfigurationlampAlarmModeCommandParameterInfo); - InteractionInfo writeBallastConfigurationLampAlarmModeAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeLampAlarmModeAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationLampAlarmModeCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeLampAlarmModeAttribute", - writeBallastConfigurationLampAlarmModeAttributeInteractionInfo); - Map writeBallastConfigurationLampBurnHoursTripPointCommandParams = - new LinkedHashMap(); + "value", + ballastConfigurationlampAlarmModeCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationLampAlarmModeAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeLampAlarmModeAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationLampAlarmModeCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeLampAlarmModeAttribute", writeBallastConfigurationLampAlarmModeAttributeInteractionInfo); + Map writeBallastConfigurationLampBurnHoursTripPointCommandParams = new LinkedHashMap(); CommandParameterInfo ballastConfigurationlampBurnHoursTripPointCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeBallastConfigurationLampBurnHoursTripPointCommandParams.put( - "value", ballastConfigurationlampBurnHoursTripPointCommandParameterInfo); - InteractionInfo writeBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.BallastConfigurationCluster) cluster) - .writeLampBurnHoursTripPointAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeBallastConfigurationLampBurnHoursTripPointCommandParams); - writeBallastConfigurationInteractionInfo.put( - "writeLampBurnHoursTripPointAttribute", - writeBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo); + "value", + ballastConfigurationlampBurnHoursTripPointCommandParameterInfo + ); + InteractionInfo writeBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BallastConfigurationCluster) cluster).writeLampBurnHoursTripPointAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeBallastConfigurationLampBurnHoursTripPointCommandParams + ); + writeBallastConfigurationInteractionInfo.put("writeLampBurnHoursTripPointAttribute", writeBallastConfigurationLampBurnHoursTripPointAttributeInteractionInfo); writeAttributeMap.put("ballastConfiguration", writeBallastConfigurationInteractionInfo); Map writeIlluminanceMeasurementInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("illuminanceMeasurement", writeIlluminanceMeasurementInteractionInfo); @@ -2289,198 +2808,207 @@ public Map> getWriteAttributeMap() { writeAttributeMap.put("pressureMeasurement", writePressureMeasurementInteractionInfo); Map writeFlowMeasurementInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("flowMeasurement", writeFlowMeasurementInteractionInfo); - Map writeRelativeHumidityMeasurementInteractionInfo = - new LinkedHashMap<>(); - writeAttributeMap.put( - "relativeHumidityMeasurement", writeRelativeHumidityMeasurementInteractionInfo); + Map writeRelativeHumidityMeasurementInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("relativeHumidityMeasurement", writeRelativeHumidityMeasurementInteractionInfo); Map writeOccupancySensingInteractionInfo = new LinkedHashMap<>(); - Map - writeOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams = - new LinkedHashMap(); + Map writeOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams = new LinkedHashMap(); CommandParameterInfo occupancySensingPIROccupiedToUnoccupiedDelayCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams.put( - "value", occupancySensingPIROccupiedToUnoccupiedDelayCommandParameterInfo); - InteractionInfo writeOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writePIROccupiedToUnoccupiedDelayAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams); - writeOccupancySensingInteractionInfo.put( - "writePIROccupiedToUnoccupiedDelayAttribute", - writeOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo); - Map - writeOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams = - new LinkedHashMap(); + "value", + occupancySensingPIROccupiedToUnoccupiedDelayCommandParameterInfo + ); + InteractionInfo writeOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writePIROccupiedToUnoccupiedDelayAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingPIROccupiedToUnoccupiedDelayCommandParams + ); + writeOccupancySensingInteractionInfo.put("writePIROccupiedToUnoccupiedDelayAttribute", writeOccupancySensingPIROccupiedToUnoccupiedDelayAttributeInteractionInfo); + Map writeOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams = new LinkedHashMap(); CommandParameterInfo occupancySensingPIRUnoccupiedToOccupiedDelayCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams.put( - "value", occupancySensingPIRUnoccupiedToOccupiedDelayCommandParameterInfo); - InteractionInfo writeOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writePIRUnoccupiedToOccupiedDelayAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams); - writeOccupancySensingInteractionInfo.put( - "writePIRUnoccupiedToOccupiedDelayAttribute", - writeOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo); - Map - writeOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams = - new LinkedHashMap(); + "value", + occupancySensingPIRUnoccupiedToOccupiedDelayCommandParameterInfo + ); + InteractionInfo writeOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writePIRUnoccupiedToOccupiedDelayAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingPIRUnoccupiedToOccupiedDelayCommandParams + ); + writeOccupancySensingInteractionInfo.put("writePIRUnoccupiedToOccupiedDelayAttribute", writeOccupancySensingPIRUnoccupiedToOccupiedDelayAttributeInteractionInfo); + Map writeOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams = new LinkedHashMap(); CommandParameterInfo occupancySensingPIRUnoccupiedToOccupiedThresholdCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams.put( - "value", occupancySensingPIRUnoccupiedToOccupiedThresholdCommandParameterInfo); - InteractionInfo writeOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writePIRUnoccupiedToOccupiedThresholdAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams); - writeOccupancySensingInteractionInfo.put( - "writePIRUnoccupiedToOccupiedThresholdAttribute", - writeOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo); - Map - writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams = - new LinkedHashMap(); + "value", + occupancySensingPIRUnoccupiedToOccupiedThresholdCommandParameterInfo + ); + InteractionInfo writeOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writePIRUnoccupiedToOccupiedThresholdAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingPIRUnoccupiedToOccupiedThresholdCommandParams + ); + writeOccupancySensingInteractionInfo.put("writePIRUnoccupiedToOccupiedThresholdAttribute", writeOccupancySensingPIRUnoccupiedToOccupiedThresholdAttributeInteractionInfo); + Map writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams = new LinkedHashMap(); CommandParameterInfo occupancySensingultrasonicOccupiedToUnoccupiedDelayCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams.put( - "value", occupancySensingultrasonicOccupiedToUnoccupiedDelayCommandParameterInfo); - InteractionInfo - writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writeUltrasonicOccupiedToUnoccupiedDelayAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams); - writeOccupancySensingInteractionInfo.put( - "writeUltrasonicOccupiedToUnoccupiedDelayAttribute", - writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo); - Map - writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams = - new LinkedHashMap(); + "value", + occupancySensingultrasonicOccupiedToUnoccupiedDelayCommandParameterInfo + ); + InteractionInfo writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writeUltrasonicOccupiedToUnoccupiedDelayAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayCommandParams + ); + writeOccupancySensingInteractionInfo.put("writeUltrasonicOccupiedToUnoccupiedDelayAttribute", writeOccupancySensingUltrasonicOccupiedToUnoccupiedDelayAttributeInteractionInfo); + Map writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams = new LinkedHashMap(); CommandParameterInfo occupancySensingultrasonicUnoccupiedToOccupiedDelayCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams.put( - "value", occupancySensingultrasonicUnoccupiedToOccupiedDelayCommandParameterInfo); - InteractionInfo - writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writeUltrasonicUnoccupiedToOccupiedDelayAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams); - writeOccupancySensingInteractionInfo.put( - "writeUltrasonicUnoccupiedToOccupiedDelayAttribute", - writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo); - Map - writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams = - new LinkedHashMap(); - CommandParameterInfo - occupancySensingultrasonicUnoccupiedToOccupiedThresholdCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + "value", + occupancySensingultrasonicUnoccupiedToOccupiedDelayCommandParameterInfo + ); + InteractionInfo writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writeUltrasonicUnoccupiedToOccupiedDelayAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayCommandParams + ); + writeOccupancySensingInteractionInfo.put("writeUltrasonicUnoccupiedToOccupiedDelayAttribute", writeOccupancySensingUltrasonicUnoccupiedToOccupiedDelayAttributeInteractionInfo); + Map writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams = new LinkedHashMap(); + CommandParameterInfo occupancySensingultrasonicUnoccupiedToOccupiedThresholdCommandParameterInfo = + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams.put( - "value", occupancySensingultrasonicUnoccupiedToOccupiedThresholdCommandParameterInfo); - InteractionInfo - writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writeUltrasonicUnoccupiedToOccupiedThresholdAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams); - writeOccupancySensingInteractionInfo.put( - "writeUltrasonicUnoccupiedToOccupiedThresholdAttribute", - writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo); - Map - writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams = - new LinkedHashMap(); - CommandParameterInfo - occupancySensingphysicalContactOccupiedToUnoccupiedDelayCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + "value", + occupancySensingultrasonicUnoccupiedToOccupiedThresholdCommandParameterInfo + ); + InteractionInfo writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writeUltrasonicUnoccupiedToOccupiedThresholdAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdCommandParams + ); + writeOccupancySensingInteractionInfo.put("writeUltrasonicUnoccupiedToOccupiedThresholdAttribute", writeOccupancySensingUltrasonicUnoccupiedToOccupiedThresholdAttributeInteractionInfo); + Map writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams = new LinkedHashMap(); + CommandParameterInfo occupancySensingphysicalContactOccupiedToUnoccupiedDelayCommandParameterInfo = + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams.put( - "value", occupancySensingphysicalContactOccupiedToUnoccupiedDelayCommandParameterInfo); - InteractionInfo - writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writePhysicalContactOccupiedToUnoccupiedDelayAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams); - writeOccupancySensingInteractionInfo.put( - "writePhysicalContactOccupiedToUnoccupiedDelayAttribute", - writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo); - Map - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams = - new LinkedHashMap(); - CommandParameterInfo - occupancySensingphysicalContactUnoccupiedToOccupiedDelayCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + "value", + occupancySensingphysicalContactOccupiedToUnoccupiedDelayCommandParameterInfo + ); + InteractionInfo writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writePhysicalContactOccupiedToUnoccupiedDelayAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayCommandParams + ); + writeOccupancySensingInteractionInfo.put("writePhysicalContactOccupiedToUnoccupiedDelayAttribute", writeOccupancySensingPhysicalContactOccupiedToUnoccupiedDelayAttributeInteractionInfo); + Map writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams = new LinkedHashMap(); + CommandParameterInfo occupancySensingphysicalContactUnoccupiedToOccupiedDelayCommandParameterInfo = + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams.put( - "value", occupancySensingphysicalContactUnoccupiedToOccupiedDelayCommandParameterInfo); - InteractionInfo - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writePhysicalContactUnoccupiedToOccupiedDelayAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams); - writeOccupancySensingInteractionInfo.put( - "writePhysicalContactUnoccupiedToOccupiedDelayAttribute", - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo); - Map - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams = - new LinkedHashMap(); - CommandParameterInfo - occupancySensingphysicalContactUnoccupiedToOccupiedThresholdCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + "value", + occupancySensingphysicalContactUnoccupiedToOccupiedDelayCommandParameterInfo + ); + InteractionInfo writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writePhysicalContactUnoccupiedToOccupiedDelayAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayCommandParams + ); + writeOccupancySensingInteractionInfo.put("writePhysicalContactUnoccupiedToOccupiedDelayAttribute", writeOccupancySensingPhysicalContactUnoccupiedToOccupiedDelayAttributeInteractionInfo); + Map writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams = new LinkedHashMap(); + CommandParameterInfo occupancySensingphysicalContactUnoccupiedToOccupiedThresholdCommandParameterInfo = + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams.put( - "value", occupancySensingphysicalContactUnoccupiedToOccupiedThresholdCommandParameterInfo); - InteractionInfo - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.OccupancySensingCluster) cluster) - .writePhysicalContactUnoccupiedToOccupiedThresholdAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams); - writeOccupancySensingInteractionInfo.put( - "writePhysicalContactUnoccupiedToOccupiedThresholdAttribute", - writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo); + "value", + occupancySensingphysicalContactUnoccupiedToOccupiedThresholdCommandParameterInfo + ); + InteractionInfo writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster).writePhysicalContactUnoccupiedToOccupiedThresholdAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdCommandParams + ); + writeOccupancySensingInteractionInfo.put("writePhysicalContactUnoccupiedToOccupiedThresholdAttribute", writeOccupancySensingPhysicalContactUnoccupiedToOccupiedThresholdAttributeInteractionInfo); writeAttributeMap.put("occupancySensing", writeOccupancySensingInteractionInfo); Map writeWakeOnLanInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("wakeOnLan", writeWakeOnLanInteractionInfo); @@ -2497,24 +3025,28 @@ public Map> getWriteAttributeMap() { Map writeKeypadInputInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("keypadInput", writeKeypadInputInteractionInfo); Map writeContentLauncherInteractionInfo = new LinkedHashMap<>(); - Map writeContentLauncherSupportedStreamingProtocolsCommandParams = - new LinkedHashMap(); + Map writeContentLauncherSupportedStreamingProtocolsCommandParams = new LinkedHashMap(); CommandParameterInfo contentLaunchersupportedStreamingProtocolsCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeContentLauncherSupportedStreamingProtocolsCommandParams.put( - "value", contentLaunchersupportedStreamingProtocolsCommandParameterInfo); - InteractionInfo writeContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ContentLauncherCluster) cluster) - .writeSupportedStreamingProtocolsAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeContentLauncherSupportedStreamingProtocolsCommandParams); - writeContentLauncherInteractionInfo.put( - "writeSupportedStreamingProtocolsAttribute", - writeContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo); + "value", + contentLaunchersupportedStreamingProtocolsCommandParameterInfo + ); + InteractionInfo writeContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster).writeSupportedStreamingProtocolsAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeContentLauncherSupportedStreamingProtocolsCommandParams + ); + writeContentLauncherInteractionInfo.put("writeSupportedStreamingProtocolsAttribute", writeContentLauncherSupportedStreamingProtocolsAttributeInteractionInfo); writeAttributeMap.put("contentLauncher", writeContentLauncherInteractionInfo); Map writeAudioOutputInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("audioOutput", writeAudioOutputInteractionInfo); @@ -2525,1411 +3057,1814 @@ public Map> getWriteAttributeMap() { Map writeAccountLoginInteractionInfo = new LinkedHashMap<>(); writeAttributeMap.put("accountLogin", writeAccountLoginInteractionInfo); Map writeElectricalMeasurementInteractionInfo = new LinkedHashMap<>(); - Map - writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams = - new LinkedHashMap(); - CommandParameterInfo - electricalMeasurementaverageRmsVoltageMeasurementPeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + Map writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams = new LinkedHashMap(); + CommandParameterInfo electricalMeasurementaverageRmsVoltageMeasurementPeriodCommandParameterInfo = + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams.put( - "value", electricalMeasurementaverageRmsVoltageMeasurementPeriodCommandParameterInfo); - InteractionInfo - writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeAverageRmsVoltageMeasurementPeriodAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeAverageRmsVoltageMeasurementPeriodAttribute", - writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo); - Map - writeElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams = - new LinkedHashMap(); + "value", + electricalMeasurementaverageRmsVoltageMeasurementPeriodCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeAverageRmsVoltageMeasurementPeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeAverageRmsVoltageMeasurementPeriodAttribute", writeElectricalMeasurementAverageRmsVoltageMeasurementPeriodAttributeInteractionInfo); + Map writeElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams = new LinkedHashMap(); CommandParameterInfo electricalMeasurementaverageRmsUnderVoltageCounterCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams.put( - "value", electricalMeasurementaverageRmsUnderVoltageCounterCommandParameterInfo); - InteractionInfo - writeElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeAverageRmsUnderVoltageCounterAttribute( - (DefaultClusterCallback) callback, - (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeAverageRmsUnderVoltageCounterAttribute", - writeElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo); - Map - writeElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams = - new LinkedHashMap(); + "value", + electricalMeasurementaverageRmsUnderVoltageCounterCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeAverageRmsUnderVoltageCounterAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementAverageRmsUnderVoltageCounterCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeAverageRmsUnderVoltageCounterAttribute", writeElectricalMeasurementAverageRmsUnderVoltageCounterAttributeInteractionInfo); + Map writeElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams = new LinkedHashMap(); CommandParameterInfo electricalMeasurementrmsExtremeOverVoltagePeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams.put( - "value", electricalMeasurementrmsExtremeOverVoltagePeriodCommandParameterInfo); - InteractionInfo writeElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeRmsExtremeOverVoltagePeriodAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeRmsExtremeOverVoltagePeriodAttribute", - writeElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo); - Map - writeElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams = - new LinkedHashMap(); + "value", + electricalMeasurementrmsExtremeOverVoltagePeriodCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeRmsExtremeOverVoltagePeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementRmsExtremeOverVoltagePeriodCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeRmsExtremeOverVoltagePeriodAttribute", writeElectricalMeasurementRmsExtremeOverVoltagePeriodAttributeInteractionInfo); + Map writeElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams = new LinkedHashMap(); CommandParameterInfo electricalMeasurementrmsExtremeUnderVoltagePeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams.put( - "value", electricalMeasurementrmsExtremeUnderVoltagePeriodCommandParameterInfo); - InteractionInfo writeElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeRmsExtremeUnderVoltagePeriodAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeRmsExtremeUnderVoltagePeriodAttribute", - writeElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo); - Map writeElectricalMeasurementRmsVoltageSagPeriodCommandParams = - new LinkedHashMap(); + "value", + electricalMeasurementrmsExtremeUnderVoltagePeriodCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeRmsExtremeUnderVoltagePeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementRmsExtremeUnderVoltagePeriodCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeRmsExtremeUnderVoltagePeriodAttribute", writeElectricalMeasurementRmsExtremeUnderVoltagePeriodAttributeInteractionInfo); + Map writeElectricalMeasurementRmsVoltageSagPeriodCommandParams = new LinkedHashMap(); CommandParameterInfo electricalMeasurementrmsVoltageSagPeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementRmsVoltageSagPeriodCommandParams.put( - "value", electricalMeasurementrmsVoltageSagPeriodCommandParameterInfo); - InteractionInfo writeElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeRmsVoltageSagPeriodAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementRmsVoltageSagPeriodCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeRmsVoltageSagPeriodAttribute", - writeElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo); - Map writeElectricalMeasurementRmsVoltageSwellPeriodCommandParams = - new LinkedHashMap(); + "value", + electricalMeasurementrmsVoltageSagPeriodCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeRmsVoltageSagPeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementRmsVoltageSagPeriodCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeRmsVoltageSagPeriodAttribute", writeElectricalMeasurementRmsVoltageSagPeriodAttributeInteractionInfo); + Map writeElectricalMeasurementRmsVoltageSwellPeriodCommandParams = new LinkedHashMap(); CommandParameterInfo electricalMeasurementrmsVoltageSwellPeriodCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementRmsVoltageSwellPeriodCommandParams.put( - "value", electricalMeasurementrmsVoltageSwellPeriodCommandParameterInfo); - InteractionInfo writeElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeRmsVoltageSwellPeriodAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementRmsVoltageSwellPeriodCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeRmsVoltageSwellPeriodAttribute", - writeElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo); - Map writeElectricalMeasurementOverloadAlarmsMaskCommandParams = - new LinkedHashMap(); + "value", + electricalMeasurementrmsVoltageSwellPeriodCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeRmsVoltageSwellPeriodAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementRmsVoltageSwellPeriodCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeRmsVoltageSwellPeriodAttribute", writeElectricalMeasurementRmsVoltageSwellPeriodAttributeInteractionInfo); + Map writeElectricalMeasurementOverloadAlarmsMaskCommandParams = new LinkedHashMap(); CommandParameterInfo electricalMeasurementoverloadAlarmsMaskCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementOverloadAlarmsMaskCommandParams.put( - "value", electricalMeasurementoverloadAlarmsMaskCommandParameterInfo); - InteractionInfo writeElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeOverloadAlarmsMaskAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementOverloadAlarmsMaskCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeOverloadAlarmsMaskAttribute", - writeElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo); - Map writeElectricalMeasurementAcOverloadAlarmsMaskCommandParams = - new LinkedHashMap(); + "value", + electricalMeasurementoverloadAlarmsMaskCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeOverloadAlarmsMaskAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementOverloadAlarmsMaskCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeOverloadAlarmsMaskAttribute", writeElectricalMeasurementOverloadAlarmsMaskAttributeInteractionInfo); + Map writeElectricalMeasurementAcOverloadAlarmsMaskCommandParams = new LinkedHashMap(); CommandParameterInfo electricalMeasurementacOverloadAlarmsMaskCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeElectricalMeasurementAcOverloadAlarmsMaskCommandParams.put( - "value", electricalMeasurementacOverloadAlarmsMaskCommandParameterInfo); - InteractionInfo writeElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.ElectricalMeasurementCluster) cluster) - .writeAcOverloadAlarmsMaskAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeElectricalMeasurementAcOverloadAlarmsMaskCommandParams); - writeElectricalMeasurementInteractionInfo.put( - "writeAcOverloadAlarmsMaskAttribute", - writeElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo); + "value", + electricalMeasurementacOverloadAlarmsMaskCommandParameterInfo + ); + InteractionInfo writeElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster).writeAcOverloadAlarmsMaskAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeElectricalMeasurementAcOverloadAlarmsMaskCommandParams + ); + writeElectricalMeasurementInteractionInfo.put("writeAcOverloadAlarmsMaskAttribute", writeElectricalMeasurementAcOverloadAlarmsMaskAttributeInteractionInfo); writeAttributeMap.put("electricalMeasurement", writeElectricalMeasurementInteractionInfo); Map writeUnitTestingInteractionInfo = new LinkedHashMap<>(); - Map writeUnitTestingBooleanCommandParams = - new LinkedHashMap(); + Map writeUnitTestingBooleanCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingbooleanCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); - writeUnitTestingBooleanCommandParams.put("value", unitTestingbooleanCommandParameterInfo); - InteractionInfo writeUnitTestingBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeBooleanAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingBooleanCommandParams); - writeUnitTestingInteractionInfo.put( - "writeBooleanAttribute", writeUnitTestingBooleanAttributeInteractionInfo); - Map writeUnitTestingBitmap8CommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); + writeUnitTestingBooleanCommandParams.put( + "value", + unitTestingbooleanCommandParameterInfo + ); + InteractionInfo writeUnitTestingBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeBooleanAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingBooleanCommandParams + ); + writeUnitTestingInteractionInfo.put("writeBooleanAttribute", writeUnitTestingBooleanAttributeInteractionInfo); + Map writeUnitTestingBitmap8CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingbitmap8CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingBitmap8CommandParams.put("value", unitTestingbitmap8CommandParameterInfo); - InteractionInfo writeUnitTestingBitmap8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeBitmap8Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingBitmap8CommandParams); - writeUnitTestingInteractionInfo.put( - "writeBitmap8Attribute", writeUnitTestingBitmap8AttributeInteractionInfo); - Map writeUnitTestingBitmap16CommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingBitmap8CommandParams.put( + "value", + unitTestingbitmap8CommandParameterInfo + ); + InteractionInfo writeUnitTestingBitmap8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeBitmap8Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingBitmap8CommandParams + ); + writeUnitTestingInteractionInfo.put("writeBitmap8Attribute", writeUnitTestingBitmap8AttributeInteractionInfo); + Map writeUnitTestingBitmap16CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingbitmap16CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingBitmap16CommandParams.put("value", unitTestingbitmap16CommandParameterInfo); - InteractionInfo writeUnitTestingBitmap16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeBitmap16Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingBitmap16CommandParams); - writeUnitTestingInteractionInfo.put( - "writeBitmap16Attribute", writeUnitTestingBitmap16AttributeInteractionInfo); - Map writeUnitTestingBitmap32CommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingBitmap16CommandParams.put( + "value", + unitTestingbitmap16CommandParameterInfo + ); + InteractionInfo writeUnitTestingBitmap16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeBitmap16Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingBitmap16CommandParams + ); + writeUnitTestingInteractionInfo.put("writeBitmap16Attribute", writeUnitTestingBitmap16AttributeInteractionInfo); + Map writeUnitTestingBitmap32CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingbitmap32CommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingBitmap32CommandParams.put("value", unitTestingbitmap32CommandParameterInfo); - InteractionInfo writeUnitTestingBitmap32AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeBitmap32Attribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingBitmap32CommandParams); - writeUnitTestingInteractionInfo.put( - "writeBitmap32Attribute", writeUnitTestingBitmap32AttributeInteractionInfo); - Map writeUnitTestingBitmap64CommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingBitmap32CommandParams.put( + "value", + unitTestingbitmap32CommandParameterInfo + ); + InteractionInfo writeUnitTestingBitmap32AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeBitmap32Attribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingBitmap32CommandParams + ); + writeUnitTestingInteractionInfo.put("writeBitmap32Attribute", writeUnitTestingBitmap32AttributeInteractionInfo); + Map writeUnitTestingBitmap64CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingbitmap64CommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingBitmap64CommandParams.put("value", unitTestingbitmap64CommandParameterInfo); - InteractionInfo writeUnitTestingBitmap64AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeBitmap64Attribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingBitmap64CommandParams); - writeUnitTestingInteractionInfo.put( - "writeBitmap64Attribute", writeUnitTestingBitmap64AttributeInteractionInfo); - Map writeUnitTestingInt8uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingBitmap64CommandParams.put( + "value", + unitTestingbitmap64CommandParameterInfo + ); + InteractionInfo writeUnitTestingBitmap64AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeBitmap64Attribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingBitmap64CommandParams + ); + writeUnitTestingInteractionInfo.put("writeBitmap64Attribute", writeUnitTestingBitmap64AttributeInteractionInfo); + Map writeUnitTestingInt8uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint8uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingInt8uCommandParams.put("value", unitTestingint8uCommandParameterInfo); - InteractionInfo writeUnitTestingInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt8uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt8uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt8uAttribute", writeUnitTestingInt8uAttributeInteractionInfo); - Map writeUnitTestingInt16uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingInt8uCommandParams.put( + "value", + unitTestingint8uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt8uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt8uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt8uAttribute", writeUnitTestingInt8uAttributeInteractionInfo); + Map writeUnitTestingInt16uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint16uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingInt16uCommandParams.put("value", unitTestingint16uCommandParameterInfo); - InteractionInfo writeUnitTestingInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt16uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt16uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt16uAttribute", writeUnitTestingInt16uAttributeInteractionInfo); - Map writeUnitTestingInt24uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingInt16uCommandParams.put( + "value", + unitTestingint16uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt16uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt16uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt16uAttribute", writeUnitTestingInt16uAttributeInteractionInfo); + Map writeUnitTestingInt24uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint24uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt24uCommandParams.put("value", unitTestingint24uCommandParameterInfo); - InteractionInfo writeUnitTestingInt24uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt24uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt24uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt24uAttribute", writeUnitTestingInt24uAttributeInteractionInfo); - Map writeUnitTestingInt32uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt24uCommandParams.put( + "value", + unitTestingint24uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt24uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt24uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt24uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt24uAttribute", writeUnitTestingInt24uAttributeInteractionInfo); + Map writeUnitTestingInt32uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint32uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt32uCommandParams.put("value", unitTestingint32uCommandParameterInfo); - InteractionInfo writeUnitTestingInt32uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt32uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt32uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt32uAttribute", writeUnitTestingInt32uAttributeInteractionInfo); - Map writeUnitTestingInt40uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt32uCommandParams.put( + "value", + unitTestingint32uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt32uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt32uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt32uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt32uAttribute", writeUnitTestingInt32uAttributeInteractionInfo); + Map writeUnitTestingInt40uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint40uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt40uCommandParams.put("value", unitTestingint40uCommandParameterInfo); - InteractionInfo writeUnitTestingInt40uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt40uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt40uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt40uAttribute", writeUnitTestingInt40uAttributeInteractionInfo); - Map writeUnitTestingInt48uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt40uCommandParams.put( + "value", + unitTestingint40uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt40uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt40uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt40uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt40uAttribute", writeUnitTestingInt40uAttributeInteractionInfo); + Map writeUnitTestingInt48uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint48uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt48uCommandParams.put("value", unitTestingint48uCommandParameterInfo); - InteractionInfo writeUnitTestingInt48uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt48uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt48uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt48uAttribute", writeUnitTestingInt48uAttributeInteractionInfo); - Map writeUnitTestingInt56uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt48uCommandParams.put( + "value", + unitTestingint48uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt48uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt48uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt48uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt48uAttribute", writeUnitTestingInt48uAttributeInteractionInfo); + Map writeUnitTestingInt56uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint56uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt56uCommandParams.put("value", unitTestingint56uCommandParameterInfo); - InteractionInfo writeUnitTestingInt56uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt56uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt56uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt56uAttribute", writeUnitTestingInt56uAttributeInteractionInfo); - Map writeUnitTestingInt64uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt56uCommandParams.put( + "value", + unitTestingint56uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt56uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt56uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt56uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt56uAttribute", writeUnitTestingInt56uAttributeInteractionInfo); + Map writeUnitTestingInt64uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint64uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt64uCommandParams.put("value", unitTestingint64uCommandParameterInfo); - InteractionInfo writeUnitTestingInt64uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt64uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt64uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt64uAttribute", writeUnitTestingInt64uAttributeInteractionInfo); - Map writeUnitTestingInt8sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt64uCommandParams.put( + "value", + unitTestingint64uCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt64uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt64uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt64uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt64uAttribute", writeUnitTestingInt64uAttributeInteractionInfo); + Map writeUnitTestingInt8sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint8sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingInt8sCommandParams.put("value", unitTestingint8sCommandParameterInfo); - InteractionInfo writeUnitTestingInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt8sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt8sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt8sAttribute", writeUnitTestingInt8sAttributeInteractionInfo); - Map writeUnitTestingInt16sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingInt8sCommandParams.put( + "value", + unitTestingint8sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt8sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt8sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt8sAttribute", writeUnitTestingInt8sAttributeInteractionInfo); + Map writeUnitTestingInt16sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint16sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingInt16sCommandParams.put("value", unitTestingint16sCommandParameterInfo); - InteractionInfo writeUnitTestingInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt16sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt16sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt16sAttribute", writeUnitTestingInt16sAttributeInteractionInfo); - Map writeUnitTestingInt24sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingInt16sCommandParams.put( + "value", + unitTestingint16sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt16sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt16sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt16sAttribute", writeUnitTestingInt16sAttributeInteractionInfo); + Map writeUnitTestingInt24sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint24sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt24sCommandParams.put("value", unitTestingint24sCommandParameterInfo); - InteractionInfo writeUnitTestingInt24sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt24sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt24sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt24sAttribute", writeUnitTestingInt24sAttributeInteractionInfo); - Map writeUnitTestingInt32sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt24sCommandParams.put( + "value", + unitTestingint24sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt24sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt24sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt24sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt24sAttribute", writeUnitTestingInt24sAttributeInteractionInfo); + Map writeUnitTestingInt32sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint32sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt32sCommandParams.put("value", unitTestingint32sCommandParameterInfo); - InteractionInfo writeUnitTestingInt32sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt32sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt32sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt32sAttribute", writeUnitTestingInt32sAttributeInteractionInfo); - Map writeUnitTestingInt40sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt32sCommandParams.put( + "value", + unitTestingint32sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt32sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt32sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt32sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt32sAttribute", writeUnitTestingInt32sAttributeInteractionInfo); + Map writeUnitTestingInt40sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint40sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt40sCommandParams.put("value", unitTestingint40sCommandParameterInfo); - InteractionInfo writeUnitTestingInt40sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt40sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt40sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt40sAttribute", writeUnitTestingInt40sAttributeInteractionInfo); - Map writeUnitTestingInt48sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt40sCommandParams.put( + "value", + unitTestingint40sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt40sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt40sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt40sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt40sAttribute", writeUnitTestingInt40sAttributeInteractionInfo); + Map writeUnitTestingInt48sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint48sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt48sCommandParams.put("value", unitTestingint48sCommandParameterInfo); - InteractionInfo writeUnitTestingInt48sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt48sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt48sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt48sAttribute", writeUnitTestingInt48sAttributeInteractionInfo); - Map writeUnitTestingInt56sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt48sCommandParams.put( + "value", + unitTestingint48sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt48sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt48sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt48sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt48sAttribute", writeUnitTestingInt48sAttributeInteractionInfo); + Map writeUnitTestingInt56sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint56sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt56sCommandParams.put("value", unitTestingint56sCommandParameterInfo); - InteractionInfo writeUnitTestingInt56sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt56sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt56sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt56sAttribute", writeUnitTestingInt56sAttributeInteractionInfo); - Map writeUnitTestingInt64sCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt56sCommandParams.put( + "value", + unitTestingint56sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt56sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt56sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt56sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt56sAttribute", writeUnitTestingInt56sAttributeInteractionInfo); + Map writeUnitTestingInt64sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingint64sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingInt64sCommandParams.put("value", unitTestingint64sCommandParameterInfo); - InteractionInfo writeUnitTestingInt64sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeInt64sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingInt64sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeInt64sAttribute", writeUnitTestingInt64sAttributeInteractionInfo); - Map writeUnitTestingEnum8CommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingInt64sCommandParams.put( + "value", + unitTestingint64sCommandParameterInfo + ); + InteractionInfo writeUnitTestingInt64sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeInt64sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingInt64sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeInt64sAttribute", writeUnitTestingInt64sAttributeInteractionInfo); + Map writeUnitTestingEnum8CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingenum8CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingEnum8CommandParams.put("value", unitTestingenum8CommandParameterInfo); - InteractionInfo writeUnitTestingEnum8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeEnum8Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingEnum8CommandParams); - writeUnitTestingInteractionInfo.put( - "writeEnum8Attribute", writeUnitTestingEnum8AttributeInteractionInfo); - Map writeUnitTestingEnum16CommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingEnum8CommandParams.put( + "value", + unitTestingenum8CommandParameterInfo + ); + InteractionInfo writeUnitTestingEnum8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeEnum8Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingEnum8CommandParams + ); + writeUnitTestingInteractionInfo.put("writeEnum8Attribute", writeUnitTestingEnum8AttributeInteractionInfo); + Map writeUnitTestingEnum16CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingenum16CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingEnum16CommandParams.put("value", unitTestingenum16CommandParameterInfo); - InteractionInfo writeUnitTestingEnum16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeEnum16Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingEnum16CommandParams); - writeUnitTestingInteractionInfo.put( - "writeEnum16Attribute", writeUnitTestingEnum16AttributeInteractionInfo); - Map writeUnitTestingFloatSingleCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingEnum16CommandParams.put( + "value", + unitTestingenum16CommandParameterInfo + ); + InteractionInfo writeUnitTestingEnum16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeEnum16Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingEnum16CommandParams + ); + writeUnitTestingInteractionInfo.put("writeEnum16Attribute", writeUnitTestingEnum16AttributeInteractionInfo); + Map writeUnitTestingFloatSingleCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingfloatSingleCommandParameterInfo = - new CommandParameterInfo("value", Float.class, Float.class); + new CommandParameterInfo( + "value", + Float.class, + Float.class + ); writeUnitTestingFloatSingleCommandParams.put( - "value", unitTestingfloatSingleCommandParameterInfo); - InteractionInfo writeUnitTestingFloatSingleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeFloatSingleAttribute( - (DefaultClusterCallback) callback, (Float) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingFloatSingleCommandParams); - writeUnitTestingInteractionInfo.put( - "writeFloatSingleAttribute", writeUnitTestingFloatSingleAttributeInteractionInfo); - Map writeUnitTestingFloatDoubleCommandParams = - new LinkedHashMap(); + "value", + unitTestingfloatSingleCommandParameterInfo + ); + InteractionInfo writeUnitTestingFloatSingleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeFloatSingleAttribute( + (DefaultClusterCallback) callback, + (Float) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingFloatSingleCommandParams + ); + writeUnitTestingInteractionInfo.put("writeFloatSingleAttribute", writeUnitTestingFloatSingleAttributeInteractionInfo); + Map writeUnitTestingFloatDoubleCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingfloatDoubleCommandParameterInfo = - new CommandParameterInfo("value", Double.class, Double.class); + new CommandParameterInfo( + "value", + Double.class, + Double.class + ); writeUnitTestingFloatDoubleCommandParams.put( - "value", unitTestingfloatDoubleCommandParameterInfo); - InteractionInfo writeUnitTestingFloatDoubleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeFloatDoubleAttribute( - (DefaultClusterCallback) callback, (Double) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingFloatDoubleCommandParams); - writeUnitTestingInteractionInfo.put( - "writeFloatDoubleAttribute", writeUnitTestingFloatDoubleAttributeInteractionInfo); - Map writeUnitTestingOctetStringCommandParams = - new LinkedHashMap(); + "value", + unitTestingfloatDoubleCommandParameterInfo + ); + InteractionInfo writeUnitTestingFloatDoubleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeFloatDoubleAttribute( + (DefaultClusterCallback) callback, + (Double) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingFloatDoubleCommandParams + ); + writeUnitTestingInteractionInfo.put("writeFloatDoubleAttribute", writeUnitTestingFloatDoubleAttributeInteractionInfo); + Map writeUnitTestingOctetStringCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingoctetStringCommandParameterInfo = - new CommandParameterInfo("value", byte[].class, byte[].class); + new CommandParameterInfo( + "value", + byte[].class, + byte[].class + ); writeUnitTestingOctetStringCommandParams.put( - "value", unitTestingoctetStringCommandParameterInfo); - InteractionInfo writeUnitTestingOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeOctetStringAttribute( - (DefaultClusterCallback) callback, (byte[]) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingOctetStringCommandParams); - writeUnitTestingInteractionInfo.put( - "writeOctetStringAttribute", writeUnitTestingOctetStringAttributeInteractionInfo); - Map writeUnitTestingLongOctetStringCommandParams = - new LinkedHashMap(); + "value", + unitTestingoctetStringCommandParameterInfo + ); + InteractionInfo writeUnitTestingOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeOctetStringAttribute( + (DefaultClusterCallback) callback, + (byte[]) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingOctetStringCommandParams + ); + writeUnitTestingInteractionInfo.put("writeOctetStringAttribute", writeUnitTestingOctetStringAttributeInteractionInfo); + Map writeUnitTestingLongOctetStringCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestinglongOctetStringCommandParameterInfo = - new CommandParameterInfo("value", byte[].class, byte[].class); + new CommandParameterInfo( + "value", + byte[].class, + byte[].class + ); writeUnitTestingLongOctetStringCommandParams.put( - "value", unitTestinglongOctetStringCommandParameterInfo); - InteractionInfo writeUnitTestingLongOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeLongOctetStringAttribute( - (DefaultClusterCallback) callback, (byte[]) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingLongOctetStringCommandParams); - writeUnitTestingInteractionInfo.put( - "writeLongOctetStringAttribute", writeUnitTestingLongOctetStringAttributeInteractionInfo); - Map writeUnitTestingCharStringCommandParams = - new LinkedHashMap(); + "value", + unitTestinglongOctetStringCommandParameterInfo + ); + InteractionInfo writeUnitTestingLongOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeLongOctetStringAttribute( + (DefaultClusterCallback) callback, + (byte[]) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingLongOctetStringCommandParams + ); + writeUnitTestingInteractionInfo.put("writeLongOctetStringAttribute", writeUnitTestingLongOctetStringAttributeInteractionInfo); + Map writeUnitTestingCharStringCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingcharStringCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); - writeUnitTestingCharStringCommandParams.put("value", unitTestingcharStringCommandParameterInfo); - InteractionInfo writeUnitTestingCharStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeCharStringAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingCharStringCommandParams); - writeUnitTestingInteractionInfo.put( - "writeCharStringAttribute", writeUnitTestingCharStringAttributeInteractionInfo); - Map writeUnitTestingLongCharStringCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + String.class, + String.class + ); + writeUnitTestingCharStringCommandParams.put( + "value", + unitTestingcharStringCommandParameterInfo + ); + InteractionInfo writeUnitTestingCharStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeCharStringAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingCharStringCommandParams + ); + writeUnitTestingInteractionInfo.put("writeCharStringAttribute", writeUnitTestingCharStringAttributeInteractionInfo); + Map writeUnitTestingLongCharStringCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestinglongCharStringCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeUnitTestingLongCharStringCommandParams.put( - "value", unitTestinglongCharStringCommandParameterInfo); - InteractionInfo writeUnitTestingLongCharStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeLongCharStringAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingLongCharStringCommandParams); - writeUnitTestingInteractionInfo.put( - "writeLongCharStringAttribute", writeUnitTestingLongCharStringAttributeInteractionInfo); - Map writeUnitTestingEpochUsCommandParams = - new LinkedHashMap(); + "value", + unitTestinglongCharStringCommandParameterInfo + ); + InteractionInfo writeUnitTestingLongCharStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeLongCharStringAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingLongCharStringCommandParams + ); + writeUnitTestingInteractionInfo.put("writeLongCharStringAttribute", writeUnitTestingLongCharStringAttributeInteractionInfo); + Map writeUnitTestingEpochUsCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingepochUsCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingEpochUsCommandParams.put("value", unitTestingepochUsCommandParameterInfo); - InteractionInfo writeUnitTestingEpochUsAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeEpochUsAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingEpochUsCommandParams); - writeUnitTestingInteractionInfo.put( - "writeEpochUsAttribute", writeUnitTestingEpochUsAttributeInteractionInfo); - Map writeUnitTestingEpochSCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingEpochUsCommandParams.put( + "value", + unitTestingepochUsCommandParameterInfo + ); + InteractionInfo writeUnitTestingEpochUsAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeEpochUsAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingEpochUsCommandParams + ); + writeUnitTestingInteractionInfo.put("writeEpochUsAttribute", writeUnitTestingEpochUsAttributeInteractionInfo); + Map writeUnitTestingEpochSCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingepochSCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); - writeUnitTestingEpochSCommandParams.put("value", unitTestingepochSCommandParameterInfo); - InteractionInfo writeUnitTestingEpochSAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeEpochSAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingEpochSCommandParams); - writeUnitTestingInteractionInfo.put( - "writeEpochSAttribute", writeUnitTestingEpochSAttributeInteractionInfo); - Map writeUnitTestingVendorIdCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); + writeUnitTestingEpochSCommandParams.put( + "value", + unitTestingepochSCommandParameterInfo + ); + InteractionInfo writeUnitTestingEpochSAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeEpochSAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingEpochSCommandParams + ); + writeUnitTestingInteractionInfo.put("writeEpochSAttribute", writeUnitTestingEpochSAttributeInteractionInfo); + Map writeUnitTestingVendorIdCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingvendorIdCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingVendorIdCommandParams.put("value", unitTestingvendorIdCommandParameterInfo); - InteractionInfo writeUnitTestingVendorIdAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeVendorIdAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingVendorIdCommandParams); - writeUnitTestingInteractionInfo.put( - "writeVendorIdAttribute", writeUnitTestingVendorIdAttributeInteractionInfo); - Map writeUnitTestingEnumAttrCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingVendorIdCommandParams.put( + "value", + unitTestingvendorIdCommandParameterInfo + ); + InteractionInfo writeUnitTestingVendorIdAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeVendorIdAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingVendorIdCommandParams + ); + writeUnitTestingInteractionInfo.put("writeVendorIdAttribute", writeUnitTestingVendorIdAttributeInteractionInfo); + Map writeUnitTestingEnumAttrCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingenumAttrCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); - writeUnitTestingEnumAttrCommandParams.put("value", unitTestingenumAttrCommandParameterInfo); - InteractionInfo writeUnitTestingEnumAttrAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeEnumAttrAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingEnumAttrCommandParams); - writeUnitTestingInteractionInfo.put( - "writeEnumAttrAttribute", writeUnitTestingEnumAttrAttributeInteractionInfo); - Map writeUnitTestingRangeRestrictedInt8uCommandParams = - new LinkedHashMap(); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); + writeUnitTestingEnumAttrCommandParams.put( + "value", + unitTestingenumAttrCommandParameterInfo + ); + InteractionInfo writeUnitTestingEnumAttrAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeEnumAttrAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingEnumAttrCommandParams + ); + writeUnitTestingInteractionInfo.put("writeEnumAttrAttribute", writeUnitTestingEnumAttrAttributeInteractionInfo); + Map writeUnitTestingRangeRestrictedInt8uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingrangeRestrictedInt8uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingRangeRestrictedInt8uCommandParams.put( - "value", unitTestingrangeRestrictedInt8uCommandParameterInfo); - InteractionInfo writeUnitTestingRangeRestrictedInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeRangeRestrictedInt8uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingRangeRestrictedInt8uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeRangeRestrictedInt8uAttribute", - writeUnitTestingRangeRestrictedInt8uAttributeInteractionInfo); - Map writeUnitTestingRangeRestrictedInt8sCommandParams = - new LinkedHashMap(); + "value", + unitTestingrangeRestrictedInt8uCommandParameterInfo + ); + InteractionInfo writeUnitTestingRangeRestrictedInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeRangeRestrictedInt8uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingRangeRestrictedInt8uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeRangeRestrictedInt8uAttribute", writeUnitTestingRangeRestrictedInt8uAttributeInteractionInfo); + Map writeUnitTestingRangeRestrictedInt8sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingrangeRestrictedInt8sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingRangeRestrictedInt8sCommandParams.put( - "value", unitTestingrangeRestrictedInt8sCommandParameterInfo); - InteractionInfo writeUnitTestingRangeRestrictedInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeRangeRestrictedInt8sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingRangeRestrictedInt8sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeRangeRestrictedInt8sAttribute", - writeUnitTestingRangeRestrictedInt8sAttributeInteractionInfo); - Map writeUnitTestingRangeRestrictedInt16uCommandParams = - new LinkedHashMap(); + "value", + unitTestingrangeRestrictedInt8sCommandParameterInfo + ); + InteractionInfo writeUnitTestingRangeRestrictedInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeRangeRestrictedInt8sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingRangeRestrictedInt8sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeRangeRestrictedInt8sAttribute", writeUnitTestingRangeRestrictedInt8sAttributeInteractionInfo); + Map writeUnitTestingRangeRestrictedInt16uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingrangeRestrictedInt16uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingRangeRestrictedInt16uCommandParams.put( - "value", unitTestingrangeRestrictedInt16uCommandParameterInfo); - InteractionInfo writeUnitTestingRangeRestrictedInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeRangeRestrictedInt16uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingRangeRestrictedInt16uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeRangeRestrictedInt16uAttribute", - writeUnitTestingRangeRestrictedInt16uAttributeInteractionInfo); - Map writeUnitTestingRangeRestrictedInt16sCommandParams = - new LinkedHashMap(); + "value", + unitTestingrangeRestrictedInt16uCommandParameterInfo + ); + InteractionInfo writeUnitTestingRangeRestrictedInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeRangeRestrictedInt16uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingRangeRestrictedInt16uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeRangeRestrictedInt16uAttribute", writeUnitTestingRangeRestrictedInt16uAttributeInteractionInfo); + Map writeUnitTestingRangeRestrictedInt16sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingrangeRestrictedInt16sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingRangeRestrictedInt16sCommandParams.put( - "value", unitTestingrangeRestrictedInt16sCommandParameterInfo); - InteractionInfo writeUnitTestingRangeRestrictedInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeRangeRestrictedInt16sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingRangeRestrictedInt16sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeRangeRestrictedInt16sAttribute", - writeUnitTestingRangeRestrictedInt16sAttributeInteractionInfo); - Map writeUnitTestingTimedWriteBooleanCommandParams = - new LinkedHashMap(); + "value", + unitTestingrangeRestrictedInt16sCommandParameterInfo + ); + InteractionInfo writeUnitTestingRangeRestrictedInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeRangeRestrictedInt16sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingRangeRestrictedInt16sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeRangeRestrictedInt16sAttribute", writeUnitTestingRangeRestrictedInt16sAttributeInteractionInfo); + Map writeUnitTestingTimedWriteBooleanCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingtimedWriteBooleanCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeUnitTestingTimedWriteBooleanCommandParams.put( - "value", unitTestingtimedWriteBooleanCommandParameterInfo); - InteractionInfo writeUnitTestingTimedWriteBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeTimedWriteBooleanAttribute( - (DefaultClusterCallback) callback, - (Boolean) commandArguments.get("value"), - 10000); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingTimedWriteBooleanCommandParams); - writeUnitTestingInteractionInfo.put( - "writeTimedWriteBooleanAttribute", - writeUnitTestingTimedWriteBooleanAttributeInteractionInfo); - Map writeUnitTestingGeneralErrorBooleanCommandParams = - new LinkedHashMap(); + "value", + unitTestingtimedWriteBooleanCommandParameterInfo + ); + InteractionInfo writeUnitTestingTimedWriteBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeTimedWriteBooleanAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value"), 10000 + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingTimedWriteBooleanCommandParams + ); + writeUnitTestingInteractionInfo.put("writeTimedWriteBooleanAttribute", writeUnitTestingTimedWriteBooleanAttributeInteractionInfo); + Map writeUnitTestingGeneralErrorBooleanCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestinggeneralErrorBooleanCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeUnitTestingGeneralErrorBooleanCommandParams.put( - "value", unitTestinggeneralErrorBooleanCommandParameterInfo); - InteractionInfo writeUnitTestingGeneralErrorBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeGeneralErrorBooleanAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingGeneralErrorBooleanCommandParams); - writeUnitTestingInteractionInfo.put( - "writeGeneralErrorBooleanAttribute", - writeUnitTestingGeneralErrorBooleanAttributeInteractionInfo); - Map writeUnitTestingClusterErrorBooleanCommandParams = - new LinkedHashMap(); + "value", + unitTestinggeneralErrorBooleanCommandParameterInfo + ); + InteractionInfo writeUnitTestingGeneralErrorBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeGeneralErrorBooleanAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingGeneralErrorBooleanCommandParams + ); + writeUnitTestingInteractionInfo.put("writeGeneralErrorBooleanAttribute", writeUnitTestingGeneralErrorBooleanAttributeInteractionInfo); + Map writeUnitTestingClusterErrorBooleanCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingclusterErrorBooleanCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeUnitTestingClusterErrorBooleanCommandParams.put( - "value", unitTestingclusterErrorBooleanCommandParameterInfo); - InteractionInfo writeUnitTestingClusterErrorBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeClusterErrorBooleanAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingClusterErrorBooleanCommandParams); - writeUnitTestingInteractionInfo.put( - "writeClusterErrorBooleanAttribute", - writeUnitTestingClusterErrorBooleanAttributeInteractionInfo); - Map writeUnitTestingUnsupportedCommandParams = - new LinkedHashMap(); + "value", + unitTestingclusterErrorBooleanCommandParameterInfo + ); + InteractionInfo writeUnitTestingClusterErrorBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeClusterErrorBooleanAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingClusterErrorBooleanCommandParams + ); + writeUnitTestingInteractionInfo.put("writeClusterErrorBooleanAttribute", writeUnitTestingClusterErrorBooleanAttributeInteractionInfo); + Map writeUnitTestingUnsupportedCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingunsupportedCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeUnitTestingUnsupportedCommandParams.put( - "value", unitTestingunsupportedCommandParameterInfo); - InteractionInfo writeUnitTestingUnsupportedAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeUnsupportedAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingUnsupportedCommandParams); - writeUnitTestingInteractionInfo.put( - "writeUnsupportedAttribute", writeUnitTestingUnsupportedAttributeInteractionInfo); - Map writeUnitTestingNullableBooleanCommandParams = - new LinkedHashMap(); + "value", + unitTestingunsupportedCommandParameterInfo + ); + InteractionInfo writeUnitTestingUnsupportedAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeUnsupportedAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingUnsupportedCommandParams + ); + writeUnitTestingInteractionInfo.put("writeUnsupportedAttribute", writeUnitTestingUnsupportedAttributeInteractionInfo); + Map writeUnitTestingNullableBooleanCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableBooleanCommandParameterInfo = - new CommandParameterInfo("value", Boolean.class, Boolean.class); + new CommandParameterInfo( + "value", + Boolean.class, + Boolean.class + ); writeUnitTestingNullableBooleanCommandParams.put( - "value", unitTestingnullableBooleanCommandParameterInfo); - InteractionInfo writeUnitTestingNullableBooleanAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableBooleanAttribute( - (DefaultClusterCallback) callback, (Boolean) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableBooleanCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableBooleanAttribute", writeUnitTestingNullableBooleanAttributeInteractionInfo); - Map writeUnitTestingNullableBitmap8CommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableBooleanCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableBooleanAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableBooleanAttribute( + (DefaultClusterCallback) callback, + (Boolean) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableBooleanCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableBooleanAttribute", writeUnitTestingNullableBooleanAttributeInteractionInfo); + Map writeUnitTestingNullableBitmap8CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableBitmap8CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableBitmap8CommandParams.put( - "value", unitTestingnullableBitmap8CommandParameterInfo); - InteractionInfo writeUnitTestingNullableBitmap8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableBitmap8Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableBitmap8CommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableBitmap8Attribute", writeUnitTestingNullableBitmap8AttributeInteractionInfo); - Map writeUnitTestingNullableBitmap16CommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableBitmap8CommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableBitmap8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableBitmap8Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableBitmap8CommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableBitmap8Attribute", writeUnitTestingNullableBitmap8AttributeInteractionInfo); + Map writeUnitTestingNullableBitmap16CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableBitmap16CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableBitmap16CommandParams.put( - "value", unitTestingnullableBitmap16CommandParameterInfo); - InteractionInfo writeUnitTestingNullableBitmap16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableBitmap16Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableBitmap16CommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableBitmap16Attribute", writeUnitTestingNullableBitmap16AttributeInteractionInfo); - Map writeUnitTestingNullableBitmap32CommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableBitmap16CommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableBitmap16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableBitmap16Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableBitmap16CommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableBitmap16Attribute", writeUnitTestingNullableBitmap16AttributeInteractionInfo); + Map writeUnitTestingNullableBitmap32CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableBitmap32CommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableBitmap32CommandParams.put( - "value", unitTestingnullableBitmap32CommandParameterInfo); - InteractionInfo writeUnitTestingNullableBitmap32AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableBitmap32Attribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableBitmap32CommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableBitmap32Attribute", writeUnitTestingNullableBitmap32AttributeInteractionInfo); - Map writeUnitTestingNullableBitmap64CommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableBitmap32CommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableBitmap32AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableBitmap32Attribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableBitmap32CommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableBitmap32Attribute", writeUnitTestingNullableBitmap32AttributeInteractionInfo); + Map writeUnitTestingNullableBitmap64CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableBitmap64CommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableBitmap64CommandParams.put( - "value", unitTestingnullableBitmap64CommandParameterInfo); - InteractionInfo writeUnitTestingNullableBitmap64AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableBitmap64Attribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableBitmap64CommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableBitmap64Attribute", writeUnitTestingNullableBitmap64AttributeInteractionInfo); - Map writeUnitTestingNullableInt8uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableBitmap64CommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableBitmap64AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableBitmap64Attribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableBitmap64CommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableBitmap64Attribute", writeUnitTestingNullableBitmap64AttributeInteractionInfo); + Map writeUnitTestingNullableInt8uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt8uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableInt8uCommandParams.put( - "value", unitTestingnullableInt8uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt8uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt8uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt8uAttribute", writeUnitTestingNullableInt8uAttributeInteractionInfo); - Map writeUnitTestingNullableInt16uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt8uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt8uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt8uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt8uAttribute", writeUnitTestingNullableInt8uAttributeInteractionInfo); + Map writeUnitTestingNullableInt16uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt16uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableInt16uCommandParams.put( - "value", unitTestingnullableInt16uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt16uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt16uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt16uAttribute", writeUnitTestingNullableInt16uAttributeInteractionInfo); - Map writeUnitTestingNullableInt24uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt16uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt16uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt16uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt16uAttribute", writeUnitTestingNullableInt16uAttributeInteractionInfo); + Map writeUnitTestingNullableInt24uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt24uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt24uCommandParams.put( - "value", unitTestingnullableInt24uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt24uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt24uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt24uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt24uAttribute", writeUnitTestingNullableInt24uAttributeInteractionInfo); - Map writeUnitTestingNullableInt32uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt24uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt24uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt24uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt24uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt24uAttribute", writeUnitTestingNullableInt24uAttributeInteractionInfo); + Map writeUnitTestingNullableInt32uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt32uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt32uCommandParams.put( - "value", unitTestingnullableInt32uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt32uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt32uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt32uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt32uAttribute", writeUnitTestingNullableInt32uAttributeInteractionInfo); - Map writeUnitTestingNullableInt40uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt32uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt32uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt32uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt32uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt32uAttribute", writeUnitTestingNullableInt32uAttributeInteractionInfo); + Map writeUnitTestingNullableInt40uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt40uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt40uCommandParams.put( - "value", unitTestingnullableInt40uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt40uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt40uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt40uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt40uAttribute", writeUnitTestingNullableInt40uAttributeInteractionInfo); - Map writeUnitTestingNullableInt48uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt40uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt40uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt40uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt40uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt40uAttribute", writeUnitTestingNullableInt40uAttributeInteractionInfo); + Map writeUnitTestingNullableInt48uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt48uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt48uCommandParams.put( - "value", unitTestingnullableInt48uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt48uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt48uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt48uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt48uAttribute", writeUnitTestingNullableInt48uAttributeInteractionInfo); - Map writeUnitTestingNullableInt56uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt48uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt48uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt48uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt48uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt48uAttribute", writeUnitTestingNullableInt48uAttributeInteractionInfo); + Map writeUnitTestingNullableInt56uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt56uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt56uCommandParams.put( - "value", unitTestingnullableInt56uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt56uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt56uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt56uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt56uAttribute", writeUnitTestingNullableInt56uAttributeInteractionInfo); - Map writeUnitTestingNullableInt64uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt56uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt56uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt56uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt56uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt56uAttribute", writeUnitTestingNullableInt56uAttributeInteractionInfo); + Map writeUnitTestingNullableInt64uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt64uCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt64uCommandParams.put( - "value", unitTestingnullableInt64uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt64uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt64uAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt64uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt64uAttribute", writeUnitTestingNullableInt64uAttributeInteractionInfo); - Map writeUnitTestingNullableInt8sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt64uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt64uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt64uAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt64uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt64uAttribute", writeUnitTestingNullableInt64uAttributeInteractionInfo); + Map writeUnitTestingNullableInt8sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt8sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableInt8sCommandParams.put( - "value", unitTestingnullableInt8sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt8sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt8sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt8sAttribute", writeUnitTestingNullableInt8sAttributeInteractionInfo); - Map writeUnitTestingNullableInt16sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt8sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt8sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt8sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt8sAttribute", writeUnitTestingNullableInt8sAttributeInteractionInfo); + Map writeUnitTestingNullableInt16sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt16sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableInt16sCommandParams.put( - "value", unitTestingnullableInt16sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt16sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt16sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt16sAttribute", writeUnitTestingNullableInt16sAttributeInteractionInfo); - Map writeUnitTestingNullableInt24sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt16sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt16sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt16sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt16sAttribute", writeUnitTestingNullableInt16sAttributeInteractionInfo); + Map writeUnitTestingNullableInt24sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt24sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt24sCommandParams.put( - "value", unitTestingnullableInt24sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt24sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt24sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt24sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt24sAttribute", writeUnitTestingNullableInt24sAttributeInteractionInfo); - Map writeUnitTestingNullableInt32sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt24sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt24sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt24sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt24sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt24sAttribute", writeUnitTestingNullableInt24sAttributeInteractionInfo); + Map writeUnitTestingNullableInt32sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt32sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt32sCommandParams.put( - "value", unitTestingnullableInt32sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt32sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt32sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt32sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt32sAttribute", writeUnitTestingNullableInt32sAttributeInteractionInfo); - Map writeUnitTestingNullableInt40sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt32sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt32sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt32sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt32sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt32sAttribute", writeUnitTestingNullableInt32sAttributeInteractionInfo); + Map writeUnitTestingNullableInt40sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt40sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt40sCommandParams.put( - "value", unitTestingnullableInt40sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt40sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt40sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt40sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt40sAttribute", writeUnitTestingNullableInt40sAttributeInteractionInfo); - Map writeUnitTestingNullableInt48sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt40sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt40sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt40sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt40sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt40sAttribute", writeUnitTestingNullableInt40sAttributeInteractionInfo); + Map writeUnitTestingNullableInt48sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt48sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt48sCommandParams.put( - "value", unitTestingnullableInt48sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt48sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt48sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt48sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt48sAttribute", writeUnitTestingNullableInt48sAttributeInteractionInfo); - Map writeUnitTestingNullableInt56sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt48sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt48sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt48sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt48sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt48sAttribute", writeUnitTestingNullableInt48sAttributeInteractionInfo); + Map writeUnitTestingNullableInt56sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt56sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt56sCommandParams.put( - "value", unitTestingnullableInt56sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt56sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt56sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt56sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt56sAttribute", writeUnitTestingNullableInt56sAttributeInteractionInfo); - Map writeUnitTestingNullableInt64sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt56sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt56sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt56sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt56sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt56sAttribute", writeUnitTestingNullableInt56sAttributeInteractionInfo); + Map writeUnitTestingNullableInt64sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableInt64sCommandParameterInfo = - new CommandParameterInfo("value", Long.class, Long.class); + new CommandParameterInfo( + "value", + Long.class, + Long.class + ); writeUnitTestingNullableInt64sCommandParams.put( - "value", unitTestingnullableInt64sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableInt64sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableInt64sAttribute( - (DefaultClusterCallback) callback, (Long) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableInt64sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableInt64sAttribute", writeUnitTestingNullableInt64sAttributeInteractionInfo); - Map writeUnitTestingNullableEnum8CommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableInt64sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableInt64sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableInt64sAttribute( + (DefaultClusterCallback) callback, + (Long) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableInt64sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableInt64sAttribute", writeUnitTestingNullableInt64sAttributeInteractionInfo); + Map writeUnitTestingNullableEnum8CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableEnum8CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableEnum8CommandParams.put( - "value", unitTestingnullableEnum8CommandParameterInfo); - InteractionInfo writeUnitTestingNullableEnum8AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableEnum8Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableEnum8CommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableEnum8Attribute", writeUnitTestingNullableEnum8AttributeInteractionInfo); - Map writeUnitTestingNullableEnum16CommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableEnum8CommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableEnum8AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableEnum8Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableEnum8CommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableEnum8Attribute", writeUnitTestingNullableEnum8AttributeInteractionInfo); + Map writeUnitTestingNullableEnum16CommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableEnum16CommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableEnum16CommandParams.put( - "value", unitTestingnullableEnum16CommandParameterInfo); - InteractionInfo writeUnitTestingNullableEnum16AttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableEnum16Attribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableEnum16CommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableEnum16Attribute", writeUnitTestingNullableEnum16AttributeInteractionInfo); - Map writeUnitTestingNullableFloatSingleCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableEnum16CommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableEnum16AttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableEnum16Attribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableEnum16CommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableEnum16Attribute", writeUnitTestingNullableEnum16AttributeInteractionInfo); + Map writeUnitTestingNullableFloatSingleCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableFloatSingleCommandParameterInfo = - new CommandParameterInfo("value", Float.class, Float.class); + new CommandParameterInfo( + "value", + Float.class, + Float.class + ); writeUnitTestingNullableFloatSingleCommandParams.put( - "value", unitTestingnullableFloatSingleCommandParameterInfo); - InteractionInfo writeUnitTestingNullableFloatSingleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableFloatSingleAttribute( - (DefaultClusterCallback) callback, (Float) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableFloatSingleCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableFloatSingleAttribute", - writeUnitTestingNullableFloatSingleAttributeInteractionInfo); - Map writeUnitTestingNullableFloatDoubleCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableFloatSingleCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableFloatSingleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableFloatSingleAttribute( + (DefaultClusterCallback) callback, + (Float) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableFloatSingleCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableFloatSingleAttribute", writeUnitTestingNullableFloatSingleAttributeInteractionInfo); + Map writeUnitTestingNullableFloatDoubleCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableFloatDoubleCommandParameterInfo = - new CommandParameterInfo("value", Double.class, Double.class); + new CommandParameterInfo( + "value", + Double.class, + Double.class + ); writeUnitTestingNullableFloatDoubleCommandParams.put( - "value", unitTestingnullableFloatDoubleCommandParameterInfo); - InteractionInfo writeUnitTestingNullableFloatDoubleAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableFloatDoubleAttribute( - (DefaultClusterCallback) callback, (Double) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableFloatDoubleCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableFloatDoubleAttribute", - writeUnitTestingNullableFloatDoubleAttributeInteractionInfo); - Map writeUnitTestingNullableOctetStringCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableFloatDoubleCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableFloatDoubleAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableFloatDoubleAttribute( + (DefaultClusterCallback) callback, + (Double) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableFloatDoubleCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableFloatDoubleAttribute", writeUnitTestingNullableFloatDoubleAttributeInteractionInfo); + Map writeUnitTestingNullableOctetStringCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableOctetStringCommandParameterInfo = - new CommandParameterInfo("value", byte[].class, byte[].class); + new CommandParameterInfo( + "value", + byte[].class, + byte[].class + ); writeUnitTestingNullableOctetStringCommandParams.put( - "value", unitTestingnullableOctetStringCommandParameterInfo); - InteractionInfo writeUnitTestingNullableOctetStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableOctetStringAttribute( - (DefaultClusterCallback) callback, (byte[]) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableOctetStringCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableOctetStringAttribute", - writeUnitTestingNullableOctetStringAttributeInteractionInfo); - Map writeUnitTestingNullableCharStringCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableOctetStringCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableOctetStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableOctetStringAttribute( + (DefaultClusterCallback) callback, + (byte[]) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableOctetStringCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableOctetStringAttribute", writeUnitTestingNullableOctetStringAttributeInteractionInfo); + Map writeUnitTestingNullableCharStringCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableCharStringCommandParameterInfo = - new CommandParameterInfo("value", String.class, String.class); + new CommandParameterInfo( + "value", + String.class, + String.class + ); writeUnitTestingNullableCharStringCommandParams.put( - "value", unitTestingnullableCharStringCommandParameterInfo); - InteractionInfo writeUnitTestingNullableCharStringAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableCharStringAttribute( - (DefaultClusterCallback) callback, (String) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableCharStringCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableCharStringAttribute", - writeUnitTestingNullableCharStringAttributeInteractionInfo); - Map writeUnitTestingNullableEnumAttrCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableCharStringCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableCharStringAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableCharStringAttribute( + (DefaultClusterCallback) callback, + (String) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableCharStringCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableCharStringAttribute", writeUnitTestingNullableCharStringAttributeInteractionInfo); + Map writeUnitTestingNullableEnumAttrCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableEnumAttrCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableEnumAttrCommandParams.put( - "value", unitTestingnullableEnumAttrCommandParameterInfo); - InteractionInfo writeUnitTestingNullableEnumAttrAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableEnumAttrAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableEnumAttrCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableEnumAttrAttribute", writeUnitTestingNullableEnumAttrAttributeInteractionInfo); - Map writeUnitTestingNullableRangeRestrictedInt8uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableEnumAttrCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableEnumAttrAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableEnumAttrAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableEnumAttrCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableEnumAttrAttribute", writeUnitTestingNullableEnumAttrAttributeInteractionInfo); + Map writeUnitTestingNullableRangeRestrictedInt8uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableRangeRestrictedInt8uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableRangeRestrictedInt8uCommandParams.put( - "value", unitTestingnullableRangeRestrictedInt8uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableRangeRestrictedInt8uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableRangeRestrictedInt8uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableRangeRestrictedInt8uAttribute", - writeUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo); - Map writeUnitTestingNullableRangeRestrictedInt8sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableRangeRestrictedInt8uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableRangeRestrictedInt8uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableRangeRestrictedInt8uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableRangeRestrictedInt8uAttribute", writeUnitTestingNullableRangeRestrictedInt8uAttributeInteractionInfo); + Map writeUnitTestingNullableRangeRestrictedInt8sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableRangeRestrictedInt8sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableRangeRestrictedInt8sCommandParams.put( - "value", unitTestingnullableRangeRestrictedInt8sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableRangeRestrictedInt8sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableRangeRestrictedInt8sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableRangeRestrictedInt8sAttribute", - writeUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo); - Map writeUnitTestingNullableRangeRestrictedInt16uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableRangeRestrictedInt8sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableRangeRestrictedInt8sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableRangeRestrictedInt8sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableRangeRestrictedInt8sAttribute", writeUnitTestingNullableRangeRestrictedInt8sAttributeInteractionInfo); + Map writeUnitTestingNullableRangeRestrictedInt16uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableRangeRestrictedInt16uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableRangeRestrictedInt16uCommandParams.put( - "value", unitTestingnullableRangeRestrictedInt16uCommandParameterInfo); - InteractionInfo writeUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableRangeRestrictedInt16uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableRangeRestrictedInt16uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableRangeRestrictedInt16uAttribute", - writeUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo); - Map writeUnitTestingNullableRangeRestrictedInt16sCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableRangeRestrictedInt16uCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableRangeRestrictedInt16uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableRangeRestrictedInt16uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableRangeRestrictedInt16uAttribute", writeUnitTestingNullableRangeRestrictedInt16uAttributeInteractionInfo); + Map writeUnitTestingNullableRangeRestrictedInt16sCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingnullableRangeRestrictedInt16sCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingNullableRangeRestrictedInt16sCommandParams.put( - "value", unitTestingnullableRangeRestrictedInt16sCommandParameterInfo); - InteractionInfo writeUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeNullableRangeRestrictedInt16sAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingNullableRangeRestrictedInt16sCommandParams); - writeUnitTestingInteractionInfo.put( - "writeNullableRangeRestrictedInt16sAttribute", - writeUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo); - Map writeUnitTestingWriteOnlyInt8uCommandParams = - new LinkedHashMap(); + "value", + unitTestingnullableRangeRestrictedInt16sCommandParameterInfo + ); + InteractionInfo writeUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeNullableRangeRestrictedInt16sAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingNullableRangeRestrictedInt16sCommandParams + ); + writeUnitTestingInteractionInfo.put("writeNullableRangeRestrictedInt16sAttribute", writeUnitTestingNullableRangeRestrictedInt16sAttributeInteractionInfo); + Map writeUnitTestingWriteOnlyInt8uCommandParams = new LinkedHashMap(); CommandParameterInfo unitTestingwriteOnlyInt8uCommandParameterInfo = - new CommandParameterInfo("value", Integer.class, Integer.class); + new CommandParameterInfo( + "value", + Integer.class, + Integer.class + ); writeUnitTestingWriteOnlyInt8uCommandParams.put( - "value", unitTestingwriteOnlyInt8uCommandParameterInfo); - InteractionInfo writeUnitTestingWriteOnlyInt8uAttributeInteractionInfo = - new InteractionInfo( - (cluster, callback, commandArguments) -> { - ((ChipClusters.UnitTestingCluster) cluster) - .writeWriteOnlyInt8uAttribute( - (DefaultClusterCallback) callback, (Integer) commandArguments.get("value")); - }, - () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), - writeUnitTestingWriteOnlyInt8uCommandParams); - writeUnitTestingInteractionInfo.put( - "writeWriteOnlyInt8uAttribute", writeUnitTestingWriteOnlyInt8uAttributeInteractionInfo); + "value", + unitTestingwriteOnlyInt8uCommandParameterInfo + ); + InteractionInfo writeUnitTestingWriteOnlyInt8uAttributeInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.UnitTestingCluster) cluster).writeWriteOnlyInt8uAttribute( + (DefaultClusterCallback) callback, + (Integer) commandArguments.get("value") + ); + }, + () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(), + writeUnitTestingWriteOnlyInt8uCommandParams + ); + writeUnitTestingInteractionInfo.put("writeWriteOnlyInt8uAttribute", writeUnitTestingWriteOnlyInt8uAttributeInteractionInfo); writeAttributeMap.put("unitTesting", writeUnitTestingInteractionInfo); Map writeFaultInjectionInteractionInfo = new LinkedHashMap<>(); - writeAttributeMap.put("faultInjection", writeFaultInjectionInteractionInfo); - return writeAttributeMap; + writeAttributeMap.put("faultInjection", writeFaultInjectionInteractionInfo);return writeAttributeMap; } } From bf70b9e6f05293aa3c0b2a7630c1cc5561ed744e Mon Sep 17 00:00:00 2001 From: tianfeng-yang <130436698+tianfeng-yang@users.noreply.github.com> Date: Thu, 25 May 2023 09:12:15 +0800 Subject: [PATCH 19/38] =?UTF-8?q?[Python]=20SubscriptionTransaction=20expo?= =?UTF-8?q?rt=20subscriptionId=20&=20GetReporting=E2=80=A6=20(#26623)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Python] SubscriptionTransaction export subscriptionId & GetReportingIntervals * Restyled by autopep8 * FIX CI * Restyled by isort * [Python] Renamed GetReportingIntervals to GetReportingIntervalsSeconds * variable naming add time unit --------- Co-authored-by: Restyled.io --- .../python/chip/clusters/Attribute.py | 26 ++++++++++++++++++- .../python/chip/clusters/attribute.cpp | 8 ++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/controller/python/chip/clusters/Attribute.py b/src/controller/python/chip/clusters/Attribute.py index 3660d31234f0fe..d007253a10cbf0 100644 --- a/src/controller/python/chip/clusters/Attribute.py +++ b/src/controller/python/chip/clusters/Attribute.py @@ -27,7 +27,7 @@ from ctypes import CFUNCTYPE, c_size_t, c_uint8, c_uint16, c_uint32, c_uint64, c_void_p, py_object from dataclasses import dataclass, field from enum import Enum, unique -from typing import Any, Callable, Dict, List, Optional, Union +from typing import Any, Callable, Dict, List, Optional, Tuple, Union import chip.exceptions import chip.interaction_model @@ -503,6 +503,26 @@ def OverrideLivenessTimeoutMs(self, timeoutMs: int): lambda: handle.pychip_ReadClient_OverrideLivenessTimeout(self._readTransaction._pReadClient, timeoutMs) ) + def GetReportingIntervalsSeconds(self) -> Tuple[int, int]: + ''' + Retrieve the reporting intervals associated with an active subscription. + This should only be called if we're of subscription interaction type and after a subscription has been established. + ''' + handle = chip.native.GetLibraryHandle() + handle.pychip_ReadClient_GetReportingIntervals.argtypes = [ + ctypes.c_void_p, ctypes.POINTER(ctypes.c_uint16), ctypes.POINTER(ctypes.c_uint16)] + handle.pychip_ReadClient_GetReportingIntervals.restype = PyChipError + + minIntervalSec = ctypes.c_uint16(0) + maxIntervalSec = ctypes.c_uint16(0) + + builtins.chipStack.Call( + lambda: handle.pychip_ReadClient_GetReportingIntervals( + self._readTransaction._pReadClient, ctypes.pointer(minIntervalSec), ctypes.pointer(maxIntervalSec)) + ).raise_on_error() + + return minIntervalSec.value, maxIntervalSec.value + def SetResubscriptionAttemptedCallback(self, callback: Callable[[SubscriptionTransaction, int, int], None], isAsync=False): ''' Sets the callback function that gets invoked anytime a re-subscription is attempted. The callback is expected @@ -557,6 +577,10 @@ def OnEventChangeCb(self) -> Callable[[EventReadResult, SubscriptionTransaction] def OnErrorCb(self) -> Callable[[int, SubscriptionTransaction], None]: return self._onErrorCb + @property + def subscriptionId(self) -> int: + return self._subscriptionId + def Shutdown(self): if (self._isDone): print("Subscription was already terminated previously!") diff --git a/src/controller/python/chip/clusters/attribute.cpp b/src/controller/python/chip/clusters/attribute.cpp index d97faf5cdaaad8..d30655b5daf177 100644 --- a/src/controller/python/chip/clusters/attribute.cpp +++ b/src/controller/python/chip/clusters/attribute.cpp @@ -467,6 +467,14 @@ void pychip_ReadClient_OverrideLivenessTimeout(ReadClient * pReadClient, uint32_ pReadClient->OverrideLivenessTimeout(System::Clock::Milliseconds32(livenessTimeoutMs)); } +PyChipError pychip_ReadClient_GetReportingIntervals(ReadClient * pReadClient, uint16_t * minIntervalSec, uint16_t * maxIntervalSec) +{ + VerifyOrDie(pReadClient != nullptr); + CHIP_ERROR err = pReadClient->GetReportingIntervals(*minIntervalSec, *maxIntervalSec); + + return ToPyChipError(err); +} + PyChipError pychip_ReadClient_Read(void * appContext, ReadClient ** pReadClient, ReadClientCallback ** pCallback, DeviceProxy * device, uint8_t * readParamsBuf, size_t numAttributePaths, size_t numDataversionFilters, size_t numEventPaths, uint64_t * eventNumberFilter, ...) From 92d58ed43d6774951d88eda0893c376b627fe9e8 Mon Sep 17 00:00:00 2001 From: Jean-Francois Penven <67962328+jepenven-silabs@users.noreply.github.com> Date: Wed, 24 May 2023 21:25:07 -0400 Subject: [PATCH 20/38] [Silabs] Rename examples folder (#26766) * rename build scripts * Rename Lighting-silabs * Rename light-switch-app * Rename Lock-app * rename thermostat * rename silabs chef * Fix build CI * fix doc * fix doc * regen matter * fix ci --------- Co-authored-by: Andrei Litvin --- .github/workflows/examples-efr32.yaml | 6 ++-- .github/workflows/release_artifacts.yaml | 2 +- docs/guides/darwin.md | 2 +- examples/chef/chef.py | 2 +- examples/chef/{efr32 => silabs}/.gn | 0 examples/chef/{efr32 => silabs}/BUILD.gn | 0 examples/chef/{efr32 => silabs}/args.gni | 0 .../{efr32 => silabs}/build_for_wifi_args.gni | 0 .../build_for_wifi_gnfile.gn | 0 .../chef/{efr32 => silabs}/build_overrides | 0 .../{efr32 => silabs}/include/AppConfig.h | 0 .../chef/{efr32 => silabs}/include/AppEvent.h | 0 .../chef/{efr32 => silabs}/include/AppTask.h | 0 .../include/CHIPProjectConfig.h | 0 .../include/LightingManager.h | 0 .../chef/{efr32 => silabs}/src/AppTask.cpp | 0 .../{efr32 => silabs}/src/LightingManager.cpp | 0 .../{efr32 => silabs}/src/ZclCallbacks.cpp | 0 .../third_party/connectedhomeip | 0 .../chef/{efr32 => silabs}/with_pw_rpc.gni | 0 .../light-switch-app/silabs/{efr32 => }/.gn | 0 .../silabs/{efr32 => }/BUILD.gn | 16 +++------- .../silabs/{efr32 => }/README.md | 22 ++++++------- .../{efr32 => }/build_for_wifi_args.gni | 0 .../{efr32 => }/build_for_wifi_gnfile.gn | 0 .../light-switch-app/silabs/build_overrides | 1 + .../silabs/efr32/build_overrides | 1 - .../silabs/efr32/third_party/connectedhomeip | 1 - .../silabs/{efr32 => }/include/AppConfig.h | 0 .../silabs/{efr32 => }/include/AppEvent.h | 0 .../silabs/{efr32 => }/include/AppTask.h | 0 .../{common => include}/BindingHandler.h | 0 .../{efr32 => }/include/CHIPProjectConfig.h | 0 .../{common => include}/LightSwitchMgr.h | 0 .../{common => include}/ShellCommands.h | 0 .../silabs/{efr32 => }/openthread.gn | 0 .../silabs/{efr32 => }/openthread.gni | 0 .../silabs/{efr32 => }/src/AppTask.cpp | 0 .../silabs/{common => src}/BindingHandler.cpp | 0 .../silabs/{common => src}/LightSwitchMgr.cpp | 0 .../silabs/{common => src}/ShellCommands.cpp | 0 .../silabs/{efr32 => }/src/ZclCallbacks.cpp | 0 .../silabs/third_party/connectedhomeip | 1 + examples/lighting-app/silabs/{efr32 => }/.gn | 0 .../lighting-app/silabs/{efr32 => }/BUILD.gn | 2 +- .../lighting-app/silabs/{efr32 => }/README.md | 20 ++++++------ examples/lighting-app/silabs/SiWx917/args.gni | 21 ------------ .../silabs/SiWx917/with_pw_rpc.gni | 32 ------------------- .../{efr32 => }/build_for_wifi_args.gni | 2 +- .../{efr32 => }/build_for_wifi_gnfile.gn | 0 examples/lighting-app/silabs/build_overrides | 1 + .../silabs/{efr32 => }/data_model/BUILD.gn | 0 .../data_model/lighting-thread-app.matter | 0 .../data_model/lighting-thread-app.zap | 4 +-- .../data_model/lighting-wifi-app.matter | 0 .../data_model/lighting-wifi-app.zap | 4 +-- .../lighting-app/silabs/efr32/build_overrides | 1 - .../silabs/efr32/third_party/connectedhomeip | 1 - .../silabs/{efr32 => }/include/AppConfig.h | 0 .../silabs/{efr32 => }/include/AppEvent.h | 0 .../silabs/{efr32 => }/include/AppTask.h | 0 .../{efr32 => }/include/CHIPProjectConfig.h | 0 .../{efr32 => }/include/LightingManager.h | 0 .../silabs/{efr32 => }/openthread.gn | 0 .../silabs/{efr32 => }/openthread.gni | 2 +- .../silabs/{efr32 => }/src/AppTask.cpp | 0 .../{efr32 => }/src/LightingManager.cpp | 0 .../silabs/{efr32 => }/src/ZclCallbacks.cpp | 0 .../silabs/third_party/connectedhomeip | 1 + .../silabs/{efr32 => }/with_pw_rpc.gni | 0 examples/lock-app/silabs/{efr32 => }/.gn | 0 examples/lock-app/silabs/{efr32 => }/BUILD.gn | 2 +- .../lock-app/silabs/{efr32 => }/README.md | 18 +++++------ examples/lock-app/silabs/{efr32 => }/args.gni | 0 .../{efr32 => }/build_for_wifi_args.gni | 0 .../{efr32 => }/build_for_wifi_gnfile.gn | 0 examples/lock-app/silabs/build_overrides | 1 + .../lock-app/silabs/efr32/build_overrides | 1 - .../silabs/efr32/third_party/connectedhomeip | 1 - .../silabs/{efr32 => }/include/AppConfig.h | 0 .../silabs/{efr32 => }/include/AppEvent.h | 0 .../silabs/{efr32 => }/include/AppTask.h | 0 .../{efr32 => }/include/CHIPProjectConfig.h | 0 .../include/EventHandlerLibShell.h | 0 .../silabs/{efr32 => }/include/LockManager.h | 0 .../lock-app/silabs/{efr32 => }/openthread.gn | 0 .../silabs/{efr32 => }/openthread.gni | 0 .../silabs/{efr32 => }/src/AppTask.cpp | 0 .../{efr32 => }/src/EventHandlerLibShell.cpp | 0 .../silabs/{efr32 => }/src/LockManager.cpp | 0 .../silabs/{efr32 => }/src/ZclCallbacks.cpp | 0 .../silabs/third_party/connectedhomeip | 1 + .../silabs/{efr32 => }/with_pw_rpc.gni | 0 examples/thermostat/silabs/{efr32 => }/.gn | 0 .../thermostat/silabs/{efr32 => }/BUILD.gn | 2 +- .../thermostat/silabs/{efr32 => }/README.md | 22 ++++++------- .../{efr32 => }/build_for_wifi_args.gni | 0 .../{efr32 => }/build_for_wifi_gnfile.gn | 0 examples/thermostat/silabs/build_overrides | 1 + .../thermostat/silabs/efr32/build_overrides | 1 - .../silabs/efr32/third_party/connectedhomeip | 1 - .../silabs/{efr32 => }/include/AppConfig.h | 0 .../silabs/{efr32 => }/include/AppEvent.h | 0 .../silabs/{efr32 => }/include/AppTask.h | 0 .../{efr32 => }/include/CHIPProjectConfig.h | 0 .../{efr32 => }/include/SensorManager.h | 0 .../{efr32 => }/include/TemperatureManager.h | 0 .../{efr32 => }/include/ThermostatIcons.h | 0 .../silabs/{efr32 => }/include/ThermostatUI.h | 0 .../silabs/{efr32 => }/openthread.gn | 0 .../silabs/{efr32 => }/openthread.gni | 0 .../silabs/{efr32 => }/src/AppTask.cpp | 0 .../silabs/{efr32 => }/src/SensorManager.cpp | 0 .../{efr32 => }/src/TemperatureManager.cpp | 0 .../silabs/{efr32 => }/src/ThermostatUI.cpp | 0 .../silabs/{efr32 => }/src/ZclCallbacks.cpp | 0 .../silabs/third_party/connectedhomeip | 1 + examples/window-app/silabs/{efr32 => }/.gn | 0 .../window-app/silabs/{efr32 => }/BUILD.gn | 2 +- .../window-app/silabs/{efr32 => }/README.md | 18 +++++------ .../window-app/silabs/{efr32 => }/args.gni | 0 .../{efr32 => }/build_for_wifi_args.gni | 0 .../{efr32 => }/build_for_wifi_gnfile.gn | 0 examples/window-app/silabs/build_overrides | 1 + .../window-app/silabs/efr32/build_overrides | 1 - .../silabs/efr32/third_party/connectedhomeip | 1 - .../silabs/{efr32 => }/include/AppConfig.h | 0 .../{efr32 => }/include/CHIPProjectConfig.h | 0 .../silabs/{efr32 => }/include/LcdPainter.h | 0 .../{efr32 => }/include/WindowAppImpl.h | 0 .../silabs/{efr32 => }/openthread.gn | 0 .../silabs/{efr32 => }/openthread.gni | 0 .../silabs/{efr32 => }/src/LcdPainter.cpp | 0 .../silabs/{efr32 => }/src/WindowAppImpl.cpp | 0 .../silabs/{efr32 => }/src/main.cpp | 0 .../silabs/third_party/connectedhomeip | 1 + scripts/build/builders/efr32.py | 2 +- ...un_efr32-brd4161a-light-rpc-no-version.txt | 2 +- ..._efr32_example.sh => gn_silabs_example.sh} | 2 +- 139 files changed, 84 insertions(+), 143 deletions(-) rename examples/chef/{efr32 => silabs}/.gn (100%) rename examples/chef/{efr32 => silabs}/BUILD.gn (100%) rename examples/chef/{efr32 => silabs}/args.gni (100%) rename examples/chef/{efr32 => silabs}/build_for_wifi_args.gni (100%) rename examples/chef/{efr32 => silabs}/build_for_wifi_gnfile.gn (100%) rename examples/chef/{efr32 => silabs}/build_overrides (100%) rename examples/chef/{efr32 => silabs}/include/AppConfig.h (100%) rename examples/chef/{efr32 => silabs}/include/AppEvent.h (100%) rename examples/chef/{efr32 => silabs}/include/AppTask.h (100%) rename examples/chef/{efr32 => silabs}/include/CHIPProjectConfig.h (100%) rename examples/chef/{efr32 => silabs}/include/LightingManager.h (100%) rename examples/chef/{efr32 => silabs}/src/AppTask.cpp (100%) rename examples/chef/{efr32 => silabs}/src/LightingManager.cpp (100%) rename examples/chef/{efr32 => silabs}/src/ZclCallbacks.cpp (100%) rename examples/chef/{efr32 => silabs}/third_party/connectedhomeip (100%) rename examples/chef/{efr32 => silabs}/with_pw_rpc.gni (100%) rename examples/light-switch-app/silabs/{efr32 => }/.gn (100%) rename examples/light-switch-app/silabs/{efr32 => }/BUILD.gn (92%) rename examples/light-switch-app/silabs/{efr32 => }/README.md (92%) rename examples/light-switch-app/silabs/{efr32 => }/build_for_wifi_args.gni (100%) rename examples/light-switch-app/silabs/{efr32 => }/build_for_wifi_gnfile.gn (100%) create mode 120000 examples/light-switch-app/silabs/build_overrides delete mode 120000 examples/light-switch-app/silabs/efr32/build_overrides delete mode 120000 examples/light-switch-app/silabs/efr32/third_party/connectedhomeip rename examples/light-switch-app/silabs/{efr32 => }/include/AppConfig.h (100%) rename examples/light-switch-app/silabs/{efr32 => }/include/AppEvent.h (100%) rename examples/light-switch-app/silabs/{efr32 => }/include/AppTask.h (100%) rename examples/light-switch-app/silabs/{common => include}/BindingHandler.h (100%) rename examples/light-switch-app/silabs/{efr32 => }/include/CHIPProjectConfig.h (100%) rename examples/light-switch-app/silabs/{common => include}/LightSwitchMgr.h (100%) rename examples/light-switch-app/silabs/{common => include}/ShellCommands.h (100%) rename examples/light-switch-app/silabs/{efr32 => }/openthread.gn (100%) rename examples/light-switch-app/silabs/{efr32 => }/openthread.gni (100%) rename examples/light-switch-app/silabs/{efr32 => }/src/AppTask.cpp (100%) rename examples/light-switch-app/silabs/{common => src}/BindingHandler.cpp (100%) rename examples/light-switch-app/silabs/{common => src}/LightSwitchMgr.cpp (100%) rename examples/light-switch-app/silabs/{common => src}/ShellCommands.cpp (100%) rename examples/light-switch-app/silabs/{efr32 => }/src/ZclCallbacks.cpp (100%) create mode 120000 examples/light-switch-app/silabs/third_party/connectedhomeip rename examples/lighting-app/silabs/{efr32 => }/.gn (100%) rename examples/lighting-app/silabs/{efr32 => }/BUILD.gn (98%) rename examples/lighting-app/silabs/{efr32 => }/README.md (92%) delete mode 100644 examples/lighting-app/silabs/SiWx917/args.gni delete mode 100644 examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni rename examples/lighting-app/silabs/{efr32 => }/build_for_wifi_args.gni (91%) rename examples/lighting-app/silabs/{efr32 => }/build_for_wifi_gnfile.gn (100%) create mode 120000 examples/lighting-app/silabs/build_overrides rename examples/lighting-app/silabs/{efr32 => }/data_model/BUILD.gn (100%) rename examples/lighting-app/silabs/{efr32 => }/data_model/lighting-thread-app.matter (100%) rename examples/lighting-app/silabs/{efr32 => }/data_model/lighting-thread-app.zap (99%) rename examples/lighting-app/silabs/{efr32 => }/data_model/lighting-wifi-app.matter (100%) rename examples/lighting-app/silabs/{efr32 => }/data_model/lighting-wifi-app.zap (99%) delete mode 120000 examples/lighting-app/silabs/efr32/build_overrides delete mode 120000 examples/lighting-app/silabs/efr32/third_party/connectedhomeip rename examples/lighting-app/silabs/{efr32 => }/include/AppConfig.h (100%) rename examples/lighting-app/silabs/{efr32 => }/include/AppEvent.h (100%) rename examples/lighting-app/silabs/{efr32 => }/include/AppTask.h (100%) rename examples/lighting-app/silabs/{efr32 => }/include/CHIPProjectConfig.h (100%) rename examples/lighting-app/silabs/{efr32 => }/include/LightingManager.h (100%) rename examples/lighting-app/silabs/{efr32 => }/openthread.gn (100%) rename examples/lighting-app/silabs/{efr32 => }/openthread.gni (92%) rename examples/lighting-app/silabs/{efr32 => }/src/AppTask.cpp (100%) rename examples/lighting-app/silabs/{efr32 => }/src/LightingManager.cpp (100%) rename examples/lighting-app/silabs/{efr32 => }/src/ZclCallbacks.cpp (100%) create mode 120000 examples/lighting-app/silabs/third_party/connectedhomeip rename examples/lighting-app/silabs/{efr32 => }/with_pw_rpc.gni (100%) rename examples/lock-app/silabs/{efr32 => }/.gn (100%) rename examples/lock-app/silabs/{efr32 => }/BUILD.gn (98%) rename examples/lock-app/silabs/{efr32 => }/README.md (93%) rename examples/lock-app/silabs/{efr32 => }/args.gni (100%) rename examples/lock-app/silabs/{efr32 => }/build_for_wifi_args.gni (100%) rename examples/lock-app/silabs/{efr32 => }/build_for_wifi_gnfile.gn (100%) create mode 120000 examples/lock-app/silabs/build_overrides delete mode 120000 examples/lock-app/silabs/efr32/build_overrides delete mode 120000 examples/lock-app/silabs/efr32/third_party/connectedhomeip rename examples/lock-app/silabs/{efr32 => }/include/AppConfig.h (100%) rename examples/lock-app/silabs/{efr32 => }/include/AppEvent.h (100%) rename examples/lock-app/silabs/{efr32 => }/include/AppTask.h (100%) rename examples/lock-app/silabs/{efr32 => }/include/CHIPProjectConfig.h (100%) rename examples/lock-app/silabs/{efr32 => }/include/EventHandlerLibShell.h (100%) rename examples/lock-app/silabs/{efr32 => }/include/LockManager.h (100%) rename examples/lock-app/silabs/{efr32 => }/openthread.gn (100%) rename examples/lock-app/silabs/{efr32 => }/openthread.gni (100%) rename examples/lock-app/silabs/{efr32 => }/src/AppTask.cpp (100%) rename examples/lock-app/silabs/{efr32 => }/src/EventHandlerLibShell.cpp (100%) rename examples/lock-app/silabs/{efr32 => }/src/LockManager.cpp (100%) rename examples/lock-app/silabs/{efr32 => }/src/ZclCallbacks.cpp (100%) create mode 120000 examples/lock-app/silabs/third_party/connectedhomeip rename examples/lock-app/silabs/{efr32 => }/with_pw_rpc.gni (100%) rename examples/thermostat/silabs/{efr32 => }/.gn (100%) rename examples/thermostat/silabs/{efr32 => }/BUILD.gn (98%) rename examples/thermostat/silabs/{efr32 => }/README.md (91%) rename examples/thermostat/silabs/{efr32 => }/build_for_wifi_args.gni (100%) rename examples/thermostat/silabs/{efr32 => }/build_for_wifi_gnfile.gn (100%) create mode 120000 examples/thermostat/silabs/build_overrides delete mode 120000 examples/thermostat/silabs/efr32/build_overrides delete mode 120000 examples/thermostat/silabs/efr32/third_party/connectedhomeip rename examples/thermostat/silabs/{efr32 => }/include/AppConfig.h (100%) rename examples/thermostat/silabs/{efr32 => }/include/AppEvent.h (100%) rename examples/thermostat/silabs/{efr32 => }/include/AppTask.h (100%) rename examples/thermostat/silabs/{efr32 => }/include/CHIPProjectConfig.h (100%) rename examples/thermostat/silabs/{efr32 => }/include/SensorManager.h (100%) rename examples/thermostat/silabs/{efr32 => }/include/TemperatureManager.h (100%) rename examples/thermostat/silabs/{efr32 => }/include/ThermostatIcons.h (100%) rename examples/thermostat/silabs/{efr32 => }/include/ThermostatUI.h (100%) rename examples/thermostat/silabs/{efr32 => }/openthread.gn (100%) rename examples/thermostat/silabs/{efr32 => }/openthread.gni (100%) rename examples/thermostat/silabs/{efr32 => }/src/AppTask.cpp (100%) rename examples/thermostat/silabs/{efr32 => }/src/SensorManager.cpp (100%) rename examples/thermostat/silabs/{efr32 => }/src/TemperatureManager.cpp (100%) rename examples/thermostat/silabs/{efr32 => }/src/ThermostatUI.cpp (100%) rename examples/thermostat/silabs/{efr32 => }/src/ZclCallbacks.cpp (100%) create mode 120000 examples/thermostat/silabs/third_party/connectedhomeip rename examples/window-app/silabs/{efr32 => }/.gn (100%) rename examples/window-app/silabs/{efr32 => }/BUILD.gn (98%) rename examples/window-app/silabs/{efr32 => }/README.md (93%) rename examples/window-app/silabs/{efr32 => }/args.gni (100%) rename examples/window-app/silabs/{efr32 => }/build_for_wifi_args.gni (100%) rename examples/window-app/silabs/{efr32 => }/build_for_wifi_gnfile.gn (100%) create mode 120000 examples/window-app/silabs/build_overrides delete mode 120000 examples/window-app/silabs/efr32/build_overrides delete mode 120000 examples/window-app/silabs/efr32/third_party/connectedhomeip rename examples/window-app/silabs/{efr32 => }/include/AppConfig.h (100%) rename examples/window-app/silabs/{efr32 => }/include/CHIPProjectConfig.h (100%) rename examples/window-app/silabs/{efr32 => }/include/LcdPainter.h (100%) rename examples/window-app/silabs/{efr32 => }/include/WindowAppImpl.h (100%) rename examples/window-app/silabs/{efr32 => }/openthread.gn (100%) rename examples/window-app/silabs/{efr32 => }/openthread.gni (100%) rename examples/window-app/silabs/{efr32 => }/src/LcdPainter.cpp (100%) rename examples/window-app/silabs/{efr32 => }/src/WindowAppImpl.cpp (100%) rename examples/window-app/silabs/{efr32 => }/src/main.cpp (100%) create mode 120000 examples/window-app/silabs/third_party/connectedhomeip rename scripts/examples/{gn_efr32_example.sh => gn_silabs_example.sh} (98%) diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index 17e0b5617b2230..d8961dde06c5a1 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -87,7 +87,7 @@ jobs: - name: Test SLC gen timeout-minutes: 30 run: | - scripts/examples/gn_efr32_example.sh examples/lighting-app/silabs/efr32 ./out/light-app BRD4187C --slc_generate --docker + scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs ./out/light-app BRD4187C --slc_generate --docker rm -rf ./out/ - name: Build some BRD4187C variants timeout-minutes: 90 @@ -120,7 +120,7 @@ jobs: - name: Build example EFR32+WF200 WiFi Lock app for BRD4161A timeout-minutes: 15 run: | - scripts/examples/gn_efr32_example.sh examples/lock-app/silabs/efr32/ out/lock_app_wifi_wf200 BRD4161A is_debug=false chip_logging=false --wifi wf200 --docker + scripts/examples/gn_silabs_example.sh examples/lock-app/silabs out/lock_app_wifi_wf200 BRD4161A is_debug=false chip_logging=false --wifi wf200 --docker .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py efr32 BRD4161A+wf200 lock-app \ out/lock_app_wifi_wf200/BRD4161A/matter-silabs-lock-example.out /tmp/bloat_reports/ - name: Clean out build output @@ -128,7 +128,7 @@ jobs: - name: Build example EFR32+RS9116 WiFi Lighting app for BRD4161A timeout-minutes: 15 run: | - scripts/examples/gn_efr32_example.sh examples/lighting-app/silabs/efr32/ out/lighting_app_wifi_rs9116 BRD4161A --wifi rs9116 --docker + scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs out/lighting_app_wifi_rs9116 BRD4161A --wifi rs9116 --docker .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py efr32 BRD4161A+rs9116 lighting-app \ out/lighting_app_wifi_rs9116/BRD4161A/matter-silabs-lighting-example.out /tmp/bloat_reports/ - name: Clean out build output diff --git a/.github/workflows/release_artifacts.yaml b/.github/workflows/release_artifacts.yaml index 314600d3e588ff..fc371f695ab25e 100644 --- a/.github/workflows/release_artifacts.yaml +++ b/.github/workflows/release_artifacts.yaml @@ -124,7 +124,7 @@ jobs: .environment/pigweed-venv/*.log - name: Build example EFR32 Lock App - run: scripts/examples/gn_efr32_example.sh examples/lock-app/efr32/ + run: scripts/examples/gn_silabs_example.sh examples/lock-app/efr32/ out/lock_app_debug $SILABS_BOARD - name: Upload artifact diff --git a/docs/guides/darwin.md b/docs/guides/darwin.md index b83a943e325731..197023c3c99580 100644 --- a/docs/guides/darwin.md +++ b/docs/guides/darwin.md @@ -252,7 +252,7 @@ Example: ##### Guides - [Bouffalo Lab](/examples/lighting-app/bouffalolab/README.md) -- [EFR32 Window Covering](/examples/window-app/silabs/efr32/README.md) +- [EFR32 Window Covering](/examples/window-app/silabs/README.md) - [ESP32 All Clusters](/examples/all-clusters-app/esp32/README.md) - [ESP32 Lighting](/examples/lighting-app/esp32/README.md) - [ESP32 Temperature Sensor](/examples/temperature-measurement-app/esp32/README.md) diff --git a/examples/chef/chef.py b/examples/chef/chef.py index 516d51e3abde4e..b663a49f495676 100755 --- a/examples/chef/chef.py +++ b/examples/chef/chef.py @@ -662,7 +662,7 @@ def main() -> int: shell.run_cmd(f"rm -rf out/{options.sample_device_type_name}") efr32_cmd_args = [] efr32_cmd_args.append( - f'{_REPO_BASE_PATH}/scripts/examples/gn_efr32_example.sh') + f'{_REPO_BASE_PATH}/scripts/examples/gn_silabs_example.sh') efr32_cmd_args.append('./') efr32_cmd_args.append(f'out/{options.sample_device_type_name}') efr32_cmd_args.append(f'{silabs_board}') diff --git a/examples/chef/efr32/.gn b/examples/chef/silabs/.gn similarity index 100% rename from examples/chef/efr32/.gn rename to examples/chef/silabs/.gn diff --git a/examples/chef/efr32/BUILD.gn b/examples/chef/silabs/BUILD.gn similarity index 100% rename from examples/chef/efr32/BUILD.gn rename to examples/chef/silabs/BUILD.gn diff --git a/examples/chef/efr32/args.gni b/examples/chef/silabs/args.gni similarity index 100% rename from examples/chef/efr32/args.gni rename to examples/chef/silabs/args.gni diff --git a/examples/chef/efr32/build_for_wifi_args.gni b/examples/chef/silabs/build_for_wifi_args.gni similarity index 100% rename from examples/chef/efr32/build_for_wifi_args.gni rename to examples/chef/silabs/build_for_wifi_args.gni diff --git a/examples/chef/efr32/build_for_wifi_gnfile.gn b/examples/chef/silabs/build_for_wifi_gnfile.gn similarity index 100% rename from examples/chef/efr32/build_for_wifi_gnfile.gn rename to examples/chef/silabs/build_for_wifi_gnfile.gn diff --git a/examples/chef/efr32/build_overrides b/examples/chef/silabs/build_overrides similarity index 100% rename from examples/chef/efr32/build_overrides rename to examples/chef/silabs/build_overrides diff --git a/examples/chef/efr32/include/AppConfig.h b/examples/chef/silabs/include/AppConfig.h similarity index 100% rename from examples/chef/efr32/include/AppConfig.h rename to examples/chef/silabs/include/AppConfig.h diff --git a/examples/chef/efr32/include/AppEvent.h b/examples/chef/silabs/include/AppEvent.h similarity index 100% rename from examples/chef/efr32/include/AppEvent.h rename to examples/chef/silabs/include/AppEvent.h diff --git a/examples/chef/efr32/include/AppTask.h b/examples/chef/silabs/include/AppTask.h similarity index 100% rename from examples/chef/efr32/include/AppTask.h rename to examples/chef/silabs/include/AppTask.h diff --git a/examples/chef/efr32/include/CHIPProjectConfig.h b/examples/chef/silabs/include/CHIPProjectConfig.h similarity index 100% rename from examples/chef/efr32/include/CHIPProjectConfig.h rename to examples/chef/silabs/include/CHIPProjectConfig.h diff --git a/examples/chef/efr32/include/LightingManager.h b/examples/chef/silabs/include/LightingManager.h similarity index 100% rename from examples/chef/efr32/include/LightingManager.h rename to examples/chef/silabs/include/LightingManager.h diff --git a/examples/chef/efr32/src/AppTask.cpp b/examples/chef/silabs/src/AppTask.cpp similarity index 100% rename from examples/chef/efr32/src/AppTask.cpp rename to examples/chef/silabs/src/AppTask.cpp diff --git a/examples/chef/efr32/src/LightingManager.cpp b/examples/chef/silabs/src/LightingManager.cpp similarity index 100% rename from examples/chef/efr32/src/LightingManager.cpp rename to examples/chef/silabs/src/LightingManager.cpp diff --git a/examples/chef/efr32/src/ZclCallbacks.cpp b/examples/chef/silabs/src/ZclCallbacks.cpp similarity index 100% rename from examples/chef/efr32/src/ZclCallbacks.cpp rename to examples/chef/silabs/src/ZclCallbacks.cpp diff --git a/examples/chef/efr32/third_party/connectedhomeip b/examples/chef/silabs/third_party/connectedhomeip similarity index 100% rename from examples/chef/efr32/third_party/connectedhomeip rename to examples/chef/silabs/third_party/connectedhomeip diff --git a/examples/chef/efr32/with_pw_rpc.gni b/examples/chef/silabs/with_pw_rpc.gni similarity index 100% rename from examples/chef/efr32/with_pw_rpc.gni rename to examples/chef/silabs/with_pw_rpc.gni diff --git a/examples/light-switch-app/silabs/efr32/.gn b/examples/light-switch-app/silabs/.gn similarity index 100% rename from examples/light-switch-app/silabs/efr32/.gn rename to examples/light-switch-app/silabs/.gn diff --git a/examples/light-switch-app/silabs/efr32/BUILD.gn b/examples/light-switch-app/silabs/BUILD.gn similarity index 92% rename from examples/light-switch-app/silabs/efr32/BUILD.gn rename to examples/light-switch-app/silabs/BUILD.gn index f7351646feb518..0707f6dbf52622 100644 --- a/examples/light-switch-app/silabs/efr32/BUILD.gn +++ b/examples/light-switch-app/silabs/BUILD.gn @@ -31,7 +31,7 @@ if (chip_enable_pw_rpc) { assert(current_os == "freertos") -silabs_project_dir = "${chip_root}/examples/light-switch-app/silabs/efr32" +silabs_project_dir = "${chip_root}/examples/light-switch-app/silabs" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" if (wifi_soc) { @@ -80,7 +80,6 @@ if (wifi_soc) { ] include_dirs = [ - "${chip_root}/examples/light-switch-app/silabs/common", "${chip_root}/src/platform/silabs/efr32", "${silabs_project_dir}/include", "${examples_plat_dir}", @@ -114,17 +113,14 @@ if (wifi_soc) { silabs_executable("light_switch_app") { output_name = "matter-silabs-light-switch-example.out" - include_dirs = [ - "include", - "${chip_root}/examples/light-switch-app/silabs/common/", - ] + include_dirs = [ "include" ] defines = [] sources = [ - "${chip_root}/examples/light-switch-app/silabs/common/BindingHandler.cpp", - "${chip_root}/examples/light-switch-app/silabs/common/LightSwitchMgr.cpp", "${examples_common_plat_dir}/main.cpp", "src/AppTask.cpp", + "src/BindingHandler.cpp", + "src/LightSwitchMgr.cpp", "src/ZclCallbacks.cpp", ] @@ -140,9 +136,7 @@ silabs_executable("light_switch_app") { } if (chip_build_libshell) { - sources += [ - "${chip_root}/examples/light-switch-app/silabs/common/ShellCommands.cpp", - ] + sources += [ "src/ShellCommands.cpp" ] } if (chip_enable_pw_rpc) { diff --git a/examples/light-switch-app/silabs/efr32/README.md b/examples/light-switch-app/silabs/README.md similarity index 92% rename from examples/light-switch-app/silabs/efr32/README.md rename to examples/light-switch-app/silabs/README.md index a5f71d14620277..9ca79a80e2bd41 100644 --- a/examples/light-switch-app/silabs/efr32/README.md +++ b/examples/light-switch-app/silabs/README.md @@ -106,7 +106,7 @@ Silicon Labs platform. * Build the example application: cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/efr32/ ./out/light-switch-app BRD4187C + ./scripts/examples/gn_silabs_example.sh ./examples/light-switch-app/silabs/efr32/ ./out/light-switch-app BRD4187C - To delete generated executable, libraries and object files use: @@ -129,11 +129,11 @@ Silicon Labs platform. * Build the example with Matter shell - ./scripts/examples/gn_efr32_example.sh examples/light-switch-app/silabs/efr32/ out/light-switch-app BRD4187C chip_build_libshell=true + ./scripts/examples/gn_silabs_example.sh examples/light-switch-app/silabs/efr32/ out/light-switch-app BRD4187C chip_build_libshell=true * Build the example as Sleepy End Device (SED) - $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/efr32/ ./out/light-switch-app_SED BRD4187C --sed + $ ./scripts/examples/gn_silabs_example.sh ./examples/light-switch-app/silabs/efr32/ ./out/light-switch-app_SED BRD4187C --sed or use gn as previously mentioned but adding the following arguments: @@ -141,7 +141,7 @@ Silicon Labs platform. * Build the example with pigweed RCP - $ ./scripts/examples/gn_efr32_example.sh examples/light-switch-app/silabs/efr32/ out/light-switch-app_rpc BRD4187C 'import("//with_pw_rpc.gni")' + $ ./scripts/examples/gn_silabs_example.sh examples/light-switch-app/silabs/efr32/ out/light-switch-app_rpc BRD4187C 'import("//with_pw_rpc.gni")' or use GN/Ninja Directly @@ -155,7 +155,7 @@ Silicon Labs platform. For more build options, help is provided when running the build script without arguments - ./scripts/examples/gn_efr32_example.sh + ./scripts/examples/gn_silabs_example.sh ## Flashing the Application @@ -243,7 +243,7 @@ combination with JLinkRTTClient as follows: - For this example to work, it is necessary to have a second efr32 device running the - [lighting app example](https://github.com/project-chip/connectedhomeip/blob/master/examples/lighting-app/silabs/efr32/README.md) + [lighting app example](https://github.com/project-chip/connectedhomeip/blob/master/examples/lighting-app/silabs/README.md) commissioned on the same openthread network - User interface : **LCD** The LCD on Silabs WSTK shows a QR Code. This QR @@ -409,7 +409,7 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) ## Building options @@ -421,19 +421,19 @@ features can easily be toggled on or off. Here is a short list of options : chip_progress_logging, chip_detail_logging, chip_automation_logging - $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" ### Debug build / release build is_debug - $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A "is_debug=false" ### Disabling LCD show_qr_code - $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A "show_qr_code=false" ### KVS maximum entry count @@ -442,4 +442,4 @@ kvs_max_entries Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_silabs_example.sh ./examples/light-switch-app/silabs/efr32 ./out/light-switch-app BRD4164A kvs_max_entries=50 diff --git a/examples/light-switch-app/silabs/efr32/build_for_wifi_args.gni b/examples/light-switch-app/silabs/build_for_wifi_args.gni similarity index 100% rename from examples/light-switch-app/silabs/efr32/build_for_wifi_args.gni rename to examples/light-switch-app/silabs/build_for_wifi_args.gni diff --git a/examples/light-switch-app/silabs/efr32/build_for_wifi_gnfile.gn b/examples/light-switch-app/silabs/build_for_wifi_gnfile.gn similarity index 100% rename from examples/light-switch-app/silabs/efr32/build_for_wifi_gnfile.gn rename to examples/light-switch-app/silabs/build_for_wifi_gnfile.gn diff --git a/examples/light-switch-app/silabs/build_overrides b/examples/light-switch-app/silabs/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/light-switch-app/silabs/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/light-switch-app/silabs/efr32/build_overrides b/examples/light-switch-app/silabs/efr32/build_overrides deleted file mode 120000 index 995884e6163eb5..00000000000000 --- a/examples/light-switch-app/silabs/efr32/build_overrides +++ /dev/null @@ -1 +0,0 @@ -../../../build_overrides \ No newline at end of file diff --git a/examples/light-switch-app/silabs/efr32/third_party/connectedhomeip b/examples/light-switch-app/silabs/efr32/third_party/connectedhomeip deleted file mode 120000 index 59307833b4fee9..00000000000000 --- a/examples/light-switch-app/silabs/efr32/third_party/connectedhomeip +++ /dev/null @@ -1 +0,0 @@ -../../../../.. \ No newline at end of file diff --git a/examples/light-switch-app/silabs/efr32/include/AppConfig.h b/examples/light-switch-app/silabs/include/AppConfig.h similarity index 100% rename from examples/light-switch-app/silabs/efr32/include/AppConfig.h rename to examples/light-switch-app/silabs/include/AppConfig.h diff --git a/examples/light-switch-app/silabs/efr32/include/AppEvent.h b/examples/light-switch-app/silabs/include/AppEvent.h similarity index 100% rename from examples/light-switch-app/silabs/efr32/include/AppEvent.h rename to examples/light-switch-app/silabs/include/AppEvent.h diff --git a/examples/light-switch-app/silabs/efr32/include/AppTask.h b/examples/light-switch-app/silabs/include/AppTask.h similarity index 100% rename from examples/light-switch-app/silabs/efr32/include/AppTask.h rename to examples/light-switch-app/silabs/include/AppTask.h diff --git a/examples/light-switch-app/silabs/common/BindingHandler.h b/examples/light-switch-app/silabs/include/BindingHandler.h similarity index 100% rename from examples/light-switch-app/silabs/common/BindingHandler.h rename to examples/light-switch-app/silabs/include/BindingHandler.h diff --git a/examples/light-switch-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/light-switch-app/silabs/include/CHIPProjectConfig.h similarity index 100% rename from examples/light-switch-app/silabs/efr32/include/CHIPProjectConfig.h rename to examples/light-switch-app/silabs/include/CHIPProjectConfig.h diff --git a/examples/light-switch-app/silabs/common/LightSwitchMgr.h b/examples/light-switch-app/silabs/include/LightSwitchMgr.h similarity index 100% rename from examples/light-switch-app/silabs/common/LightSwitchMgr.h rename to examples/light-switch-app/silabs/include/LightSwitchMgr.h diff --git a/examples/light-switch-app/silabs/common/ShellCommands.h b/examples/light-switch-app/silabs/include/ShellCommands.h similarity index 100% rename from examples/light-switch-app/silabs/common/ShellCommands.h rename to examples/light-switch-app/silabs/include/ShellCommands.h diff --git a/examples/light-switch-app/silabs/efr32/openthread.gn b/examples/light-switch-app/silabs/openthread.gn similarity index 100% rename from examples/light-switch-app/silabs/efr32/openthread.gn rename to examples/light-switch-app/silabs/openthread.gn diff --git a/examples/light-switch-app/silabs/efr32/openthread.gni b/examples/light-switch-app/silabs/openthread.gni similarity index 100% rename from examples/light-switch-app/silabs/efr32/openthread.gni rename to examples/light-switch-app/silabs/openthread.gni diff --git a/examples/light-switch-app/silabs/efr32/src/AppTask.cpp b/examples/light-switch-app/silabs/src/AppTask.cpp similarity index 100% rename from examples/light-switch-app/silabs/efr32/src/AppTask.cpp rename to examples/light-switch-app/silabs/src/AppTask.cpp diff --git a/examples/light-switch-app/silabs/common/BindingHandler.cpp b/examples/light-switch-app/silabs/src/BindingHandler.cpp similarity index 100% rename from examples/light-switch-app/silabs/common/BindingHandler.cpp rename to examples/light-switch-app/silabs/src/BindingHandler.cpp diff --git a/examples/light-switch-app/silabs/common/LightSwitchMgr.cpp b/examples/light-switch-app/silabs/src/LightSwitchMgr.cpp similarity index 100% rename from examples/light-switch-app/silabs/common/LightSwitchMgr.cpp rename to examples/light-switch-app/silabs/src/LightSwitchMgr.cpp diff --git a/examples/light-switch-app/silabs/common/ShellCommands.cpp b/examples/light-switch-app/silabs/src/ShellCommands.cpp similarity index 100% rename from examples/light-switch-app/silabs/common/ShellCommands.cpp rename to examples/light-switch-app/silabs/src/ShellCommands.cpp diff --git a/examples/light-switch-app/silabs/efr32/src/ZclCallbacks.cpp b/examples/light-switch-app/silabs/src/ZclCallbacks.cpp similarity index 100% rename from examples/light-switch-app/silabs/efr32/src/ZclCallbacks.cpp rename to examples/light-switch-app/silabs/src/ZclCallbacks.cpp diff --git a/examples/light-switch-app/silabs/third_party/connectedhomeip b/examples/light-switch-app/silabs/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/light-switch-app/silabs/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/lighting-app/silabs/efr32/.gn b/examples/lighting-app/silabs/.gn similarity index 100% rename from examples/lighting-app/silabs/efr32/.gn rename to examples/lighting-app/silabs/.gn diff --git a/examples/lighting-app/silabs/efr32/BUILD.gn b/examples/lighting-app/silabs/BUILD.gn similarity index 98% rename from examples/lighting-app/silabs/efr32/BUILD.gn rename to examples/lighting-app/silabs/BUILD.gn index 32022379e8fc8f..a9687bb3fe061d 100644 --- a/examples/lighting-app/silabs/efr32/BUILD.gn +++ b/examples/lighting-app/silabs/BUILD.gn @@ -31,7 +31,7 @@ if (chip_enable_pw_rpc) { assert(current_os == "freertos") -silabs_project_dir = "${chip_root}/examples/lighting-app/silabs/efr32" +silabs_project_dir = "${chip_root}/examples/lighting-app/silabs" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" if (wifi_soc) { diff --git a/examples/lighting-app/silabs/efr32/README.md b/examples/lighting-app/silabs/README.md similarity index 92% rename from examples/lighting-app/silabs/efr32/README.md rename to examples/lighting-app/silabs/README.md index d4293677238f33..4d7c873aeff09a 100644 --- a/examples/lighting-app/silabs/efr32/README.md +++ b/examples/lighting-app/silabs/README.md @@ -102,7 +102,7 @@ Silicon Labs platform. * Build the example application: cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/efr32/ ./out/lighting-app BRD4187C + ./scripts/examples/gn_silabs_example.sh ./examples/lighting-app/silabs/efr32/ ./out/lighting-app BRD4187C - To delete generated executable, libraries and object files use: @@ -125,7 +125,7 @@ Silicon Labs platform. * Build the example as Sleepy End Device (SED) - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/efr32/ ./out/lighting-app_SED BRD4187C --sed + $ ./scripts/examples/gn_silabs_example.sh ./examples/lighting-app/silabs/efr32/ ./out/lighting-app_SED BRD4187C --sed or use gn as previously mentioned but adding the following arguments: @@ -133,7 +133,7 @@ Silicon Labs platform. * Build the example with pigweed RPC - $ ./scripts/examples/gn_efr32_example.sh examples/lighting-app/silabs/efr32/ out/lighting_app_rpc BRD4187C 'import("//with_pw_rpc.gni")' + $ ./scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs/efr32/ out/lighting_app_rpc BRD4187C 'import("//with_pw_rpc.gni")' or use GN/Ninja Directly @@ -149,7 +149,7 @@ Silicon Labs platform. For more build options, help is provided when running the build script without arguments - ./scripts/examples/gn_efr32_example.sh + ./scripts/examples/gn_silabs_example.sh ## Flashing the Application @@ -348,13 +348,13 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) ## Group Communication (Multicast) With this lighting example you can also use group communication to send Lighting commands to multiples devices at once. Please refer to the -[chip-tool documentation](../../../chip-tool/README.md) _Configuring the server +[chip-tool documentation](../../chip-tool/README.md) _Configuring the server side for Group Commands_ and _Using the Client to Send Group (Multicast) Matter Commands_ @@ -369,19 +369,19 @@ passed to the build scripts. `chip_progress_logging, chip_detail_logging, chip_automation_logging` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" ### Debug build / release build `is_debug` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A "is_debug=false" ### Disabling LCD `show_qr_code` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A "show_qr_code=false" ### KVS maximum entry count @@ -390,4 +390,4 @@ passed to the build scripts. Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_silabs_example.sh ./examples/lighting-app/silabs/efr32 ./out/lighting-app BRD4164A kvs_max_entries=50 diff --git a/examples/lighting-app/silabs/SiWx917/args.gni b/examples/lighting-app/silabs/SiWx917/args.gni deleted file mode 100644 index 7157754d68f864..00000000000000 --- a/examples/lighting-app/silabs/SiWx917/args.gni +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import("//build_overrides/chip.gni") -import("${chip_root}/config/standalone/args.gni") - -silabs_sdk_target = get_label_info(":sdk", "label_no_toolchain") -import("${chip_root}/src/platform/silabs/args.gni") - -app_data_model = "${chip_root}/examples/lighting-app/silabs/SiWx917/data_model:silabs-lighting" -chip_enable_ota_requestor = true diff --git a/examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni b/examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni deleted file mode 100644 index a2f55709d5a7c4..00000000000000 --- a/examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# add this gni as import in your build args to use pigweed in the example -# 'import("//with_pw_rpc.gni")' - -import("//build_overrides/chip.gni") -import("${chip_root}/config/efr32/lib/pw_rpc/pw_rpc.gni") -import("${chip_root}/examples/platform/silabs/SiWx917/args.gni") - -silabs_sdk_target = get_label_info(":sdk", "label_no_toolchain") - -app_data_model = "${chip_root}/examples/lighting-app/lighting-common" -chip_enable_pw_rpc = true -chip_enable_openthread = true -chip_build_pw_trace_lib = true - -cpp_standard = "gnu++17" - -# Light app on EFR enables tracing server -pw_trace_BACKEND = "$dir_pw_trace_tokenized" diff --git a/examples/lighting-app/silabs/efr32/build_for_wifi_args.gni b/examples/lighting-app/silabs/build_for_wifi_args.gni similarity index 91% rename from examples/lighting-app/silabs/efr32/build_for_wifi_args.gni rename to examples/lighting-app/silabs/build_for_wifi_args.gni index 08cb8f35603b47..bbb57ae35a4343 100644 --- a/examples/lighting-app/silabs/efr32/build_for_wifi_args.gni +++ b/examples/lighting-app/silabs/build_for_wifi_args.gni @@ -20,4 +20,4 @@ import("${chip_root}/src/platform/silabs/wifi_args.gni") chip_enable_ota_requestor = true app_data_model = - "${chip_root}/examples/lighting-app/silabs/efr32/data_model:silabs-lighting" + "${chip_root}/examples/lighting-app/silabs/data_model:silabs-lighting" diff --git a/examples/lighting-app/silabs/efr32/build_for_wifi_gnfile.gn b/examples/lighting-app/silabs/build_for_wifi_gnfile.gn similarity index 100% rename from examples/lighting-app/silabs/efr32/build_for_wifi_gnfile.gn rename to examples/lighting-app/silabs/build_for_wifi_gnfile.gn diff --git a/examples/lighting-app/silabs/build_overrides b/examples/lighting-app/silabs/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/lighting-app/silabs/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/lighting-app/silabs/efr32/data_model/BUILD.gn b/examples/lighting-app/silabs/data_model/BUILD.gn similarity index 100% rename from examples/lighting-app/silabs/efr32/data_model/BUILD.gn rename to examples/lighting-app/silabs/data_model/BUILD.gn diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter similarity index 100% rename from examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter rename to examples/lighting-app/silabs/data_model/lighting-thread-app.matter diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.zap b/examples/lighting-app/silabs/data_model/lighting-thread-app.zap similarity index 99% rename from examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.zap rename to examples/lighting-app/silabs/data_model/lighting-thread-app.zap index 5ca225af311490..4129c583036388 100644 --- a/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.zap +++ b/examples/lighting-app/silabs/data_model/lighting-thread-app.zap @@ -18,7 +18,7 @@ "package": [ { "pathRelativity": "relativeToZap", - "path": "../../../../../src/app/zap-templates/zcl/zcl.json", + "path": "../../../../src/app/zap-templates/zcl/zcl.json", "type": "zcl-properties", "category": "matter", "version": 1, @@ -26,7 +26,7 @@ }, { "pathRelativity": "relativeToZap", - "path": "../../../../../src/app/zap-templates/app-templates.json", + "path": "../../../../src/app/zap-templates/app-templates.json", "type": "gen-templates-json", "version": "chip-v1" } diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter similarity index 100% rename from examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter rename to examples/lighting-app/silabs/data_model/lighting-wifi-app.matter diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.zap b/examples/lighting-app/silabs/data_model/lighting-wifi-app.zap similarity index 99% rename from examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.zap rename to examples/lighting-app/silabs/data_model/lighting-wifi-app.zap index c769ae54178b5d..e0b17ec63aea08 100644 --- a/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.zap +++ b/examples/lighting-app/silabs/data_model/lighting-wifi-app.zap @@ -18,7 +18,7 @@ "package": [ { "pathRelativity": "relativeToZap", - "path": "../../../../../src/app/zap-templates/zcl/zcl.json", + "path": "../../../../src/app/zap-templates/zcl/zcl.json", "type": "zcl-properties", "category": "matter", "version": 1, @@ -26,7 +26,7 @@ }, { "pathRelativity": "relativeToZap", - "path": "../../../../../src/app/zap-templates/app-templates.json", + "path": "../../../../src/app/zap-templates/app-templates.json", "type": "gen-templates-json", "version": "chip-v1" } diff --git a/examples/lighting-app/silabs/efr32/build_overrides b/examples/lighting-app/silabs/efr32/build_overrides deleted file mode 120000 index 995884e6163eb5..00000000000000 --- a/examples/lighting-app/silabs/efr32/build_overrides +++ /dev/null @@ -1 +0,0 @@ -../../../build_overrides \ No newline at end of file diff --git a/examples/lighting-app/silabs/efr32/third_party/connectedhomeip b/examples/lighting-app/silabs/efr32/third_party/connectedhomeip deleted file mode 120000 index 59307833b4fee9..00000000000000 --- a/examples/lighting-app/silabs/efr32/third_party/connectedhomeip +++ /dev/null @@ -1 +0,0 @@ -../../../../.. \ No newline at end of file diff --git a/examples/lighting-app/silabs/efr32/include/AppConfig.h b/examples/lighting-app/silabs/include/AppConfig.h similarity index 100% rename from examples/lighting-app/silabs/efr32/include/AppConfig.h rename to examples/lighting-app/silabs/include/AppConfig.h diff --git a/examples/lighting-app/silabs/efr32/include/AppEvent.h b/examples/lighting-app/silabs/include/AppEvent.h similarity index 100% rename from examples/lighting-app/silabs/efr32/include/AppEvent.h rename to examples/lighting-app/silabs/include/AppEvent.h diff --git a/examples/lighting-app/silabs/efr32/include/AppTask.h b/examples/lighting-app/silabs/include/AppTask.h similarity index 100% rename from examples/lighting-app/silabs/efr32/include/AppTask.h rename to examples/lighting-app/silabs/include/AppTask.h diff --git a/examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/lighting-app/silabs/include/CHIPProjectConfig.h similarity index 100% rename from examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h rename to examples/lighting-app/silabs/include/CHIPProjectConfig.h diff --git a/examples/lighting-app/silabs/efr32/include/LightingManager.h b/examples/lighting-app/silabs/include/LightingManager.h similarity index 100% rename from examples/lighting-app/silabs/efr32/include/LightingManager.h rename to examples/lighting-app/silabs/include/LightingManager.h diff --git a/examples/lighting-app/silabs/efr32/openthread.gn b/examples/lighting-app/silabs/openthread.gn similarity index 100% rename from examples/lighting-app/silabs/efr32/openthread.gn rename to examples/lighting-app/silabs/openthread.gn diff --git a/examples/lighting-app/silabs/efr32/openthread.gni b/examples/lighting-app/silabs/openthread.gni similarity index 92% rename from examples/lighting-app/silabs/efr32/openthread.gni rename to examples/lighting-app/silabs/openthread.gni index e7783cb5d09727..71fa3271ea5073 100644 --- a/examples/lighting-app/silabs/efr32/openthread.gni +++ b/examples/lighting-app/silabs/openthread.gni @@ -19,7 +19,7 @@ import("${chip_root}/src/platform/silabs/efr32/args.gni") silabs_sdk_target = get_label_info(":sdk", "label_no_toolchain") app_data_model = - "${chip_root}/examples/lighting-app/silabs/efr32/data_model:silabs-lighting" + "${chip_root}/examples/lighting-app/silabs/data_model:silabs-lighting" chip_enable_ota_requestor = true chip_enable_openthread = true diff --git a/examples/lighting-app/silabs/efr32/src/AppTask.cpp b/examples/lighting-app/silabs/src/AppTask.cpp similarity index 100% rename from examples/lighting-app/silabs/efr32/src/AppTask.cpp rename to examples/lighting-app/silabs/src/AppTask.cpp diff --git a/examples/lighting-app/silabs/efr32/src/LightingManager.cpp b/examples/lighting-app/silabs/src/LightingManager.cpp similarity index 100% rename from examples/lighting-app/silabs/efr32/src/LightingManager.cpp rename to examples/lighting-app/silabs/src/LightingManager.cpp diff --git a/examples/lighting-app/silabs/efr32/src/ZclCallbacks.cpp b/examples/lighting-app/silabs/src/ZclCallbacks.cpp similarity index 100% rename from examples/lighting-app/silabs/efr32/src/ZclCallbacks.cpp rename to examples/lighting-app/silabs/src/ZclCallbacks.cpp diff --git a/examples/lighting-app/silabs/third_party/connectedhomeip b/examples/lighting-app/silabs/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/lighting-app/silabs/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/lighting-app/silabs/efr32/with_pw_rpc.gni b/examples/lighting-app/silabs/with_pw_rpc.gni similarity index 100% rename from examples/lighting-app/silabs/efr32/with_pw_rpc.gni rename to examples/lighting-app/silabs/with_pw_rpc.gni diff --git a/examples/lock-app/silabs/efr32/.gn b/examples/lock-app/silabs/.gn similarity index 100% rename from examples/lock-app/silabs/efr32/.gn rename to examples/lock-app/silabs/.gn diff --git a/examples/lock-app/silabs/efr32/BUILD.gn b/examples/lock-app/silabs/BUILD.gn similarity index 98% rename from examples/lock-app/silabs/efr32/BUILD.gn rename to examples/lock-app/silabs/BUILD.gn index ab1479df760bb0..7e50ac8b119a1c 100644 --- a/examples/lock-app/silabs/efr32/BUILD.gn +++ b/examples/lock-app/silabs/BUILD.gn @@ -31,7 +31,7 @@ if (chip_enable_pw_rpc) { assert(current_os == "freertos") -silabs_project_dir = "${chip_root}/examples/lock-app/silabs/efr32" +silabs_project_dir = "${chip_root}/examples/lock-app/silabs" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" if (wifi_soc) { diff --git a/examples/lock-app/silabs/efr32/README.md b/examples/lock-app/silabs/README.md similarity index 93% rename from examples/lock-app/silabs/efr32/README.md rename to examples/lock-app/silabs/README.md index 46d6f87ef77fae..2d6cb8722a8dce 100644 --- a/examples/lock-app/silabs/efr32/README.md +++ b/examples/lock-app/silabs/README.md @@ -102,7 +102,7 @@ Mac OS X ``` cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/efr32/ ./out/lock_app BRD4187C + ./scripts/examples/gn_silabs_example.sh ./examples/lock-app/silabs/efr32/ ./out/lock_app BRD4187C ``` - To delete generated executable, libraries and object files use: @@ -133,7 +133,7 @@ Mac OS X * Build the example as Sleepy End Device (SED) ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/efr32/ ./out/lock-app_SED BRD4187C --sed + $ ./scripts/examples/gn_silabs_example.sh ./examples/lock-app/silabs/efr32/ ./out/lock-app_SED BRD4187C --sed ``` or use gn as previously mentioned but adding the following arguments: @@ -145,7 +145,7 @@ Mac OS X * Build the example with pigweed RCP ``` - $ ./scripts/examples/gn_efr32_example.sh examples/lock-app/silabs/efr32/ out/lock_app_rpc BRD4187C 'import("//with_pw_rpc.gni")' + $ ./scripts/examples/gn_silabs_example.sh examples/lock-app/silabs/efr32/ out/lock_app_rpc BRD4187C 'import("//with_pw_rpc.gni")' ``` or use GN/Ninja Directly @@ -163,7 +163,7 @@ For more build options, help is provided when running the build script without arguments ``` - ./scripts/examples/gn_efr32_example.sh + ./scripts/examples/gn_silabs_example.sh ``` ## Flashing the Application @@ -380,7 +380,7 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) ## Building options @@ -393,7 +393,7 @@ features can easily be toggled on or off. Here is a short list of options : `chip_progress_logging, chip_detail_logging, chip_automation_logging` ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" ``` ### Debug build / release build @@ -401,7 +401,7 @@ features can easily be toggled on or off. Here is a short list of options : `is_debug` ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A "is_debug=false" ``` ### Disabling LCD @@ -409,7 +409,7 @@ features can easily be toggled on or off. Here is a short list of options : `show_qr_code` ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A "show_qr_code=false" ``` ### KVS maximum entry count @@ -420,5 +420,5 @@ features can easily be toggled on or off. Here is a short list of options : Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_silabs_example.sh ./examples/lock-app/silabs/efr32 ./out/lock-app BRD4164A kvs_max_entries=50 ``` diff --git a/examples/lock-app/silabs/efr32/args.gni b/examples/lock-app/silabs/args.gni similarity index 100% rename from examples/lock-app/silabs/efr32/args.gni rename to examples/lock-app/silabs/args.gni diff --git a/examples/lock-app/silabs/efr32/build_for_wifi_args.gni b/examples/lock-app/silabs/build_for_wifi_args.gni similarity index 100% rename from examples/lock-app/silabs/efr32/build_for_wifi_args.gni rename to examples/lock-app/silabs/build_for_wifi_args.gni diff --git a/examples/lock-app/silabs/efr32/build_for_wifi_gnfile.gn b/examples/lock-app/silabs/build_for_wifi_gnfile.gn similarity index 100% rename from examples/lock-app/silabs/efr32/build_for_wifi_gnfile.gn rename to examples/lock-app/silabs/build_for_wifi_gnfile.gn diff --git a/examples/lock-app/silabs/build_overrides b/examples/lock-app/silabs/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/lock-app/silabs/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/lock-app/silabs/efr32/build_overrides b/examples/lock-app/silabs/efr32/build_overrides deleted file mode 120000 index 995884e6163eb5..00000000000000 --- a/examples/lock-app/silabs/efr32/build_overrides +++ /dev/null @@ -1 +0,0 @@ -../../../build_overrides \ No newline at end of file diff --git a/examples/lock-app/silabs/efr32/third_party/connectedhomeip b/examples/lock-app/silabs/efr32/third_party/connectedhomeip deleted file mode 120000 index 59307833b4fee9..00000000000000 --- a/examples/lock-app/silabs/efr32/third_party/connectedhomeip +++ /dev/null @@ -1 +0,0 @@ -../../../../.. \ No newline at end of file diff --git a/examples/lock-app/silabs/efr32/include/AppConfig.h b/examples/lock-app/silabs/include/AppConfig.h similarity index 100% rename from examples/lock-app/silabs/efr32/include/AppConfig.h rename to examples/lock-app/silabs/include/AppConfig.h diff --git a/examples/lock-app/silabs/efr32/include/AppEvent.h b/examples/lock-app/silabs/include/AppEvent.h similarity index 100% rename from examples/lock-app/silabs/efr32/include/AppEvent.h rename to examples/lock-app/silabs/include/AppEvent.h diff --git a/examples/lock-app/silabs/efr32/include/AppTask.h b/examples/lock-app/silabs/include/AppTask.h similarity index 100% rename from examples/lock-app/silabs/efr32/include/AppTask.h rename to examples/lock-app/silabs/include/AppTask.h diff --git a/examples/lock-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/lock-app/silabs/include/CHIPProjectConfig.h similarity index 100% rename from examples/lock-app/silabs/efr32/include/CHIPProjectConfig.h rename to examples/lock-app/silabs/include/CHIPProjectConfig.h diff --git a/examples/lock-app/silabs/efr32/include/EventHandlerLibShell.h b/examples/lock-app/silabs/include/EventHandlerLibShell.h similarity index 100% rename from examples/lock-app/silabs/efr32/include/EventHandlerLibShell.h rename to examples/lock-app/silabs/include/EventHandlerLibShell.h diff --git a/examples/lock-app/silabs/efr32/include/LockManager.h b/examples/lock-app/silabs/include/LockManager.h similarity index 100% rename from examples/lock-app/silabs/efr32/include/LockManager.h rename to examples/lock-app/silabs/include/LockManager.h diff --git a/examples/lock-app/silabs/efr32/openthread.gn b/examples/lock-app/silabs/openthread.gn similarity index 100% rename from examples/lock-app/silabs/efr32/openthread.gn rename to examples/lock-app/silabs/openthread.gn diff --git a/examples/lock-app/silabs/efr32/openthread.gni b/examples/lock-app/silabs/openthread.gni similarity index 100% rename from examples/lock-app/silabs/efr32/openthread.gni rename to examples/lock-app/silabs/openthread.gni diff --git a/examples/lock-app/silabs/efr32/src/AppTask.cpp b/examples/lock-app/silabs/src/AppTask.cpp similarity index 100% rename from examples/lock-app/silabs/efr32/src/AppTask.cpp rename to examples/lock-app/silabs/src/AppTask.cpp diff --git a/examples/lock-app/silabs/efr32/src/EventHandlerLibShell.cpp b/examples/lock-app/silabs/src/EventHandlerLibShell.cpp similarity index 100% rename from examples/lock-app/silabs/efr32/src/EventHandlerLibShell.cpp rename to examples/lock-app/silabs/src/EventHandlerLibShell.cpp diff --git a/examples/lock-app/silabs/efr32/src/LockManager.cpp b/examples/lock-app/silabs/src/LockManager.cpp similarity index 100% rename from examples/lock-app/silabs/efr32/src/LockManager.cpp rename to examples/lock-app/silabs/src/LockManager.cpp diff --git a/examples/lock-app/silabs/efr32/src/ZclCallbacks.cpp b/examples/lock-app/silabs/src/ZclCallbacks.cpp similarity index 100% rename from examples/lock-app/silabs/efr32/src/ZclCallbacks.cpp rename to examples/lock-app/silabs/src/ZclCallbacks.cpp diff --git a/examples/lock-app/silabs/third_party/connectedhomeip b/examples/lock-app/silabs/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/lock-app/silabs/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/lock-app/silabs/efr32/with_pw_rpc.gni b/examples/lock-app/silabs/with_pw_rpc.gni similarity index 100% rename from examples/lock-app/silabs/efr32/with_pw_rpc.gni rename to examples/lock-app/silabs/with_pw_rpc.gni diff --git a/examples/thermostat/silabs/efr32/.gn b/examples/thermostat/silabs/.gn similarity index 100% rename from examples/thermostat/silabs/efr32/.gn rename to examples/thermostat/silabs/.gn diff --git a/examples/thermostat/silabs/efr32/BUILD.gn b/examples/thermostat/silabs/BUILD.gn similarity index 98% rename from examples/thermostat/silabs/efr32/BUILD.gn rename to examples/thermostat/silabs/BUILD.gn index 92063a31c878aa..684ab738804105 100644 --- a/examples/thermostat/silabs/efr32/BUILD.gn +++ b/examples/thermostat/silabs/BUILD.gn @@ -31,7 +31,7 @@ if (chip_enable_pw_rpc) { assert(current_os == "freertos") -silabs_project_dir = "${chip_root}/examples/thermostat/silabs/efr32" +silabs_project_dir = "${chip_root}/examples/thermostat/silabs" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" if (wifi_soc) { diff --git a/examples/thermostat/silabs/efr32/README.md b/examples/thermostat/silabs/README.md similarity index 91% rename from examples/thermostat/silabs/efr32/README.md rename to examples/thermostat/silabs/README.md index 6cd6a3d11dfd59..6dc53dc6b2ca2d 100644 --- a/examples/thermostat/silabs/efr32/README.md +++ b/examples/thermostat/silabs/README.md @@ -106,7 +106,7 @@ Silicon Labs platform. * Build the example application: cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/thermostat/silabs/efr32/ ./out/thermostat-app BRD4187C + ./scripts/examples/gn_silabs_example.sh ./examples/thermostat/silabs/efr32/ ./out/thermostat-app BRD4187C - To delete generated executable, libraries and object files use: @@ -129,11 +129,11 @@ Silicon Labs platform. * Build the example with Matter shell - ./scripts/examples/gn_efr32_example.sh examples/thermostat/silabs/efr32/ out/thermostat-app BRD4187C chip_build_libshell=true + ./scripts/examples/gn_silabs_example.sh examples/thermostat/silabs/efr32/ out/thermostat-app BRD4187C chip_build_libshell=true * Build the example as Sleepy End Device (SED) - $ ./scripts/examples/gn_efr32_example.sh ./examples/thermostat/silabs/efr32/ ./out/thermostat-app_SED BRD4187C --sed + $ ./scripts/examples/gn_silabs_example.sh ./examples/thermostat/silabs/efr32/ ./out/thermostat-app_SED BRD4187C --sed or use gn as previously mentioned but adding the following arguments: @@ -141,7 +141,7 @@ Silicon Labs platform. * Build the example with pigweed RCP - $ ./scripts/examples/gn_efr32_example.sh examples/thermostat/silabs/efr32/ out/thermostat-app_rpc BRD4187C 'import("//with_pw_rpc.gni")' + $ ./scripts/examples/gn_silabs_example.sh examples/thermostat/silabs/efr32/ out/thermostat-app_rpc BRD4187C 'import("//with_pw_rpc.gni")' or use GN/Ninja Directly @@ -155,7 +155,7 @@ Silicon Labs platform. For more build options, help is provided when running the build script without arguments - ./scripts/examples/gn_efr32_example.sh + ./scripts/examples/gn_silabs_example.sh ## Flashing the Application @@ -232,7 +232,7 @@ combination with JLinkRTTClient as follows: - For this example to work, it is necessary to have a second efr32 device running the - [thermostat app example](https://github.com/project-chip/connectedhomeip/blob/master/examples/thermostat/silabs/efr32/README.md) + [thermostat app example](https://github.com/project-chip/connectedhomeip/blob/master/examples/thermostat/silabs/README.md) commissioned on the same openthread network - User interface : **LCD** The LCD on Silabs WSTK shows a QR Code. This QR @@ -341,7 +341,7 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) ## Building options @@ -353,19 +353,19 @@ features can easily be toggled on or off. Here is a short list of options : chip_progress_logging, chip_detail_logging, chip_automation_logging - $ ./scripts/examples/gn_efr32_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" ### Debug build / release build is_debug - $ ./scripts/examples/gn_efr32_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A "is_debug=false" ### Disabling LCD show_qr_code - $ ./scripts/examples/gn_efr32_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A "show_qr_code=false" ### KVS maximum entry count @@ -374,4 +374,4 @@ kvs_max_entries Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_silabs_example.sh ./examples/thermostat/silabs/efr32 ./out/thermostat-app BRD4164A kvs_max_entries=50 diff --git a/examples/thermostat/silabs/efr32/build_for_wifi_args.gni b/examples/thermostat/silabs/build_for_wifi_args.gni similarity index 100% rename from examples/thermostat/silabs/efr32/build_for_wifi_args.gni rename to examples/thermostat/silabs/build_for_wifi_args.gni diff --git a/examples/thermostat/silabs/efr32/build_for_wifi_gnfile.gn b/examples/thermostat/silabs/build_for_wifi_gnfile.gn similarity index 100% rename from examples/thermostat/silabs/efr32/build_for_wifi_gnfile.gn rename to examples/thermostat/silabs/build_for_wifi_gnfile.gn diff --git a/examples/thermostat/silabs/build_overrides b/examples/thermostat/silabs/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/thermostat/silabs/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/thermostat/silabs/efr32/build_overrides b/examples/thermostat/silabs/efr32/build_overrides deleted file mode 120000 index 995884e6163eb5..00000000000000 --- a/examples/thermostat/silabs/efr32/build_overrides +++ /dev/null @@ -1 +0,0 @@ -../../../build_overrides \ No newline at end of file diff --git a/examples/thermostat/silabs/efr32/third_party/connectedhomeip b/examples/thermostat/silabs/efr32/third_party/connectedhomeip deleted file mode 120000 index 59307833b4fee9..00000000000000 --- a/examples/thermostat/silabs/efr32/third_party/connectedhomeip +++ /dev/null @@ -1 +0,0 @@ -../../../../.. \ No newline at end of file diff --git a/examples/thermostat/silabs/efr32/include/AppConfig.h b/examples/thermostat/silabs/include/AppConfig.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/AppConfig.h rename to examples/thermostat/silabs/include/AppConfig.h diff --git a/examples/thermostat/silabs/efr32/include/AppEvent.h b/examples/thermostat/silabs/include/AppEvent.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/AppEvent.h rename to examples/thermostat/silabs/include/AppEvent.h diff --git a/examples/thermostat/silabs/efr32/include/AppTask.h b/examples/thermostat/silabs/include/AppTask.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/AppTask.h rename to examples/thermostat/silabs/include/AppTask.h diff --git a/examples/thermostat/silabs/efr32/include/CHIPProjectConfig.h b/examples/thermostat/silabs/include/CHIPProjectConfig.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/CHIPProjectConfig.h rename to examples/thermostat/silabs/include/CHIPProjectConfig.h diff --git a/examples/thermostat/silabs/efr32/include/SensorManager.h b/examples/thermostat/silabs/include/SensorManager.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/SensorManager.h rename to examples/thermostat/silabs/include/SensorManager.h diff --git a/examples/thermostat/silabs/efr32/include/TemperatureManager.h b/examples/thermostat/silabs/include/TemperatureManager.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/TemperatureManager.h rename to examples/thermostat/silabs/include/TemperatureManager.h diff --git a/examples/thermostat/silabs/efr32/include/ThermostatIcons.h b/examples/thermostat/silabs/include/ThermostatIcons.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/ThermostatIcons.h rename to examples/thermostat/silabs/include/ThermostatIcons.h diff --git a/examples/thermostat/silabs/efr32/include/ThermostatUI.h b/examples/thermostat/silabs/include/ThermostatUI.h similarity index 100% rename from examples/thermostat/silabs/efr32/include/ThermostatUI.h rename to examples/thermostat/silabs/include/ThermostatUI.h diff --git a/examples/thermostat/silabs/efr32/openthread.gn b/examples/thermostat/silabs/openthread.gn similarity index 100% rename from examples/thermostat/silabs/efr32/openthread.gn rename to examples/thermostat/silabs/openthread.gn diff --git a/examples/thermostat/silabs/efr32/openthread.gni b/examples/thermostat/silabs/openthread.gni similarity index 100% rename from examples/thermostat/silabs/efr32/openthread.gni rename to examples/thermostat/silabs/openthread.gni diff --git a/examples/thermostat/silabs/efr32/src/AppTask.cpp b/examples/thermostat/silabs/src/AppTask.cpp similarity index 100% rename from examples/thermostat/silabs/efr32/src/AppTask.cpp rename to examples/thermostat/silabs/src/AppTask.cpp diff --git a/examples/thermostat/silabs/efr32/src/SensorManager.cpp b/examples/thermostat/silabs/src/SensorManager.cpp similarity index 100% rename from examples/thermostat/silabs/efr32/src/SensorManager.cpp rename to examples/thermostat/silabs/src/SensorManager.cpp diff --git a/examples/thermostat/silabs/efr32/src/TemperatureManager.cpp b/examples/thermostat/silabs/src/TemperatureManager.cpp similarity index 100% rename from examples/thermostat/silabs/efr32/src/TemperatureManager.cpp rename to examples/thermostat/silabs/src/TemperatureManager.cpp diff --git a/examples/thermostat/silabs/efr32/src/ThermostatUI.cpp b/examples/thermostat/silabs/src/ThermostatUI.cpp similarity index 100% rename from examples/thermostat/silabs/efr32/src/ThermostatUI.cpp rename to examples/thermostat/silabs/src/ThermostatUI.cpp diff --git a/examples/thermostat/silabs/efr32/src/ZclCallbacks.cpp b/examples/thermostat/silabs/src/ZclCallbacks.cpp similarity index 100% rename from examples/thermostat/silabs/efr32/src/ZclCallbacks.cpp rename to examples/thermostat/silabs/src/ZclCallbacks.cpp diff --git a/examples/thermostat/silabs/third_party/connectedhomeip b/examples/thermostat/silabs/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/thermostat/silabs/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/window-app/silabs/efr32/.gn b/examples/window-app/silabs/.gn similarity index 100% rename from examples/window-app/silabs/efr32/.gn rename to examples/window-app/silabs/.gn diff --git a/examples/window-app/silabs/efr32/BUILD.gn b/examples/window-app/silabs/BUILD.gn similarity index 98% rename from examples/window-app/silabs/efr32/BUILD.gn rename to examples/window-app/silabs/BUILD.gn index ac16344b59c597..3536280e5e7ce8 100644 --- a/examples/window-app/silabs/efr32/BUILD.gn +++ b/examples/window-app/silabs/BUILD.gn @@ -24,7 +24,7 @@ import("${efr32_sdk_build_root}/silabs_executable.gni") assert(current_os == "freertos") project_dir = "${chip_root}/examples/window-app" -silabs_project_dir = "${project_dir}/silabs/efr32" +silabs_project_dir = "${project_dir}/silabs" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" if (wifi_soc) { diff --git a/examples/window-app/silabs/efr32/README.md b/examples/window-app/silabs/README.md similarity index 93% rename from examples/window-app/silabs/efr32/README.md rename to examples/window-app/silabs/README.md index 29ef7d7fb9f414..6152acb87a5503 100644 --- a/examples/window-app/silabs/efr32/README.md +++ b/examples/window-app/silabs/README.md @@ -99,7 +99,7 @@ Silicon Labs platform. * Build the example application: cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/efr32/ ./out/window-app BRD4187C + ./scripts/examples/gn_silabs_example.sh ./examples/window-app/silabs/efr32/ ./out/window-app BRD4187C - To delete generated executable, libraries and object files use: @@ -122,7 +122,7 @@ Silicon Labs platform. * Build the example as Sleepy End Device (SED) - $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/efr32/ ./out/window-app_SED BRD4187C --sed + $ ./scripts/examples/gn_silabs_example.sh ./examples/window-app/silabs/efr32/ ./out/window-app_SED BRD4187C --sed or use gn as previously mentioned but adding the following arguments: @@ -130,7 +130,7 @@ Silicon Labs platform. * Build the example with pigweed RCP - $ ./scripts/examples/gn_efr32_example.sh examples/window-app/silabs/efr32/ out/window_app_rpc BRD4187C 'import("//with_pw_rpc.gni")' + $ ./scripts/examples/gn_silabs_example.sh examples/window-app/silabs/efr32/ out/window_app_rpc BRD4187C 'import("//with_pw_rpc.gni")' or use GN/Ninja Directly @@ -144,7 +144,7 @@ Silicon Labs platform. For more build options, help is provided when running the build script without arguments - ./scripts/examples/gn_efr32_example.sh + ./scripts/examples/gn_silabs_example.sh ## Flashing the Application @@ -341,7 +341,7 @@ combination with JLinkRTTClient as follows: For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) ## Building options @@ -353,19 +353,19 @@ features can easily be toggled on or off. Here is a short list of options : chip_progress_logging, chip_detail_logging, chip_automation_logging - $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" ### Debug build / release build is_debug - $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A "is_debug=false" ### Disabling LCD show_qr_code - $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_silabs_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A "show_qr_code=false" ### KVS maximum entry count @@ -374,4 +374,4 @@ kvs_max_entries Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_silabs_example.sh ./examples/window-app/silabs/efr32 ./out/window-app BRD4164A kvs_max_entries=50 diff --git a/examples/window-app/silabs/efr32/args.gni b/examples/window-app/silabs/args.gni similarity index 100% rename from examples/window-app/silabs/efr32/args.gni rename to examples/window-app/silabs/args.gni diff --git a/examples/window-app/silabs/efr32/build_for_wifi_args.gni b/examples/window-app/silabs/build_for_wifi_args.gni similarity index 100% rename from examples/window-app/silabs/efr32/build_for_wifi_args.gni rename to examples/window-app/silabs/build_for_wifi_args.gni diff --git a/examples/window-app/silabs/efr32/build_for_wifi_gnfile.gn b/examples/window-app/silabs/build_for_wifi_gnfile.gn similarity index 100% rename from examples/window-app/silabs/efr32/build_for_wifi_gnfile.gn rename to examples/window-app/silabs/build_for_wifi_gnfile.gn diff --git a/examples/window-app/silabs/build_overrides b/examples/window-app/silabs/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/window-app/silabs/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/window-app/silabs/efr32/build_overrides b/examples/window-app/silabs/efr32/build_overrides deleted file mode 120000 index 995884e6163eb5..00000000000000 --- a/examples/window-app/silabs/efr32/build_overrides +++ /dev/null @@ -1 +0,0 @@ -../../../build_overrides \ No newline at end of file diff --git a/examples/window-app/silabs/efr32/third_party/connectedhomeip b/examples/window-app/silabs/efr32/third_party/connectedhomeip deleted file mode 120000 index 59307833b4fee9..00000000000000 --- a/examples/window-app/silabs/efr32/third_party/connectedhomeip +++ /dev/null @@ -1 +0,0 @@ -../../../../.. \ No newline at end of file diff --git a/examples/window-app/silabs/efr32/include/AppConfig.h b/examples/window-app/silabs/include/AppConfig.h similarity index 100% rename from examples/window-app/silabs/efr32/include/AppConfig.h rename to examples/window-app/silabs/include/AppConfig.h diff --git a/examples/window-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/window-app/silabs/include/CHIPProjectConfig.h similarity index 100% rename from examples/window-app/silabs/efr32/include/CHIPProjectConfig.h rename to examples/window-app/silabs/include/CHIPProjectConfig.h diff --git a/examples/window-app/silabs/efr32/include/LcdPainter.h b/examples/window-app/silabs/include/LcdPainter.h similarity index 100% rename from examples/window-app/silabs/efr32/include/LcdPainter.h rename to examples/window-app/silabs/include/LcdPainter.h diff --git a/examples/window-app/silabs/efr32/include/WindowAppImpl.h b/examples/window-app/silabs/include/WindowAppImpl.h similarity index 100% rename from examples/window-app/silabs/efr32/include/WindowAppImpl.h rename to examples/window-app/silabs/include/WindowAppImpl.h diff --git a/examples/window-app/silabs/efr32/openthread.gn b/examples/window-app/silabs/openthread.gn similarity index 100% rename from examples/window-app/silabs/efr32/openthread.gn rename to examples/window-app/silabs/openthread.gn diff --git a/examples/window-app/silabs/efr32/openthread.gni b/examples/window-app/silabs/openthread.gni similarity index 100% rename from examples/window-app/silabs/efr32/openthread.gni rename to examples/window-app/silabs/openthread.gni diff --git a/examples/window-app/silabs/efr32/src/LcdPainter.cpp b/examples/window-app/silabs/src/LcdPainter.cpp similarity index 100% rename from examples/window-app/silabs/efr32/src/LcdPainter.cpp rename to examples/window-app/silabs/src/LcdPainter.cpp diff --git a/examples/window-app/silabs/efr32/src/WindowAppImpl.cpp b/examples/window-app/silabs/src/WindowAppImpl.cpp similarity index 100% rename from examples/window-app/silabs/efr32/src/WindowAppImpl.cpp rename to examples/window-app/silabs/src/WindowAppImpl.cpp diff --git a/examples/window-app/silabs/efr32/src/main.cpp b/examples/window-app/silabs/src/main.cpp similarity index 100% rename from examples/window-app/silabs/efr32/src/main.cpp rename to examples/window-app/silabs/src/main.cpp diff --git a/examples/window-app/silabs/third_party/connectedhomeip b/examples/window-app/silabs/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/window-app/silabs/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/scripts/build/builders/efr32.py b/scripts/build/builders/efr32.py index 32edf5b966606e..e0058edc262e2b 100644 --- a/scripts/build/builders/efr32.py +++ b/scripts/build/builders/efr32.py @@ -78,7 +78,7 @@ def BuildRoot(self, root): if self == Efr32App.UNIT_TEST: return os.path.join(root, 'src', 'test_driver', 'efr32') else: - return os.path.join(root, 'examples', self.ExampleName(), 'silabs/efr32') + return os.path.join(root, 'examples', self.ExampleName(), 'silabs') class Efr32Board(Enum): diff --git a/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt index d48088b2048379..309cdd49b9f256 100644 --- a/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt +++ b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt @@ -2,7 +2,7 @@ cd "{root}" # Generating efr32-brd4161a-light-rpc-no-version -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/silabs/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc-no-version +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/silabs '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc-no-version # Building efr32-brd4161a-light-rpc-no-version ninja -C {out}/efr32-brd4161a-light-rpc-no-version diff --git a/scripts/examples/gn_efr32_example.sh b/scripts/examples/gn_silabs_example.sh similarity index 98% rename from scripts/examples/gn_efr32_example.sh rename to scripts/examples/gn_silabs_example.sh index 4b00c3aff8fb60..25d181efe26a7d 100755 --- a/scripts/examples/gn_efr32_example.sh +++ b/scripts/examples/gn_silabs_example.sh @@ -40,7 +40,7 @@ GN_PATH_PROVIDED=false DOTFILE=".gn" SILABS_THREAD_TARGET=\""../silabs:ot-efr32-cert"\" -USAGE="./scripts/examples/gn_efr32_example.sh []" +USAGE="./scripts/examples/gn_silabs_example.sh []" if [ "$#" == "0" ]; then echo "Build script for EFR32 Matter apps From 5d459ceb29965b8850bf77d6c32e95cb3b7fb245 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 24 May 2023 21:44:47 -0400 Subject: [PATCH 21/38] Enable ThreadSanitizer in Darwin CI. (#26614) * Enable ThreadSanitizer in Darwin CI. Unfortunately, "-enableAddressSanitizer NO" does not seem to override the scheme, and you can't do both AddressSanitizer and ThreadSanitizer at once, so this turns off AddressSanitizer in the scheme and manually enables it in the command line for the test. * Fix threading issue the new test caught. --- .github/workflows/darwin.yaml | 11 +++++++---- .../Framework/CHIP/MTRAsyncCallbackWorkQueue.mm | 8 +++++++- .../xcschemes/Matter Framework Tests.xcscheme | 4 +--- src/darwin/Framework/chip_xcode_build_connector.sh | 9 +++++++++ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/workflows/darwin.yaml b/.github/workflows/darwin.yaml index 53ea74716dd028..a7d8f31a819124 100644 --- a/.github/workflows/darwin.yaml +++ b/.github/workflows/darwin.yaml @@ -136,7 +136,7 @@ jobs: run: defaults delete com.apple.dt.xctest.tool continue-on-error: true - name: Run Framework Tests - timeout-minutes: 20 + timeout-minutes: 30 # For now disable unguarded-availability-new warnings because we # internally use APIs that we are annotating as only available on # new enough versions. Maybe we should change out deployment @@ -144,15 +144,18 @@ jobs: run: | mkdir -p /tmp/darwin/framework-tests ../../../out/debug/chip-all-clusters-app --interface-id -1 > >(tee /tmp/darwin/framework-tests/all-cluster-app.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-err.log >&2) & - # Make each ota-requestor is using a different port, discriminator, and KVS from + # Make sure each ota-requestor is using a different port, discriminator, and KVS from # all-clusters-app and from other requestors. # # And a different port from the test harness too; the test harness uses port 5541. ../../../out/debug/chip-ota-requestor-app --interface-id -1 --secured-device-port 5542 --discriminator 1111 --KVS /tmp/chip-ota-requestor-kvs1 --otaDownloadPath /tmp/chip-ota-requestor-downloaded-image1 --autoApplyImage > >(tee /tmp/darwin/framework-tests/ota-requestor-app-1.log) 2> >(tee /tmp/darwin/framework-tests/ota-requestor-app-err-1.log >&2) & ../../../out/debug/chip-ota-requestor-app --interface-id -1 --secured-device-port 5543 --discriminator 1112 --KVS /tmp/chip-ota-requestor-kvs2 --otaDownloadPath /tmp/chip-ota-requestor-downloaded-image2 --autoApplyImage > >(tee /tmp/darwin/framework-tests/ota-requestor-app-2.log) 2> >(tee /tmp/darwin/framework-tests/ota-requestor-app-err-2.log >&2) & - # UndefinedBehaviorSanitizer is enabled in the Xcode scheme, so the code in Matter.framework gets instrumented, + # -enableUndefinedBehaviorSanitizer instruments the code in Matter.framework, # but to instrument the code in the underlying libCHIP we need to pass CHIP_IS_UBSAN=YES - xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-incomplete-umbrella -Wno-unguarded-availability-new' CHIP_IS_UBSAN=YES > >(tee /tmp/darwin/framework-tests/darwin-tests.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-err.log >&2) + TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-incomplete-umbrella -Wno-unguarded-availability-new' CHIP_IS_UBSAN=YES > >(tee /tmp/darwin/framework-tests/darwin-tests-asan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-err.log >&2) + # -enableThreadSanitizer instruments the code in Matter.framework, + # but to instrument the code in the underlying libCHIP we need to pass CHIP_IS_TSAN=YES + xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableThreadSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-incomplete-umbrella -Wno-unguarded-availability-new' CHIP_IS_TSAN=YES > >(tee /tmp/darwin/framework-tests/darwin-tests-tsan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-tsan-err.log >&2) working-directory: src/darwin/Framework - name: Uploading log files uses: actions/upload-artifact@v3 diff --git a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm index 2b31d07f004ec9..3d8b04eaabebc6 100644 --- a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm +++ b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm @@ -69,8 +69,14 @@ - (instancetype)initWithContext:(id)context queue:(dispatch_queue_t)queue - (NSString *)description { - return [NSString + os_unfair_lock_lock(&_lock); + + auto * desc = [NSString stringWithFormat:@"MTRAsyncCallbackWorkQueue context: %@ items count: %lu", self.context, (unsigned long) self.items.count]; + + os_unfair_lock_unlock(&_lock); + + return desc; } - (void)enqueueWorkItem:(MTRAsyncCallbackQueueWorkItem *)item diff --git a/src/darwin/Framework/Matter.xcodeproj/xcshareddata/xcschemes/Matter Framework Tests.xcscheme b/src/darwin/Framework/Matter.xcodeproj/xcshareddata/xcschemes/Matter Framework Tests.xcscheme index c41c41856793f4..a55dee131a9593 100644 --- a/src/darwin/Framework/Matter.xcodeproj/xcshareddata/xcschemes/Matter Framework Tests.xcscheme +++ b/src/darwin/Framework/Matter.xcodeproj/xcshareddata/xcschemes/Matter Framework Tests.xcscheme @@ -27,9 +27,7 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES" - enableAddressSanitizer = "YES" - enableASanStackUseAfterReturn = "YES" - enableUBSanitizer = "YES"> + enableASanStackUseAfterReturn = "YES"> diff --git a/src/darwin/Framework/chip_xcode_build_connector.sh b/src/darwin/Framework/chip_xcode_build_connector.sh index 96f70c3b10c7f2..888ae55c786e59 100755 --- a/src/darwin/Framework/chip_xcode_build_connector.sh +++ b/src/darwin/Framework/chip_xcode_build_connector.sh @@ -139,6 +139,15 @@ declare -a args=( ) } +[[ $CHIP_IS_TSAN == YES ]] && { + args+=( + 'is_tsan=true' + # The system stats stuff races on the stats in various ways, + # so just disable it when using TSan. + 'chip_system_config_provide_statistics=false' + ) +} + [[ $CHIP_IS_CLANG == YES ]] && { args+=( 'is_clang=true' From 9b2f1c817c8c83d031fd669a7daf379ab4a18594 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 25 May 2023 00:55:00 -0400 Subject: [PATCH 22/38] Mark the non-volatile Color Control attributes as NVM in some examples. (#26808) Fixes https://github.com/project-chip/connectedhomeip/issues/26793 --- .../all-clusters-app.matter | 22 +++++------ .../all-clusters-common/all-clusters-app.zap | 25 ++++++------ .../lighting-common/lighting-app.matter | 24 ++++++------ .../lighting-common/lighting-app.zap | 39 ++++++++++--------- 4 files changed, 56 insertions(+), 54 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 efb3595a682a07..f688bb36d8acc9 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 @@ -5293,14 +5293,14 @@ endpoint 1 { } server cluster ColorControl { - ram attribute currentHue default = 0x00; - ram attribute currentSaturation default = 0x00; + persist attribute currentHue default = 0x00; + persist attribute currentSaturation default = 0x00; ram attribute remainingTime default = 0x0000; - ram attribute currentX default = 0x616B; - ram attribute currentY default = 0x607D; + persist attribute currentX default = 0x616B; + persist attribute currentY default = 0x607D; ram attribute driftCompensation; ram attribute compensationText; - ram attribute colorTemperatureMireds default = 0x00FA; + persist attribute colorTemperatureMireds default = 0x00FA; ram attribute colorMode default = 0x01; ram attribute options default = 0x00; ram attribute numberOfPrimaries; @@ -5333,18 +5333,18 @@ endpoint 1 { ram attribute colorPointBX; ram attribute colorPointBY; ram attribute colorPointBIntensity; - ram attribute enhancedCurrentHue default = 0x0000; - ram attribute enhancedColorMode default = 0x01; - ram attribute colorLoopActive default = 0x00; - ram attribute colorLoopDirection default = 0x00; - ram attribute colorLoopTime default = 0x0019; + persist attribute enhancedCurrentHue default = 0x0000; + persist attribute enhancedColorMode default = 0x01; + persist attribute colorLoopActive default = 0x00; + persist attribute colorLoopDirection default = 0x00; + persist attribute colorLoopTime default = 0x0019; ram attribute colorLoopStartEnhancedHue default = 0x2300; ram attribute colorLoopStoredEnhancedHue default = 0x0000; ram attribute colorCapabilities default = 0x1F; ram attribute colorTempPhysicalMinMireds default = 0x0000; ram attribute colorTempPhysicalMaxMireds default = 0xFEFF; ram attribute coupleColorTempToLevelMinMireds; - ram attribute startUpColorTemperatureMireds; + persist attribute startUpColorTemperatureMireds; ram attribute featureMap default = 0x1F; ram attribute clusterRevision default = 5; } 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 c8145f2aed189a..0b8df8bdcf80ab 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 @@ -16083,7 +16083,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -16099,7 +16099,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -16131,7 +16131,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x616B", @@ -16147,7 +16147,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x607D", @@ -16195,7 +16195,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00FA", @@ -16723,7 +16723,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -16739,7 +16739,7 @@ "side": "server", "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x01", @@ -16755,7 +16755,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -16771,7 +16771,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -16787,7 +16787,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x0019", @@ -16899,7 +16899,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -25580,5 +25580,6 @@ "endpointVersion": 1, "deviceIdentifier": 61442 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter index c78228137c6bb1..be9db4405ba231 100644 --- a/examples/lighting-app/lighting-common/lighting-app.matter +++ b/examples/lighting-app/lighting-common/lighting-app.matter @@ -2285,27 +2285,27 @@ endpoint 1 { } server cluster ColorControl { - ram attribute currentHue default = 0x00; - ram attribute currentSaturation default = 0x00; + persist attribute currentHue default = 0x00; + persist attribute currentSaturation default = 0x00; ram attribute remainingTime default = 0x0000; - ram attribute currentX default = 0x616B; - ram attribute currentY default = 0x607D; - ram attribute colorTemperatureMireds default = 0x00FA; - ram attribute colorMode default = 0x01; + persist attribute currentX default = 0x616B; + persist attribute currentY default = 0x607D; + persist attribute colorTemperatureMireds default = 0x00FA; + persist attribute colorMode default = 0x01; ram attribute options default = 0x00; ram attribute numberOfPrimaries; - ram attribute enhancedCurrentHue default = 0x0000; - ram attribute enhancedColorMode default = 0x01; - ram attribute colorLoopActive default = 0x00; - ram attribute colorLoopDirection default = 0x00; - ram attribute colorLoopTime default = 0x0019; + persist attribute enhancedCurrentHue default = 0x0000; + persist attribute enhancedColorMode default = 0x01; + persist attribute colorLoopActive default = 0x00; + persist attribute colorLoopDirection default = 0x00; + persist attribute colorLoopTime default = 0x0019; ram attribute colorLoopStartEnhancedHue default = 0x2300; ram attribute colorLoopStoredEnhancedHue default = 0x0000; ram attribute colorCapabilities default = 0x1F; ram attribute colorTempPhysicalMinMireds default = 0x0000; ram attribute colorTempPhysicalMaxMireds default = 0xFEFF; ram attribute coupleColorTempToLevelMinMireds; - ram attribute startUpColorTemperatureMireds; + persist attribute startUpColorTemperatureMireds; ram attribute featureMap default = 0x1F; ram attribute clusterRevision default = 5; } diff --git a/examples/lighting-app/lighting-common/lighting-app.zap b/examples/lighting-app/lighting-common/lighting-app.zap index 9d02ec6206d9a6..b327a0d67bdce1 100644 --- a/examples/lighting-app/lighting-common/lighting-app.zap +++ b/examples/lighting-app/lighting-common/lighting-app.zap @@ -16,6 +16,12 @@ } ], "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/app-templates.json", + "type": "gen-templates-json", + "version": "chip-v1" + }, { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/zcl/zcl.json", @@ -23,12 +29,6 @@ "category": "matter", "version": 1, "description": "Matter SDK ZCL data" - }, - { - "pathRelativity": "relativeToZap", - "path": "../../../src/app/zap-templates/app-templates.json", - "type": "gen-templates-json", - "version": "chip-v1" } ], "endpointTypes": [ @@ -7296,7 +7296,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -7312,7 +7312,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -7344,7 +7344,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x616B", @@ -7360,7 +7360,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x607D", @@ -7408,7 +7408,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00FA", @@ -7424,7 +7424,7 @@ "side": "server", "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x01", @@ -7936,7 +7936,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7952,7 +7952,7 @@ "side": "server", "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x01", @@ -7968,7 +7968,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -7984,7 +7984,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", @@ -8000,7 +8000,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "0x0019", @@ -8112,7 +8112,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -8341,5 +8341,6 @@ "endpointVersion": 1, "deviceIdentifier": 257 } - ] + ], + "log": [] } \ No newline at end of file From 9f439889aed5581b53ea79d5975a4b78e4510998 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 25 May 2023 00:56:09 -0400 Subject: [PATCH 23/38] Align Actions cluster XML with the spec. (#26814) --- .../zcl/data-model/chip/actions-cluster.xml | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml index 821db4dcb3fbc7..afadef5a2ed39d 100644 --- a/src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml @@ -35,8 +35,8 @@ limitations under the License. - - + + @@ -49,20 +49,20 @@ limitations under the License. - - - - - - - + + + + + + + - - - + + + From 01912a9c9b481a7cd9c34e4e50fbe37dd91299d4 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 25 May 2023 06:25:10 -0400 Subject: [PATCH 24/38] Disable Darwin ThreadSanitizer test for now. (#26826) Until https://github.com/project-chip/connectedhomeip/pull/26824 is fixed, this fails way too often. --- .github/workflows/darwin.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/darwin.yaml b/.github/workflows/darwin.yaml index a7d8f31a819124..053eb96af69796 100644 --- a/.github/workflows/darwin.yaml +++ b/.github/workflows/darwin.yaml @@ -155,7 +155,7 @@ jobs: TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-incomplete-umbrella -Wno-unguarded-availability-new' CHIP_IS_UBSAN=YES > >(tee /tmp/darwin/framework-tests/darwin-tests-asan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-err.log >&2) # -enableThreadSanitizer instruments the code in Matter.framework, # but to instrument the code in the underlying libCHIP we need to pass CHIP_IS_TSAN=YES - xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableThreadSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-incomplete-umbrella -Wno-unguarded-availability-new' CHIP_IS_TSAN=YES > >(tee /tmp/darwin/framework-tests/darwin-tests-tsan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-tsan-err.log >&2) + #xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableThreadSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-incomplete-umbrella -Wno-unguarded-availability-new' CHIP_IS_TSAN=YES > >(tee /tmp/darwin/framework-tests/darwin-tests-tsan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-tsan-err.log >&2) working-directory: src/darwin/Framework - name: Uploading log files uses: actions/upload-artifact@v3 From e042f7530124e9c74ebb0c9647eacde95a1c6ecb Mon Sep 17 00:00:00 2001 From: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com> Date: Thu, 25 May 2023 08:29:25 -0400 Subject: [PATCH 25/38] add a public_config in the efr32_mbedtls_config source set to fix a chain of define issue that led to MBEDTLS_USE_PSA_CRYPTO not being defined in the GSDK build section (#26810) --- third_party/silabs/efr32_sdk.gni | 1 + 1 file changed, 1 insertion(+) diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni index 5b5d4f214e728b..ecd1e30eabf9ec 100644 --- a/third_party/silabs/efr32_sdk.gni +++ b/third_party/silabs/efr32_sdk.gni @@ -540,6 +540,7 @@ template("efr32_sdk") { "${chip_root}/src/platform/silabs/efr32/psa_crypto_config.h", ] + public_configs = [ "${chip_root}/src:includes" ] public_deps = [ "${chip_root}/src/crypto:crypto_buildconfig" ] } From 233e45b4fa6c2196385be3e42a21d6d694b71a9d Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Thu, 25 May 2023 09:39:30 -0400 Subject: [PATCH 26/38] Sequence zap_regen_all to generate .matter first. (#26806) * Sequence zap_regen_all to generate .matter first. We have codegen depending on .matter. This PR makes the .matter file generation run first and then the rest second when running parallel builds. * Restyled by autopep8 --------- Co-authored-by: Restyled.io --- scripts/tools/zap_regen_all.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/scripts/tools/zap_regen_all.py b/scripts/tools/zap_regen_all.py index 98582761917869..4bf94f15203a03 100755 --- a/scripts/tools/zap_regen_all.py +++ b/scripts/tools/zap_regen_all.py @@ -107,6 +107,10 @@ def __init__(self, zap_config, template, output_dir=None): else: self.output_dir = None + @property + def is_matter_idl_generation(self): + return (self.output_dir is None) + def distinct_output(self): if not self.template and not self.output_dir: # Matter IDL templates have no template/output dir as they go with the @@ -463,9 +467,22 @@ def main(): if args.parallel: # Ensure each zap run is independent os.environ['ZAP_TEMPSTATE'] = '1' - with multiprocessing.Pool() as pool: - for timing in pool.imap_unordered(_ParallelGenerateOne, targets): - timings.append(timing) + + # There is a sequencing here: + # - ZAP will generate ".matter" files + # - various codegen may generate from ".matter" files (like java) + # We split codegen into two generations to not be racy + first, second = [], [] + for target in targets: + if isinstance(target, ZAPGenerateTarget) and target.is_matter_idl_generation: + first.append(target) + else: + second.append(target) + + for items in [first, second]: + with multiprocessing.Pool() as pool: + for timing in pool.imap_unordered(_ParallelGenerateOne, items): + timings.append(timing) else: for target in targets: timings.append(target.generate()) From 3cafe02f4bebb33154506b5b01e58a639166715c Mon Sep 17 00:00:00 2001 From: yunhanw-google Date: Thu, 25 May 2023 06:43:30 -0700 Subject: [PATCH 27/38] Reland Use controller exception in Java controller (#26802) * Revert "Revert "Use controller exception in Java controller (#26708)" (#26799)" This reverts commit bf9596758f539c628c915940086e6d0f519573ee. * fix the type inside cluster exception * Add missing L fully-qualified-class for controller exception --- .../PairOnNetworkLongImSubscribeCommand.kt | 2 +- .../jni/com/chip/casting/MatterError.java | 8 +-- src/controller/java/AndroidCallbacks.cpp | 56 +++++++++++-------- .../java/AndroidClusterExceptions.cpp | 8 +-- .../java/AndroidClusterExceptions.h | 4 +- .../java/AndroidControllerExceptions.cpp | 43 ++++++++++++++ .../java/AndroidControllerExceptions.h | 45 +++++++++++++++ src/controller/java/BUILD.gn | 2 + .../ChipClusterException.java | 4 +- .../ChipDeviceControllerException.java | 4 +- .../ResubscriptionAttemptCallback.java | 2 +- .../GetConnectedDeviceCallbackJniTest.java | 4 +- 12 files changed, 140 insertions(+), 42 deletions(-) create mode 100644 src/controller/java/AndroidControllerExceptions.cpp create mode 100644 src/controller/java/AndroidControllerExceptions.h diff --git a/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt b/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt index c4b870da4369c9..b2faca8cf92b63 100644 --- a/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt +++ b/examples/java-matter-controller/java/src/com/matter/controller/commands/pairing/PairOnNetworkLongImSubscribeCommand.kt @@ -57,7 +57,7 @@ class PairOnNetworkLongImSubscribeCommand( } private inner class InternalResubscriptionAttemptCallback : ResubscriptionAttemptCallback { - override fun onResubscriptionAttempt(terminationCause: Int, nextResubscribeIntervalMsec: Int) { + override fun onResubscriptionAttempt(terminationCause: Long, nextResubscribeIntervalMsec: Long) { logger.log(Level.INFO, "ResubscriptionAttemptCallback"); } } diff --git a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java index e669a7b61bc56b..ac12eaccd28977 100644 --- a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java +++ b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/MatterError.java @@ -20,15 +20,15 @@ import java.util.Objects; public class MatterError { - private int errorCode; + private long errorCode; private String errorMessage; public static final MatterError DISCOVERY_SERVICE_LOST = - new MatterError(4, "Discovery service was lost."); + new MatterError(4L, "Discovery service was lost."); public static final MatterError NO_ERROR = new MatterError(0, null); - public MatterError(int errorCode, String errorMessage) { + public MatterError(long errorCode, String errorMessage) { this.errorCode = errorCode; this.errorMessage = errorMessage; } @@ -37,7 +37,7 @@ public boolean isNoError() { return this.equals(NO_ERROR); } - public int getErrorCode() { + public long getErrorCode() { return errorCode; } diff --git a/src/controller/java/AndroidCallbacks.cpp b/src/controller/java/AndroidCallbacks.cpp index d004de149235cb..a84bd92f65fdea 100644 --- a/src/controller/java/AndroidCallbacks.cpp +++ b/src/controller/java/AndroidCallbacks.cpp @@ -16,6 +16,7 @@ */ #include "AndroidCallbacks.h" #include +#include #include #include #include @@ -105,16 +106,14 @@ void GetConnectedDeviceCallback::OnDeviceConnectionFailureFn(void * context, con JniReferences::GetInstance().FindMethod(env, javaCallback, "onConnectionFailure", "(JLjava/lang/Exception;)V", &failureMethod); VerifyOrReturn(failureMethod != nullptr, ChipLogError(Controller, "Could not find onConnectionFailure method")); - // Create the exception to return. - jclass controllerExceptionCls; - CHIP_ERROR err = JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipDeviceControllerException", - controllerExceptionCls); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Could not find exception type for onConnectionFailure")); - JniClass controllerExceptionJniCls(controllerExceptionCls); - - jmethodID exceptionConstructor = env->GetMethodID(controllerExceptionCls, "", "(ILjava/lang/String;)V"); - jobject exception = - env->NewObject(controllerExceptionCls, exceptionConstructor, error.AsInteger(), env->NewStringUTF(ErrorStr(error))); + jthrowable exception; + CHIP_ERROR err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, ErrorStr(error), + error.AsInteger(), exception); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Controller, + "Unable to create AndroidControllerException on GetConnectedDeviceCallback::OnDeviceConnectionFailureFn: %s", + ErrorStr(err))); DeviceLayer::StackUnlock unlock; env->CallVoidMethod(javaCallback, failureMethod, peerId.GetNodeId(), exception); @@ -558,12 +557,12 @@ CHIP_ERROR ReportCallback::OnResubscriptionNeeded(app::ReadClient * apReadClient jmethodID onResubscriptionAttemptMethod; ReturnLogErrorOnFailure(JniReferences::GetInstance().FindMethod( - env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(II)V", &onResubscriptionAttemptMethod)); + env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(JJ)V", &onResubscriptionAttemptMethod)); DeviceLayer::StackUnlock unlock; env->CallVoidMethod(mResubscriptionAttemptCallbackRef, onResubscriptionAttemptMethod, - static_cast(aTerminationCause.AsInteger()), - static_cast(apReadClient->ComputeTimeTillNextSubscription())); + static_cast(aTerminationCause.AsInteger()), + static_cast(apReadClient->ComputeTimeTillNextSubscription())); VerifyOrReturnError(!env->ExceptionCheck(), CHIP_JNI_ERROR_EXCEPTION_THROWN); return CHIP_NO_ERROR; } @@ -585,8 +584,10 @@ void ReportCallback::ReportError(jobject attributePath, jobject eventPath, const JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); jthrowable exception; - err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); + err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Controller, "Unable to create AndroidControllerException on ReportCallback::ReportError: %s", ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod( @@ -813,12 +814,12 @@ CHIP_ERROR ReportEventCallback::OnResubscriptionNeeded(app::ReadClient * apReadC jmethodID onResubscriptionAttemptMethod; ReturnLogErrorOnFailure(JniReferences::GetInstance().FindMethod( - env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(II)V", &onResubscriptionAttemptMethod)); + env, mResubscriptionAttemptCallbackRef, "onResubscriptionAttempt", "(JJ)V", &onResubscriptionAttemptMethod)); DeviceLayer::StackUnlock unlock; env->CallVoidMethod(mResubscriptionAttemptCallbackRef, onResubscriptionAttemptMethod, - static_cast(aTerminationCause.AsInteger()), - static_cast(apReadClient->ComputeTimeTillNextSubscription())); + static_cast(aTerminationCause.AsInteger()), + static_cast(apReadClient->ComputeTimeTillNextSubscription())); return CHIP_NO_ERROR; } @@ -839,8 +840,10 @@ void ReportEventCallback::ReportError(jobject eventPath, const char * message, C JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); jthrowable exception; - err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); + err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); + VerifyOrReturn(err == CHIP_NO_ERROR, + ChipLogError(Controller, "Unable to create AndroidControllerException: %s on eportEventCallback::ReportError", + ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod( @@ -943,8 +946,11 @@ void WriteAttributesCallback::ReportError(jobject attributePath, const char * me ChipLogError(Controller, "WriteAttributesCallback ReportError is called"); jthrowable exception; - err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); + err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); + VerifyOrReturn(err == CHIP_NO_ERROR, + ChipLogError(Controller, + "Unable to create AndroidControllerException on WriteAttributesCallback::ReportError: %s", + ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod(env, mJavaCallbackRef, "onError", @@ -1043,8 +1049,10 @@ void InvokeCallback::ReportError(const char * message, ChipError::StorageType er ChipLogError(Controller, "InvokeCallback ReportError is called"); jthrowable exception; - err = AndroidClusterExceptions::GetInstance().CreateIllegalStateException(env, message, errorCode, exception); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Unable to create IllegalStateException: %s", ErrorStr(err))); + err = AndroidControllerExceptions::GetInstance().CreateAndroidControllerException(env, message, errorCode, exception); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Controller, "Unable to create AndroidControllerException: %s on InvokeCallback::ReportError", ErrorStr(err))); jmethodID onErrorMethod; err = JniReferences::GetInstance().FindMethod(env, mJavaCallbackRef, "onError", "(Ljava/lang/Exception;)V", &onErrorMethod); diff --git a/src/controller/java/AndroidClusterExceptions.cpp b/src/controller/java/AndroidClusterExceptions.cpp index a858a4b50fe948..4a757588b94414 100644 --- a/src/controller/java/AndroidClusterExceptions.cpp +++ b/src/controller/java/AndroidClusterExceptions.cpp @@ -1,6 +1,6 @@ /* * - * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2021-2023 Project CHIP Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,7 @@ namespace chip { -CHIP_ERROR AndroidClusterExceptions::CreateChipClusterException(JNIEnv * env, jint errorCode, jthrowable & outEx) +CHIP_ERROR AndroidClusterExceptions::CreateChipClusterException(JNIEnv * env, uint32_t errorCode, jthrowable & outEx) { CHIP_ERROR err = CHIP_NO_ERROR; jmethodID exceptionConstructor; @@ -34,10 +34,10 @@ CHIP_ERROR AndroidClusterExceptions::CreateChipClusterException(JNIEnv * env, ji VerifyOrReturnError(err == CHIP_NO_ERROR, CHIP_JNI_ERROR_TYPE_NOT_FOUND); chip::JniClass clusterExceptionJniCls(clusterExceptionCls); - exceptionConstructor = env->GetMethodID(clusterExceptionCls, "", "(I)V"); + exceptionConstructor = env->GetMethodID(clusterExceptionCls, "", "(J)V"); VerifyOrReturnError(exceptionConstructor != nullptr, CHIP_JNI_ERROR_TYPE_NOT_FOUND); - outEx = (jthrowable) env->NewObject(clusterExceptionCls, exceptionConstructor, errorCode); + outEx = (jthrowable) env->NewObject(clusterExceptionCls, exceptionConstructor, static_cast(errorCode)); VerifyOrReturnError(outEx != nullptr, CHIP_JNI_ERROR_TYPE_NOT_FOUND); return err; diff --git a/src/controller/java/AndroidClusterExceptions.h b/src/controller/java/AndroidClusterExceptions.h index 51a3638d3b39d8..e0bdd07bab51e1 100644 --- a/src/controller/java/AndroidClusterExceptions.h +++ b/src/controller/java/AndroidClusterExceptions.h @@ -1,6 +1,6 @@ /* * - * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2021-2023 Project CHIP Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ class AndroidClusterExceptions /** * Creates a Java ChipClusterException object in outEx. */ - CHIP_ERROR CreateChipClusterException(JNIEnv * env, jint errorCode, jthrowable & outEx); + CHIP_ERROR CreateChipClusterException(JNIEnv * env, uint32_t errorCode, jthrowable & outEx); /** * Creates a Java IllegalStateException in outEx. diff --git a/src/controller/java/AndroidControllerExceptions.cpp b/src/controller/java/AndroidControllerExceptions.cpp new file mode 100644 index 00000000000000..e426759eade2e5 --- /dev/null +++ b/src/controller/java/AndroidControllerExceptions.cpp @@ -0,0 +1,43 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "AndroidControllerExceptions.h" + +#include +#include +#include +#include + +namespace chip { + +CHIP_ERROR AndroidControllerExceptions::CreateAndroidControllerException(JNIEnv * env, const char * message, uint32_t errorCode, + jthrowable & outEx) +{ + jclass controllerExceptionCls; + CHIP_ERROR err = JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipDeviceControllerException", + controllerExceptionCls); + VerifyOrReturnError(err == CHIP_NO_ERROR, CHIP_JNI_ERROR_TYPE_NOT_FOUND); + JniClass controllerExceptionJniCls(controllerExceptionCls); + + jmethodID exceptionConstructor = env->GetMethodID(controllerExceptionCls, "", "(JLjava/lang/String;)V"); + outEx = (jthrowable) env->NewObject(controllerExceptionCls, exceptionConstructor, static_cast(errorCode), + env->NewStringUTF(message)); + VerifyOrReturnError(outEx != nullptr, CHIP_JNI_ERROR_TYPE_NOT_FOUND); + return CHIP_NO_ERROR; +} + +} // namespace chip diff --git a/src/controller/java/AndroidControllerExceptions.h b/src/controller/java/AndroidControllerExceptions.h new file mode 100644 index 00000000000000..02ed39d4bbb447 --- /dev/null +++ b/src/controller/java/AndroidControllerExceptions.h @@ -0,0 +1,45 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +namespace chip { +class AndroidControllerExceptions +{ +public: + AndroidControllerExceptions(const AndroidControllerExceptions &) = delete; + AndroidControllerExceptions(const AndroidControllerExceptions &&) = delete; + AndroidControllerExceptions & operator=(const AndroidControllerExceptions &) = delete; + + static AndroidControllerExceptions & GetInstance() + { + static AndroidControllerExceptions androidControllerExceptions; + return androidControllerExceptions; + } + + /** + * Creates a Java AndroidControllerException object in outEx. + */ + CHIP_ERROR CreateAndroidControllerException(JNIEnv * env, const char * message, uint32_t errorCode, jthrowable & outEx); + +private: + AndroidControllerExceptions() {} +}; +} // namespace chip diff --git a/src/controller/java/BUILD.gn b/src/controller/java/BUILD.gn index 3d982bfa925e7d..ece7ed06d2e0dd 100644 --- a/src/controller/java/BUILD.gn +++ b/src/controller/java/BUILD.gn @@ -41,6 +41,8 @@ shared_library("jni") { "AndroidClusterExceptions.h", "AndroidCommissioningWindowOpener.cpp", "AndroidCommissioningWindowOpener.h", + "AndroidControllerExceptions.cpp", + "AndroidControllerExceptions.h", "AndroidCurrentFabricRemover.cpp", "AndroidCurrentFabricRemover.h", "AndroidDeviceControllerWrapper.cpp", diff --git a/src/controller/java/src/chip/devicecontroller/ChipClusterException.java b/src/controller/java/src/chip/devicecontroller/ChipClusterException.java index 335c973ea9c478..a9c5728309aa1c 100644 --- a/src/controller/java/src/chip/devicecontroller/ChipClusterException.java +++ b/src/controller/java/src/chip/devicecontroller/ChipClusterException.java @@ -21,11 +21,11 @@ public class ChipClusterException extends Exception { private static final long serialVersionUID = 1L; - public int errorCode; + public long errorCode; public ChipClusterException() {} - public ChipClusterException(int errorCode) { + public ChipClusterException(long errorCode) { super(String.format("CHIP cluster error: %d", errorCode)); this.errorCode = errorCode; } diff --git a/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java b/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java index 2d2d583e146665..ec7cfb7b3318ea 100644 --- a/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java +++ b/src/controller/java/src/chip/devicecontroller/ChipDeviceControllerException.java @@ -21,11 +21,11 @@ public class ChipDeviceControllerException extends RuntimeException { private static final long serialVersionUID = 1L; - public int errorCode; + public long errorCode; public ChipDeviceControllerException() {} - public ChipDeviceControllerException(int errorCode, String message) { + public ChipDeviceControllerException(long errorCode, String message) { super(message != null ? message : String.format("Error Code %d", errorCode)); this.errorCode = errorCode; } diff --git a/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java b/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java index cf029ffa54b593..01c6eaab8d5df3 100644 --- a/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java +++ b/src/controller/java/src/chip/devicecontroller/ResubscriptionAttemptCallback.java @@ -18,5 +18,5 @@ package chip.devicecontroller; public interface ResubscriptionAttemptCallback { - void onResubscriptionAttempt(int terminationCause, int nextResubscribeIntervalMsec); + void onResubscriptionAttempt(long terminationCause, long nextResubscribeIntervalMsec); } diff --git a/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java b/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java index f7f981483ba27c..56494b0efc20b7 100644 --- a/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java +++ b/src/controller/java/tests/chip/devicecontroller/GetConnectedDeviceCallbackJniTest.java @@ -48,10 +48,10 @@ public void deviceConnected() { public void connectionFailure() { var callback = new FakeGetConnectedDeviceCallback(); var jniCallback = new GetConnectedDeviceCallbackJni(callback); - callbackTestUtil.onDeviceConnectionFailure(jniCallback, 100); + callbackTestUtil.onDeviceConnectionFailure(jniCallback, 100L); assertThat(callback.error).isInstanceOf(ChipDeviceControllerException.class); - assertThat(((ChipDeviceControllerException) callback.error).errorCode).isEqualTo(100); + assertThat(((ChipDeviceControllerException) callback.error).errorCode).isEqualTo(100L); } class FakeGetConnectedDeviceCallback implements GetConnectedDeviceCallback { From 68b2ac0d298f98107f7e6be946481abfd945e6ee Mon Sep 17 00:00:00 2001 From: C Freeman Date: Thu, 25 May 2023 09:45:56 -0400 Subject: [PATCH 28/38] TC-TIMESYNC-2.4: Wrong validAt time in step 10 (#26794) --- src/python_testing/TC_TIMESYNC_2_4.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python_testing/TC_TIMESYNC_2_4.py b/src/python_testing/TC_TIMESYNC_2_4.py index 69cde75a35f500..7ad3dfe840aaaa 100644 --- a/src/python_testing/TC_TIMESYNC_2_4.py +++ b/src/python_testing/TC_TIMESYNC_2_4.py @@ -98,7 +98,7 @@ async def test_TC_TIMESYNC_2_4(self): ret = await self.send_set_time_zone_cmd(tz=tz) self.print_step(10, "Send SetTimeZone command - bad validAt time") - tz = [tz_struct(offset=3600, validAt=0, name="Europe/Dublin")] + tz = [tz_struct(offset=3600, validAt=utc_time_in_matter_epoch(), name="Europe/Dublin")] await self.send_set_time_zone_cmd_expect_error(tz=tz, error=Status.ConstraintError) self.print_step(11, "Send SetTimeZone command - bad second entry") From 305a70317fe7ce5dfee42453af5537cdeeb26137 Mon Sep 17 00:00:00 2001 From: joonhaengHeo <85541460+joonhaengHeo@users.noreply.github.com> Date: Thu, 25 May 2023 22:54:20 +0900 Subject: [PATCH 29/38] [Android] Add cluster Btn in chiptool (Opcred, administratorCommissioning) (#26782) * Add MultiAdmin test application btn * remove wildcard import --- .../clusterclient/MultiAdminClientFragment.kt | 35 ++++++++++++++-- .../clusterclient/OpCredClientFragment.kt | 35 +++++++++++++++- .../layout/multi_admin_client_fragment.xml | 35 +++++++++++++++- .../res/layout/op_cred_client_fragment.xml | 41 ++++++++++++++++++- .../app/src/main/res/values/strings.xml | 6 +++ 5 files changed, 145 insertions(+), 7 deletions(-) diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt index ffff2139f7d2d9..ed7ba6f4f692f0 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt @@ -8,10 +8,14 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import chip.devicecontroller.ChipDeviceController -import chip.devicecontroller.ClusterIDMapping +import chip.devicecontroller.ClusterIDMapping.AdministratorCommissioning import chip.devicecontroller.InvokeCallback import chip.devicecontroller.OpenCommissioningCallback +import chip.devicecontroller.ReportCallback +import chip.devicecontroller.model.ChipAttributePath +import chip.devicecontroller.model.ChipEventPath import chip.devicecontroller.model.InvokeElement +import chip.devicecontroller.model.NodeState import chip.tlv.AnonymousTag import chip.tlv.TlvWriter import com.google.chip.chiptool.ChipClient @@ -47,6 +51,9 @@ class MultiAdminClientFragment : Fragment() { binding.basicCommissioningMethodBtn.setOnClickListener { scope.launch { sendBasicCommissioningCommandClick() } } binding.enhancedCommissioningMethodBtn.setOnClickListener { scope.launch { sendEnhancedCommissioningCommandClick() } } binding.revokeBtn.setOnClickListener { scope.launch { sendRevokeCommandClick() } } + binding.readWindowStatusBtn.setOnClickListener { scope.launch { readAdministratorCommissioningClusterAttributeClick(AdministratorCommissioning.Attribute.WindowStatus) } } + binding.readAdminFabricIndexBtn.setOnClickListener { scope.launch { readAdministratorCommissioningClusterAttributeClick(AdministratorCommissioning.Attribute.AdminFabricIndex) } } + binding.readAdminVendorIdBtn.setOnClickListener { scope.launch { readAdministratorCommissioningClusterAttributeClick(AdministratorCommissioning.Attribute.AdminVendorId) } } return binding.root } @@ -137,9 +144,9 @@ class MultiAdminClientFragment : Fragment() { val tlvWriter = TlvWriter() tlvWriter.startStructure(AnonymousTag) tlvWriter.endStructure() - val invokeElement = InvokeElement.newInstance(0 - , ClusterIDMapping.AdministratorCommissioning.ID - , ClusterIDMapping.AdministratorCommissioning.Command.RevokeCommissioning.id + val invokeElement = InvokeElement.newInstance(ADMINISTRATOR_COMMISSIONING_CLUSTER_ENDPOINT_ID + , AdministratorCommissioning.ID + , AdministratorCommissioning.Command.RevokeCommissioning.id , tlvWriter.getEncoded(), null) deviceController.invoke(object: InvokeCallback { @@ -156,6 +163,25 @@ class MultiAdminClientFragment : Fragment() { }, getConnectedDevicePointer(), invokeElement, timedInvokeTimeout, 0) } + private suspend fun readAdministratorCommissioningClusterAttributeClick(attribute: AdministratorCommissioning.Attribute) { + val endpointId = ADMINISTRATOR_COMMISSIONING_CLUSTER_ENDPOINT_ID + val clusterId = AdministratorCommissioning.ID + val attributeId = attribute.id + val attributeName = attribute.name + val attributePath = ChipAttributePath.newInstance(endpointId, clusterId, attributeId) + deviceController.readAttributePath(object: ReportCallback { + override fun onReport(nodeState: NodeState?) { + val value = nodeState?.getEndpointState(endpointId)?.getClusterState(clusterId)?.getAttributeState(attributeId)?.value ?: "null" + Log.i(TAG,"read $attributeName: $value") + showMessage("read $attributeName: $value") + } + + override fun onError(attributePath: ChipAttributePath?, eventPath: ChipEventPath?, e: Exception) { + showMessage("read $attributeName - error : ${e?.message}") + } + }, getConnectedDevicePointer(), listOf(attributePath), 0) + } + private suspend fun getConnectedDevicePointer(): Long { return ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId) } @@ -168,6 +194,7 @@ class MultiAdminClientFragment : Fragment() { companion object { private const val TAG = "MultiAdminClientFragment" + private const val ADMINISTRATOR_COMMISSIONING_CLUSTER_ENDPOINT_ID = 0 fun newInstance(): MultiAdminClientFragment = MultiAdminClientFragment() } } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt index 15fe990b6a6c4e..02dc9912c5597f 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt @@ -15,11 +15,16 @@ import com.google.chip.chiptool.databinding.OpCredClientFragmentBinding import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch -import chip.devicecontroller.ClusterIDMapping.* +import chip.devicecontroller.ClusterIDMapping.OperationalCredentials +import chip.devicecontroller.InvokeCallback import chip.devicecontroller.ReportCallback import chip.devicecontroller.model.ChipAttributePath import chip.devicecontroller.model.ChipEventPath +import chip.devicecontroller.model.InvokeElement import chip.devicecontroller.model.NodeState +import chip.tlv.AnonymousTag +import chip.tlv.ContextSpecificTag +import chip.tlv.TlvWriter class OpCredClientFragment : Fragment() { private val deviceController: ChipDeviceController @@ -47,6 +52,8 @@ class OpCredClientFragment : Fragment() { binding.readSupportedFabricBtn.setOnClickListener { scope.launch { readClusterAttribute(OperationalCredentials.Attribute.SupportedFabrics) } } binding.readCommissionedFabricBtn.setOnClickListener { scope.launch { readClusterAttribute(OperationalCredentials.Attribute.CommissionedFabrics) } } + binding.readFabricsBtn.setOnClickListener { scope.launch { readClusterAttribute(OperationalCredentials.Attribute.Fabrics) } } + binding.removeFabricsBtn.setOnClickListener { scope.launch { sendRemoveFabricsBtnClick(binding.fabricIndexEd.text.toString().toUInt()) } } return binding.root } @@ -99,6 +106,32 @@ class OpCredClientFragment : Fragment() { }, devicePtr, listOf(ChipAttributePath.newInstance(endpointId, clusterId, attributeId)), null, false, 0 /* imTimeoutMs */) } + private suspend fun sendRemoveFabricsBtnClick(fabricIndex: UInt) { + val devicePtr = ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId) + // TODO : Need to be implement poj-to-tlv + val tlvWriter = TlvWriter() + tlvWriter.startStructure(AnonymousTag) + tlvWriter.put(ContextSpecificTag(OperationalCredentials.RemoveFabricCommandField.FabricIndex.id), fabricIndex) + tlvWriter.endStructure() + val invokeElement = InvokeElement.newInstance(addressUpdateFragment.endpointId + , OperationalCredentials.ID + , OperationalCredentials.Command.RemoveFabric.id + , tlvWriter.getEncoded(), null) + + deviceController.invoke(object: InvokeCallback { + override fun onError(ex: Exception?) { + showMessage("RemoveFabric failure $ex") + Log.e(TAG, "RemoveFabric failure", ex) + } + + override fun onResponse(invokeElement: InvokeElement?, successCode: Long) { + Log.e(TAG, "onResponse : $invokeElement, Code : $successCode") + showMessage("RemoveFabric success") + } + + }, devicePtr, invokeElement, 0, 0) + } + private fun showMessage(msg: String) { requireActivity().runOnUiThread { binding.opCredClusterCommandStatus.text = msg diff --git a/examples/android/CHIPTool/app/src/main/res/layout/multi_admin_client_fragment.xml b/examples/android/CHIPTool/app/src/main/res/layout/multi_admin_client_fragment.xml index 95e5458f8164b0..7066cf892626f7 100644 --- a/examples/android/CHIPTool/app/src/main/res/layout/multi_admin_client_fragment.xml +++ b/examples/android/CHIPTool/app/src/main/res/layout/multi_admin_client_fragment.xml @@ -80,12 +80,45 @@ app:layout_constraintEnd_toEndOf="parent" android:text="@string/revoke_btn_text" /> +