From ec0fdec8f36ebc95e44bf8c13ab6a27c215434dc Mon Sep 17 00:00:00 2001 From: WanqQixiang Date: Wed, 17 Aug 2022 12:30:53 +0800 Subject: [PATCH] Submodule: Update connectedhomeip submodule to current master(06457aea2d) --- README.md | 4 +- .../esp_matter/esp_matter_attribute.cpp | 4 +- components/esp_matter/esp_matter_attribute.h | 2 +- components/esp_matter/esp_matter_client.cpp | 72 +- components/esp_matter/esp_matter_cluster.cpp | 2 +- .../zap_common/zap-generated/CHIPClusters.h | 908 ++++++++++-------- .../zap_common/zap-generated/gen_config.h | 1 + connectedhomeip/connectedhomeip | 2 +- .../platform/ESP32_custom/BUILD.gn | 33 +- .../ESP32_custom/DeviceInfoProviderImpl.cpp | 1 - .../ESP32_custom/DeviceInfoProviderImpl.h | 1 - .../ESP32_custom/ESP32DeviceInfoProvider.cpp | 1 + .../ESP32_custom/ESP32DeviceInfoProvider.h | 1 + examples/common/app_qrcode/app_qrcode.cpp | 4 +- examples/common/external_platform/BUILD.gn | 31 +- 15 files changed, 591 insertions(+), 476 deletions(-) delete mode 120000 examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.cpp delete mode 120000 examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.h create mode 120000 examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.cpp create mode 120000 examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.h diff --git a/README.md b/README.md index 5cb0718dc..bba4c6a2c 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ git clone --recursive https://github.com/espressif/esp-matter.git ## Supported ESP-IDF and connectedhomeip versions -- ESP Matter currently works with [commit ae4e105](https://github.com/project-chip/connectedhomeip/tree/ae4e105) of connectedhomeip. -- For Wi-Fi devices (ESP32, ESP32-C3, ESP32-S3), ESP-IDF [v4.4.1 release](https://github.com/espressif/esp-idf/releases/tag/v4.4.1) is required. +- ESP Matter currently works with [commit 06457ae](https://github.com/project-chip/connectedhomeip/tree/06457ae) of connectedhomeip. +- For Wi-Fi devices (ESP32, ESP32-C3, ESP32-S3), ESP-IDF [v4.4.2 release](https://github.com/espressif/esp-idf/releases/tag/v4.4.2) is required. - For Thread devices (ESP32-H2), ESP-IDF master branch at [commit 047903c](https://github.com/espressif/esp-idf/commit/047903c) should be used. diff --git a/components/esp_matter/esp_matter_attribute.cpp b/components/esp_matter/esp_matter_attribute.cpp index d74d15919..86517d6d7 100644 --- a/components/esp_matter/esp_matter_attribute.cpp +++ b/components/esp_matter/esp_matter_attribute.cpp @@ -655,9 +655,9 @@ attribute_t *create_security_policy(cluster_t *cluster, uint8_t *value, uint16_t ATTRIBUTE_FLAG_NONE, esp_matter_array(value, length, count)); } -attribute_t *create_channel_mask(cluster_t *cluster, uint8_t *value, uint16_t length) +attribute_t *create_channel_page0_mask(cluster_t *cluster, uint8_t *value, uint16_t length) { - return esp_matter::attribute::create(cluster, ThreadNetworkDiagnostics::Attributes::ChannelMask::Id, + return esp_matter::attribute::create(cluster, ThreadNetworkDiagnostics::Attributes::ChannelPage0Mask::Id, ATTRIBUTE_FLAG_NONE, esp_matter_octet_str(value, length)); } diff --git a/components/esp_matter/esp_matter_attribute.h b/components/esp_matter/esp_matter_attribute.h index ed0cbc50c..0d92e7316 100644 --- a/components/esp_matter/esp_matter_attribute.h +++ b/components/esp_matter/esp_matter_attribute.h @@ -185,7 +185,7 @@ attribute_t *create_data_version(cluster_t *cluster, uint8_t value); attribute_t *create_stable_data_version(cluster_t *cluster, uint8_t value); attribute_t *create_leader_router_id(cluster_t *cluster, uint8_t value); attribute_t *create_security_policy(cluster_t *cluster, uint8_t *value, uint16_t length, uint16_t count); -attribute_t *create_channel_mask(cluster_t *cluster, uint8_t *value, uint16_t length); +attribute_t *create_channel_page0_mask(cluster_t *cluster, uint8_t *value, uint16_t length); attribute_t *create_operational_dataset_components(cluster_t *cluster, uint8_t *value, uint16_t length, uint16_t count); attribute_t *create_active_network_faults(cluster_t *cluster, uint8_t *value, uint16_t length, uint16_t count); } /* attribute */ diff --git a/components/esp_matter/esp_matter_client.cpp b/components/esp_matter/esp_matter_client.cpp index ee202f3cb..d7caf4574 100644 --- a/components/esp_matter/esp_matter_client.cpp +++ b/components/esp_matter/esp_matter_client.cpp @@ -24,7 +24,11 @@ using chip::DeviceProxy; using chip::FabricInfo; using chip::kInvalidEndpointId; using chip::OperationalDeviceProxy; -using chip::PeerId; +using chip::OperationalSessionSetup; +using chip::SessionHandle; +using chip::ScopedNodeId; +using chip::Server; +using chip::Messaging::ExchangeManager; using chip::Callback::Callback; static const char *TAG = "esp_matter_client"; @@ -45,50 +49,32 @@ esp_err_t set_command_callback(command_callback_t callback, void *priv_data) /** TODO: Change g_remote_endpoint_id to something better. */ uint16_t g_remote_endpoint_id = kInvalidEndpointId; -void esp_matter_new_connection_success_callback(void *context, OperationalDeviceProxy *peer_device) +void esp_matter_connection_success_callback(void *context, ExchangeManager & exchangeMgr, SessionHandle & sessionHandle) { ESP_LOGI(TAG, "New connection success"); if (client_command_callback) { - client_command_callback(peer_device, g_remote_endpoint_id, client_command_callback_priv_data); + OperationalDeviceProxy device(&exchangeMgr, sessionHandle); + client_command_callback(&device, g_remote_endpoint_id, client_command_callback_priv_data); } } -void esp_matter_new_connection_failure_callback(void *context, PeerId peerId, CHIP_ERROR error) +void esp_matter_connection_failure_callback(void *context, const ScopedNodeId & peerId, CHIP_ERROR error) { ESP_LOGI(TAG, "New connection failure"); } esp_err_t connect(uint8_t fabric_index, uint64_t node_id, uint16_t remote_endpoint_id) { - /* Get info */ - const FabricInfo *fabric_info = chip::Server::GetInstance().GetFabricTable().FindFabricWithIndex(fabric_index); - if (!fabric_info) { - ESP_LOGE(TAG, "Couldn't find fabric info"); - return ESP_FAIL; - } - PeerId peer_id = fabric_info->GetPeerIdForNode(node_id); - - /* Find existing */ - DeviceProxy *peer_device = chip::Server::GetInstance().GetCASESessionManager()->FindExistingSession(peer_id); - if (peer_device) { - /* Callback if found */ - if (client_command_callback) { - client_command_callback(peer_device, remote_endpoint_id, client_command_callback_priv_data); - } - return ESP_OK; - } - - /* Create new connection */ + static Callback success_callback(esp_matter_connection_success_callback, NULL); + static Callback failure_callback(esp_matter_connection_failure_callback, NULL); + Server * server = &(chip::Server::GetInstance()); g_remote_endpoint_id = remote_endpoint_id; - static Callback success_callback(esp_matter_new_connection_success_callback, NULL); - static Callback failure_callback(esp_matter_new_connection_failure_callback, NULL); - chip::Server::GetInstance().GetCASESessionManager()->FindOrEstablishSession(peer_id, &success_callback, - &failure_callback); - + server->GetCASESessionManager()->FindOrEstablishSession(ScopedNodeId(node_id, fabric_index), &success_callback, + &failure_callback); return ESP_OK; } -static void esp_matter_command_client_binding_callback(const EmberBindingTableEntry &binding, DeviceProxy *peer_device, +static void esp_matter_command_client_binding_callback(const EmberBindingTableEntry &binding, OperationalDeviceProxy *peer_device, void *context) { if (client_command_callback) { @@ -182,9 +168,9 @@ esp_err_t send_move(peer_device_t *remote_device, uint16_t remote_endpoint_id, u { LevelControl::Commands::Move::Type command_data; command_data.moveMode = (LevelControl::MoveMode)move_mode; - command_data.rate = rate; - command_data.optionMask = option_mask; - command_data.optionOverride = option_override; + command_data.rate.Value(rate); + command_data.optionsMask = option_mask; + command_data.optionsOverride = option_override; chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id); cluster.InvokeCommand(command_data, NULL, send_command_success_callback, send_command_failure_callback); @@ -196,9 +182,9 @@ esp_err_t send_move_to_level(peer_device_t *remote_device, uint16_t remote_endpo { LevelControl::Commands::MoveToLevel::Type command_data; command_data.level = level; - command_data.transitionTime = transition_time; - command_data.optionMask = option_mask; - command_data.optionOverride = option_override; + command_data.transitionTime.Value(transition_time); + command_data.optionsMask = option_mask; + command_data.optionsOverride = option_override; chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id); cluster.InvokeCommand(command_data, NULL, send_command_success_callback, send_command_failure_callback); @@ -210,7 +196,7 @@ esp_err_t send_move_to_level_with_on_off(peer_device_t *remote_device, uint16_t { LevelControl::Commands::MoveToLevelWithOnOff::Type command_data; command_data.level = level; - command_data.transitionTime = transition_time; + command_data.transitionTime.Value(transition_time); chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id); cluster.InvokeCommand(command_data, NULL, send_command_success_callback, send_command_failure_callback); @@ -222,7 +208,7 @@ esp_err_t send_move_with_on_off(peer_device_t *remote_device, uint16_t remote_en { LevelControl::Commands::MoveWithOnOff::Type command_data; command_data.moveMode = (LevelControl::MoveMode)move_mode; - command_data.rate = rate; + command_data.rate.Value(rate); chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id); cluster.InvokeCommand(command_data, NULL, send_command_success_callback, send_command_failure_callback); @@ -235,9 +221,9 @@ esp_err_t send_step(peer_device_t *remote_device, uint16_t remote_endpoint_id, u LevelControl::Commands::Step::Type command_data; command_data.stepMode = (LevelControl::StepMode)step_mode; command_data.stepSize = step_size; - command_data.transitionTime = transition_time; - command_data.optionMask = option_mask; - command_data.optionOverride = option_override; + command_data.transitionTime.Value(transition_time); + command_data.optionsMask = option_mask; + command_data.optionsOverride = option_override; chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id); cluster.InvokeCommand(command_data, NULL, send_command_success_callback, send_command_failure_callback); @@ -250,7 +236,7 @@ esp_err_t send_step_with_on_off(peer_device_t *remote_device, uint16_t remote_en LevelControl::Commands::StepWithOnOff::Type command_data; command_data.stepMode = (LevelControl::StepMode)step_mode; command_data.stepSize = step_size; - command_data.transitionTime = transition_time; + command_data.transitionTime.Value(transition_time); chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id); cluster.InvokeCommand(command_data, NULL, send_command_success_callback, send_command_failure_callback); @@ -261,8 +247,8 @@ esp_err_t send_stop(peer_device_t *remote_device, uint16_t remote_endpoint_id, u uint8_t option_override) { LevelControl::Commands::Stop::Type command_data; - command_data.optionMask = option_mask; - command_data.optionOverride = option_override; + command_data.optionsMask = option_mask; + command_data.optionsOverride = option_override; chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id); cluster.InvokeCommand(command_data, NULL, send_command_success_callback, send_command_failure_callback); diff --git a/components/esp_matter/esp_matter_cluster.cpp b/components/esp_matter/esp_matter_cluster.cpp index dac8881f7..65062ec71 100644 --- a/components/esp_matter/esp_matter_cluster.cpp +++ b/components/esp_matter/esp_matter_cluster.cpp @@ -686,7 +686,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_stable_data_version(cluster, 0); attribute::create_leader_router_id(cluster, 0); attribute::create_security_policy(cluster, NULL, 0, 0); - attribute::create_channel_mask(cluster, NULL, 0); + attribute::create_channel_page0_mask(cluster, NULL, 0); attribute::create_operational_dataset_components(cluster, NULL, 0, 0); attribute::create_active_network_faults(cluster, NULL, 0, 0); diff --git a/components/esp_matter/zap_common/zap-generated/CHIPClusters.h b/components/esp_matter/zap_common/zap-generated/CHIPClusters.h index bfeb56dcc..96283a050 100644 --- a/components/esp_matter/zap_common/zap-generated/CHIPClusters.h +++ b/components/esp_matter/zap_common/zap-generated/CHIPClusters.h @@ -30,336 +30,39 @@ namespace chip { namespace Controller { -class DLL_EXPORT AccessControlCluster : public ClusterBase +class DLL_EXPORT IdentifyCluster : public ClusterBase { public: - AccessControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::AccessControl::Id, endpoint) {} - ~AccessControlCluster() {} -}; - -class DLL_EXPORT AccountLoginCluster : public ClusterBase -{ -public: - AccountLoginCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::AccountLogin::Id, endpoint) {} - ~AccountLoginCluster() {} -}; - -class DLL_EXPORT AdministratorCommissioningCluster : public ClusterBase -{ -public: - AdministratorCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::AdministratorCommissioning::Id, endpoint) {} - ~AdministratorCommissioningCluster() {} -}; - -class DLL_EXPORT ApplicationBasicCluster : public ClusterBase -{ -public: - ApplicationBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ApplicationBasic::Id, endpoint) {} - ~ApplicationBasicCluster() {} -}; - -class DLL_EXPORT ApplicationLauncherCluster : public ClusterBase -{ -public: - ApplicationLauncherCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ApplicationLauncher::Id, endpoint) {} - ~ApplicationLauncherCluster() {} -}; - -class DLL_EXPORT AudioOutputCluster : public ClusterBase -{ -public: - AudioOutputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::AudioOutput::Id, endpoint) {} - ~AudioOutputCluster() {} -}; - -class DLL_EXPORT BarrierControlCluster : public ClusterBase -{ -public: - BarrierControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::BarrierControl::Id, endpoint) {} - ~BarrierControlCluster() {} -}; - -class DLL_EXPORT BasicCluster : public ClusterBase -{ -public: - BasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Basic::Id, endpoint) {} - ~BasicCluster() {} -}; - -class DLL_EXPORT BinaryInputBasicCluster : public ClusterBase -{ -public: - BinaryInputBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::BinaryInputBasic::Id, endpoint) {} - ~BinaryInputBasicCluster() {} -}; - -class DLL_EXPORT BindingCluster : public ClusterBase -{ -public: - BindingCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Binding::Id, endpoint) {} - ~BindingCluster() {} -}; - -class DLL_EXPORT BooleanStateCluster : public ClusterBase -{ -public: - BooleanStateCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::BooleanState::Id, endpoint) {} - ~BooleanStateCluster() {} -}; - -class DLL_EXPORT BridgedActionsCluster : public ClusterBase -{ -public: - BridgedActionsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::BridgedActions::Id, endpoint) {} - ~BridgedActionsCluster() {} -}; - -class DLL_EXPORT BridgedDeviceBasicCluster : public ClusterBase -{ -public: - BridgedDeviceBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::BridgedDeviceBasic::Id, endpoint) {} - ~BridgedDeviceBasicCluster() {} -}; - -class DLL_EXPORT ChannelCluster : public ClusterBase -{ -public: - ChannelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Channel::Id, endpoint) {} - ~ChannelCluster() {} -}; - -class DLL_EXPORT ColorControlCluster : public ClusterBase -{ -public: - ColorControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ColorControl::Id, endpoint) {} - ~ColorControlCluster() {} -}; - -class DLL_EXPORT ContentLauncherCluster : public ClusterBase -{ -public: - ContentLauncherCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ContentLauncher::Id, endpoint) {} - ~ContentLauncherCluster() {} -}; - -class DLL_EXPORT DescriptorCluster : public ClusterBase -{ -public: - DescriptorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Descriptor::Id, endpoint) {} - ~DescriptorCluster() {} -}; - -class DLL_EXPORT DiagnosticLogsCluster : public ClusterBase -{ - DiagnosticLogsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::DiagnosticLogs::Id, endpoint) {} - ~DiagnosticLogsCluster() {} -}; - -class DLL_EXPORT DoorLockCluster : public ClusterBase -{ -public: - DoorLockCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::DoorLock::Id, endpoint) {} - ~DoorLockCluster() {} -}; - -class DLL_EXPORT ElectricalMeasurementCluster : public ClusterBase -{ -public: - ElectricalMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ElectricalMeasurement::Id, endpoint) {} - ~ElectricalMeasurementCluster() {} -}; - -class DLL_EXPORT EthernetNetworkDiagnosticsCluster : public ClusterBase -{ -public: - EthernetNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::EthernetNetworkDiagnostics::Id, endpoint) {} - ~EthernetNetworkDiagnosticsCluster() {} -}; - -class DLL_EXPORT FanControlCluster : public ClusterBase -{ -public: - FanControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::FanControl::Id, endpoint) {} - ~FanControlCluster() {} -}; - -class DLL_EXPORT FixedLabelCluster : public ClusterBase -{ -public: - FixedLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::FixedLabel::Id, endpoint) {} - ~FixedLabelCluster() {} -}; - -class DLL_EXPORT FlowMeasurementCluster : public ClusterBase -{ -public: - FlowMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::FlowMeasurement::Id, endpoint) {} - ~FlowMeasurementCluster() {} -}; - -class DLL_EXPORT GeneralCommissioningCluster : public ClusterBase -{ -public: - GeneralCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::GeneralCommissioning::Id, endpoint) {} - ~GeneralCommissioningCluster() {} -}; - -class DLL_EXPORT GeneralDiagnosticsCluster : public ClusterBase -{ -public: - GeneralDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::GeneralDiagnostics::Id, endpoint) {} - ~GeneralDiagnosticsCluster() {} -}; - -class DLL_EXPORT GroupKeyManagementCluster : public ClusterBase -{ -public: - GroupKeyManagementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::GroupKeyManagement::Id, endpoint) {} - ~GroupKeyManagementCluster() {} + IdentifyCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Identify::Id, endpoint) + {} + ~IdentifyCluster() {} }; class DLL_EXPORT GroupsCluster : public ClusterBase { public: - GroupsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Groups::Id, endpoint) {} + GroupsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Groups::Id, endpoint) + {} ~GroupsCluster() {} }; -class DLL_EXPORT IdentifyCluster : public ClusterBase +class DLL_EXPORT ScenesCluster : public ClusterBase { public: - IdentifyCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Identify::Id, endpoint) {} - ~IdentifyCluster() {} -}; - -class DLL_EXPORT IlluminanceMeasurementCluster : public ClusterBase -{ -public: - IlluminanceMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::IlluminanceMeasurement::Id, endpoint) {} - ~IlluminanceMeasurementCluster() {} -}; - -class DLL_EXPORT KeypadInputCluster : public ClusterBase -{ -public: - KeypadInputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::KeypadInput::Id, endpoint) {} - ~KeypadInputCluster() {} -}; - -class DLL_EXPORT LevelControlCluster : public ClusterBase -{ -public: - LevelControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::LevelControl::Id, endpoint) {} - ~LevelControlCluster() {} -}; - -class DLL_EXPORT LocalizationConfigurationCluster : public ClusterBase -{ -public: - LocalizationConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::LocalizationConfiguration::Id, endpoint) {} - ~LocalizationConfigurationCluster() {} -}; - -class DLL_EXPORT LowPowerCluster : public ClusterBase -{ -public: - LowPowerCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::LowPower::Id, endpoint) {} - ~LowPowerCluster() {} -}; - -class DLL_EXPORT MediaInputCluster : public ClusterBase -{ -public: - MediaInputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::MediaInput::Id, endpoint) {} - ~MediaInputCluster() {} -}; - -class DLL_EXPORT MediaPlaybackCluster : public ClusterBase -{ -public: - MediaPlaybackCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::MediaPlayback::Id, endpoint) {} - ~MediaPlaybackCluster() {} -}; - -class DLL_EXPORT ModeSelectCluster : public ClusterBase -{ -public: - ModeSelectCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ModeSelect::Id, endpoint) {} - ~ModeSelectCluster() {} -}; - -class DLL_EXPORT NetworkCommissioningCluster : public ClusterBase -{ -public: - NetworkCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::NetworkCommissioning::Id, endpoint) {} - ~NetworkCommissioningCluster() {} -}; - -class DLL_EXPORT OtaSoftwareUpdateProviderCluster : public ClusterBase -{ -public: - OtaSoftwareUpdateProviderCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::OtaSoftwareUpdateProvider::Id, endpoint) {} - ~OtaSoftwareUpdateProviderCluster() {} -}; - -class DLL_EXPORT OtaSoftwareUpdateRequestorCluster : public ClusterBase -{ -public: - OtaSoftwareUpdateRequestorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::OtaSoftwareUpdateRequestor::Id, endpoint) {} - ~OtaSoftwareUpdateRequestorCluster() {} -}; - -class DLL_EXPORT OccupancySensingCluster : public ClusterBase -{ -public: - OccupancySensingCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::OccupancySensing::Id, endpoint) {} - ~OccupancySensingCluster() {} + ScenesCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Scenes::Id, endpoint) + {} + ~ScenesCluster() {} }; class DLL_EXPORT OnOffCluster : public ClusterBase { public: - OnOffCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::OnOff::Id, endpoint) {} + OnOffCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::OnOff::Id, endpoint) + {} ~OnOffCluster() {} }; @@ -367,177 +70,566 @@ class DLL_EXPORT OnOffSwitchConfigurationCluster : public ClusterBase { public: OnOffSwitchConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::OnOffSwitchConfiguration::Id, endpoint) {} + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::OnOffSwitchConfiguration::Id, endpoint) + {} ~OnOffSwitchConfigurationCluster() {} }; -class DLL_EXPORT OperationalCredentialsCluster : public ClusterBase +class DLL_EXPORT LevelControlCluster : public ClusterBase { public: - OperationalCredentialsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::OperationalCredentials::Id, endpoint) {} - ~OperationalCredentialsCluster() {} + LevelControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::LevelControl::Id, endpoint) + {} + ~LevelControlCluster() {} }; -class DLL_EXPORT PowerSourceCluster : public ClusterBase +class DLL_EXPORT BinaryInputBasicCluster : public ClusterBase { public: - PowerSourceCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::PowerSource::Id, endpoint) {} - ~PowerSourceCluster() {} + BinaryInputBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::BinaryInputBasic::Id, endpoint) + {} + ~BinaryInputBasicCluster() {} }; -class DLL_EXPORT PowerSourceConfigurationCluster : public ClusterBase +class DLL_EXPORT DescriptorCluster : public ClusterBase { public: - PowerSourceConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::PowerSourceConfiguration::Id, endpoint) {} - ~PowerSourceConfigurationCluster() {} + DescriptorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Descriptor::Id, endpoint) + {} + ~DescriptorCluster() {} }; -class DLL_EXPORT PressureMeasurementCluster : public ClusterBase +class DLL_EXPORT BindingCluster : public ClusterBase { public: - PressureMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::PressureMeasurement::Id, endpoint) {} - ~PressureMeasurementCluster() {} + BindingCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Binding::Id, endpoint) + {} + ~BindingCluster() {} }; -class DLL_EXPORT PumpConfigurationAndControlCluster : public ClusterBase +class DLL_EXPORT AccessControlCluster : public ClusterBase { public: - PumpConfigurationAndControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::PumpConfigurationAndControl::Id, endpoint) {} - ~PumpConfigurationAndControlCluster() {} + AccessControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::AccessControl::Id, endpoint) + {} + ~AccessControlCluster() {} }; -class DLL_EXPORT RelativeHumidityMeasurementCluster : public ClusterBase +class DLL_EXPORT ActionsCluster : public ClusterBase { public: - RelativeHumidityMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::RelativeHumidityMeasurement::Id, endpoint) {} - ~RelativeHumidityMeasurementCluster() {} + ActionsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Actions::Id, endpoint) + {} + ~ActionsCluster() {} }; -class DLL_EXPORT ScenesCluster : public ClusterBase +class DLL_EXPORT BasicCluster : public ClusterBase { public: - ScenesCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Scenes::Id, endpoint) {} - ~ScenesCluster() {} + BasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Basic::Id, endpoint) + {} + ~BasicCluster() {} }; -class DLL_EXPORT SoftwareDiagnosticsCluster : public ClusterBase +class DLL_EXPORT OtaSoftwareUpdateProviderCluster : public ClusterBase { public: - SoftwareDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::SoftwareDiagnostics::Id, endpoint) {} - ~SoftwareDiagnosticsCluster() {} + OtaSoftwareUpdateProviderCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::OtaSoftwareUpdateProvider::Id, endpoint) + {} + ~OtaSoftwareUpdateProviderCluster() {} }; -class DLL_EXPORT SwitchCluster : public ClusterBase +class DLL_EXPORT OtaSoftwareUpdateRequestorCluster : public ClusterBase { public: - SwitchCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Switch::Id, endpoint) {} - ~SwitchCluster() {} + OtaSoftwareUpdateRequestorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::OtaSoftwareUpdateRequestor::Id, endpoint) + {} + ~OtaSoftwareUpdateRequestorCluster() {} }; -class DLL_EXPORT TargetNavigatorCluster : public ClusterBase +class DLL_EXPORT LocalizationConfigurationCluster : public ClusterBase { public: - TargetNavigatorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::TargetNavigator::Id, endpoint) {} - ~TargetNavigatorCluster() {} -}; - -class DLL_EXPORT TemperatureMeasurementCluster : public ClusterBase -{ -public: - TemperatureMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::TemperatureMeasurement::Id, endpoint) {} - ~TemperatureMeasurementCluster() {} -}; - -class DLL_EXPORT TestClusterCluster : public ClusterBase -{ -public: - TestClusterCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::TestCluster::Id, endpoint) {} - ~TestClusterCluster() {} -}; - -class DLL_EXPORT ThermostatCluster : public ClusterBase -{ -public: - ThermostatCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::Thermostat::Id, endpoint) {} - ~ThermostatCluster() {} -}; - -class DLL_EXPORT ThermostatUserInterfaceConfigurationCluster : public ClusterBase -{ -public: - ThermostatUserInterfaceConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ThermostatUserInterfaceConfiguration::Id, endpoint) {} - ~ThermostatUserInterfaceConfigurationCluster() {} -}; - -class DLL_EXPORT ThreadNetworkDiagnosticsCluster : public ClusterBase -{ -public: - ThreadNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::ThreadNetworkDiagnostics::Id, endpoint) {} - ~ThreadNetworkDiagnosticsCluster() {} + LocalizationConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::LocalizationConfiguration::Id, endpoint) + {} + ~LocalizationConfigurationCluster() {} }; class DLL_EXPORT TimeFormatLocalizationCluster : public ClusterBase { public: TimeFormatLocalizationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::TimeFormatLocalization::Id, endpoint) {} + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::TimeFormatLocalization::Id, endpoint) + {} ~TimeFormatLocalizationCluster() {} }; class DLL_EXPORT UnitLocalizationCluster : public ClusterBase { public: - UnitLocalizationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::UnitLocalization::Id, endpoint) {} + UnitLocalizationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::UnitLocalization::Id, endpoint) + {} ~UnitLocalizationCluster() {} }; -class DLL_EXPORT UserLabelCluster : public ClusterBase +class DLL_EXPORT PowerSourceConfigurationCluster : public ClusterBase { public: - UserLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::UserLabel::Id, endpoint) {} - ~UserLabelCluster() {} + PowerSourceConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::PowerSourceConfiguration::Id, endpoint) + {} + ~PowerSourceConfigurationCluster() {} }; -class DLL_EXPORT WakeOnLanCluster : public ClusterBase +class DLL_EXPORT PowerSourceCluster : public ClusterBase { public: - WakeOnLanCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::WakeOnLan::Id, endpoint) {} - ~WakeOnLanCluster() {} + PowerSourceCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::PowerSource::Id, endpoint) + {} + ~PowerSourceCluster() {} +}; + +class DLL_EXPORT GeneralCommissioningCluster : public ClusterBase +{ +public: + GeneralCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::GeneralCommissioning::Id, endpoint) + {} + ~GeneralCommissioningCluster() {} +}; + +class DLL_EXPORT NetworkCommissioningCluster : public ClusterBase +{ +public: + NetworkCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::NetworkCommissioning::Id, endpoint) + {} + ~NetworkCommissioningCluster() {} +}; + +class DLL_EXPORT DiagnosticLogsCluster : public ClusterBase +{ +public: + DiagnosticLogsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::DiagnosticLogs::Id, endpoint) + {} + ~DiagnosticLogsCluster() {} +}; + +class DLL_EXPORT GeneralDiagnosticsCluster : public ClusterBase +{ +public: + GeneralDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::GeneralDiagnostics::Id, endpoint) + {} + ~GeneralDiagnosticsCluster() {} +}; + +class DLL_EXPORT SoftwareDiagnosticsCluster : public ClusterBase +{ +public: + SoftwareDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::SoftwareDiagnostics::Id, endpoint) + {} + ~SoftwareDiagnosticsCluster() {} +}; + +class DLL_EXPORT ThreadNetworkDiagnosticsCluster : public ClusterBase +{ +public: + ThreadNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ThreadNetworkDiagnostics::Id, endpoint) + {} + ~ThreadNetworkDiagnosticsCluster() {} }; class DLL_EXPORT WiFiNetworkDiagnosticsCluster : public ClusterBase { public: WiFiNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::WiFiNetworkDiagnostics::Id, endpoint) {} + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::WiFiNetworkDiagnostics::Id, endpoint) + {} ~WiFiNetworkDiagnosticsCluster() {} }; +class DLL_EXPORT EthernetNetworkDiagnosticsCluster : public ClusterBase +{ +public: + EthernetNetworkDiagnosticsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::EthernetNetworkDiagnostics::Id, endpoint) + {} + ~EthernetNetworkDiagnosticsCluster() {} +}; + +class DLL_EXPORT BridgedDeviceBasicCluster : public ClusterBase +{ +public: + BridgedDeviceBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::BridgedDeviceBasic::Id, endpoint) + {} + ~BridgedDeviceBasicCluster() {} +}; + +class DLL_EXPORT SwitchCluster : public ClusterBase +{ +public: + SwitchCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Switch::Id, endpoint) + {} + ~SwitchCluster() {} +}; + +class DLL_EXPORT AdministratorCommissioningCluster : public ClusterBase +{ +public: + AdministratorCommissioningCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::AdministratorCommissioning::Id, endpoint) + {} + ~AdministratorCommissioningCluster() {} +}; + +class DLL_EXPORT OperationalCredentialsCluster : public ClusterBase +{ +public: + OperationalCredentialsCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::OperationalCredentials::Id, endpoint) + {} + ~OperationalCredentialsCluster() {} +}; + +class DLL_EXPORT GroupKeyManagementCluster : public ClusterBase +{ +public: + GroupKeyManagementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::GroupKeyManagement::Id, endpoint) + {} + ~GroupKeyManagementCluster() {} +}; + +class DLL_EXPORT FixedLabelCluster : public ClusterBase +{ +public: + FixedLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::FixedLabel::Id, endpoint) + {} + ~FixedLabelCluster() {} +}; + +class DLL_EXPORT UserLabelCluster : public ClusterBase +{ +public: + UserLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::UserLabel::Id, endpoint) + {} + ~UserLabelCluster() {} +}; + +class DLL_EXPORT BooleanStateCluster : public ClusterBase +{ +public: + BooleanStateCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::BooleanState::Id, endpoint) + {} + ~BooleanStateCluster() {} +}; + +class DLL_EXPORT ModeSelectCluster : public ClusterBase +{ +public: + ModeSelectCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ModeSelect::Id, endpoint) + {} + ~ModeSelectCluster() {} +}; + +class DLL_EXPORT DoorLockCluster : public ClusterBase +{ +public: + DoorLockCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::DoorLock::Id, endpoint) + {} + ~DoorLockCluster() {} +}; + class DLL_EXPORT WindowCoveringCluster : public ClusterBase { public: - WindowCoveringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, - EndpointId endpoint) : ClusterBase(exchangeManager, session, app::Clusters::WindowCovering::Id, endpoint) {} + WindowCoveringCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::WindowCovering::Id, endpoint) + {} ~WindowCoveringCluster() {} }; +class DLL_EXPORT BarrierControlCluster : public ClusterBase +{ +public: + BarrierControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::BarrierControl::Id, endpoint) + {} + ~BarrierControlCluster() {} +}; + +class DLL_EXPORT PumpConfigurationAndControlCluster : public ClusterBase +{ +public: + PumpConfigurationAndControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::PumpConfigurationAndControl::Id, endpoint) + {} + ~PumpConfigurationAndControlCluster() {} +}; + +class DLL_EXPORT ThermostatCluster : public ClusterBase +{ +public: + ThermostatCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Thermostat::Id, endpoint) + {} + ~ThermostatCluster() {} +}; + +class DLL_EXPORT FanControlCluster : public ClusterBase +{ +public: + FanControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::FanControl::Id, endpoint) + {} + ~FanControlCluster() {} +}; + +class DLL_EXPORT ThermostatUserInterfaceConfigurationCluster : public ClusterBase +{ +public: + ThermostatUserInterfaceConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ThermostatUserInterfaceConfiguration::Id, endpoint) + {} + ~ThermostatUserInterfaceConfigurationCluster() {} +}; + +class DLL_EXPORT ColorControlCluster : public ClusterBase +{ +public: + ColorControlCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ColorControl::Id, endpoint) + {} + ~ColorControlCluster() {} +}; + +class DLL_EXPORT BallastConfigurationCluster : public ClusterBase +{ +public: + BallastConfigurationCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::BallastConfiguration::Id, endpoint) + {} + ~BallastConfigurationCluster() {} +}; + +class DLL_EXPORT IlluminanceMeasurementCluster : public ClusterBase +{ +public: + IlluminanceMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::IlluminanceMeasurement::Id, endpoint) + {} + ~IlluminanceMeasurementCluster() {} +}; + +class DLL_EXPORT TemperatureMeasurementCluster : public ClusterBase +{ +public: + TemperatureMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::TemperatureMeasurement::Id, endpoint) + {} + ~TemperatureMeasurementCluster() {} +}; + +class DLL_EXPORT PressureMeasurementCluster : public ClusterBase +{ +public: + PressureMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::PressureMeasurement::Id, endpoint) + {} + ~PressureMeasurementCluster() {} +}; + +class DLL_EXPORT FlowMeasurementCluster : public ClusterBase +{ +public: + FlowMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::FlowMeasurement::Id, endpoint) + {} + ~FlowMeasurementCluster() {} +}; + +class DLL_EXPORT RelativeHumidityMeasurementCluster : public ClusterBase +{ +public: + RelativeHumidityMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, + EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::RelativeHumidityMeasurement::Id, endpoint) + {} + ~RelativeHumidityMeasurementCluster() {} +}; + +class DLL_EXPORT OccupancySensingCluster : public ClusterBase +{ +public: + OccupancySensingCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::OccupancySensing::Id, endpoint) + {} + ~OccupancySensingCluster() {} +}; + +class DLL_EXPORT WakeOnLanCluster : public ClusterBase +{ +public: + WakeOnLanCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::WakeOnLan::Id, endpoint) + {} + ~WakeOnLanCluster() {} +}; + +class DLL_EXPORT ChannelCluster : public ClusterBase +{ +public: + ChannelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::Channel::Id, endpoint) + {} + ~ChannelCluster() {} +}; + +class DLL_EXPORT TargetNavigatorCluster : public ClusterBase +{ +public: + TargetNavigatorCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::TargetNavigator::Id, endpoint) + {} + ~TargetNavigatorCluster() {} +}; + +class DLL_EXPORT MediaPlaybackCluster : public ClusterBase +{ +public: + MediaPlaybackCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::MediaPlayback::Id, endpoint) + {} + ~MediaPlaybackCluster() {} +}; + +class DLL_EXPORT MediaInputCluster : public ClusterBase +{ +public: + MediaInputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::MediaInput::Id, endpoint) + {} + ~MediaInputCluster() {} +}; + +class DLL_EXPORT LowPowerCluster : public ClusterBase +{ +public: + LowPowerCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::LowPower::Id, endpoint) + {} + ~LowPowerCluster() {} +}; + +class DLL_EXPORT KeypadInputCluster : public ClusterBase +{ +public: + KeypadInputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::KeypadInput::Id, endpoint) + {} + ~KeypadInputCluster() {} +}; + +class DLL_EXPORT ContentLauncherCluster : public ClusterBase +{ +public: + ContentLauncherCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ContentLauncher::Id, endpoint) + {} + ~ContentLauncherCluster() {} +}; + +class DLL_EXPORT AudioOutputCluster : public ClusterBase +{ +public: + AudioOutputCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::AudioOutput::Id, endpoint) + {} + ~AudioOutputCluster() {} +}; + +class DLL_EXPORT ApplicationLauncherCluster : public ClusterBase +{ +public: + ApplicationLauncherCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ApplicationLauncher::Id, endpoint) + {} + ~ApplicationLauncherCluster() {} +}; + +class DLL_EXPORT ApplicationBasicCluster : public ClusterBase +{ +public: + ApplicationBasicCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ApplicationBasic::Id, endpoint) + {} + ~ApplicationBasicCluster() {} +}; + +class DLL_EXPORT AccountLoginCluster : public ClusterBase +{ +public: + AccountLoginCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::AccountLogin::Id, endpoint) + {} + ~AccountLoginCluster() {} +}; + +class DLL_EXPORT ElectricalMeasurementCluster : public ClusterBase +{ +public: + ElectricalMeasurementCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::ElectricalMeasurement::Id, endpoint) + {} + ~ElectricalMeasurementCluster() {} +}; + +class DLL_EXPORT TestClusterCluster : public ClusterBase +{ +public: + TestClusterCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::TestCluster::Id, endpoint) + {} + ~TestClusterCluster() {} +}; + } // namespace Controller } // namespace chip diff --git a/components/esp_matter/zap_common/zap-generated/gen_config.h b/components/esp_matter/zap_common/zap-generated/gen_config.h index e0d2a6307..5fd3133a6 100644 --- a/components/esp_matter/zap_common/zap-generated/gen_config.h +++ b/components/esp_matter/zap_common/zap-generated/gen_config.h @@ -185,6 +185,7 @@ #define EMBER_AF_TARGET_NAVIGATOR_CLUSTER_SERVER_ENDPOINT_COUNT (16) // used in target navigator #define EMBER_AF_WAKE_ON_LAN_CLUSTER_SERVER_ENDPOINT_COUNT (16) // used in wake on lan #define EMBER_AF_WINDOW_COVERING_CLUSTER_SERVER_ENDPOINT_COUNT (16) // used in window covering +#define EMBER_AF_DOOR_LOCK_CLUSTER_SERVER_ENDPOINT_COUNT (16) // used in door lock #define MATTER_SCENES_TABLE_SIZE 3 // used in scenes // TODO: check this again diff --git a/connectedhomeip/connectedhomeip b/connectedhomeip/connectedhomeip index ae4e10500..06457aea2 160000 --- a/connectedhomeip/connectedhomeip +++ b/connectedhomeip/connectedhomeip @@ -1 +1 @@ -Subproject commit ae4e105008b5ab363c02481ec8245d08b913b534 +Subproject commit 06457aea2d2112e76f88c95ee4ab0e22a9dbe9f5 diff --git a/examples/blemesh_bridge/platform/ESP32_custom/BUILD.gn b/examples/blemesh_bridge/platform/ESP32_custom/BUILD.gn index dfaab1138..2a7df7fa2 100644 --- a/examples/blemesh_bridge/platform/ESP32_custom/BUILD.gn +++ b/examples/blemesh_bridge/platform/ESP32_custom/BUILD.gn @@ -19,6 +19,13 @@ import("${chip_root}/src/platform/device.gni") chip_enable_wifi = true +declare_args() { + # By default use default/example implementation of CommissionableDataProvider, + # DeviceAttestationCredentialsProvider and DeviceInstanceInforProvider + chip_use_factory_data_provider = false + chip_use_device_info_provider = false +} + config("ESP32_custom_include") { include_dirs = [ "../../" ] } @@ -26,7 +33,7 @@ config("ESP32_custom_include") { buildconfig_header("custom_buildconfig") { header = "CHIPDeviceBuildConfig.h" header_dir = "platform" - + defines = [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=true", "CHIP_ENABLE_OPENTHREAD=false", @@ -47,7 +54,7 @@ buildconfig_header("custom_buildconfig") { "INET_CONFIG_INCLUDE=", "SYSTEM_PLATFORM_CONFIG_INCLUDE=", ] - + if (chip_enable_ota_requestor) { defines += [ "CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR=1" ] } @@ -59,7 +66,7 @@ group("platform_buildconfig") { ] public_configs = [ - ":ESP32_custom_include", + ":ESP32_custom_include", ] } @@ -73,16 +80,12 @@ static_library("ESP32_custom") { "ConfigurationManagerImpl.h", "ConnectivityManagerImpl.cpp", "ConnectivityManagerImpl.h", - "DeviceInfoProviderImpl.cpp", - "DeviceInfoProviderImpl.h", "DeviceNetworkProvisioningDelegateImpl.cpp", "DeviceNetworkProvisioningDelegateImpl.h", "DiagnosticDataProviderImpl.cpp", "DiagnosticDataProviderImpl.h", "ESP32Config.cpp", "ESP32Config.h", - "ESP32FactoryDataProvider.cpp", - "ESP32FactoryDataProvider.h", "ESP32Utils.cpp", "ESP32Utils.h", "KeyValueStoreManagerImpl.cpp", @@ -111,7 +114,7 @@ static_library("ESP32_custom") { ] public_configs = [ - ":ESP32_custom_include", + ":ESP32_custom_include", ] if (chip_enable_ota_requestor) { @@ -134,4 +137,18 @@ static_library("ESP32_custom") { ] } } + + if (chip_use_factory_data_provider) { + sources += [ + "ESP32FactoryDataProvider.cpp", + "ESP32FactoryDataProvider.h", + ] + } + + if (chip_use_device_info_provider) { + sources += [ + "ESP32DeviceInfoProvider.cpp", + "ESP32DeviceInfoProvider.h", + ] + } } diff --git a/examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.cpp b/examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.cpp deleted file mode 120000 index 161aed415..000000000 --- a/examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.cpp +++ /dev/null @@ -1 +0,0 @@ -../../../../connectedhomeip/connectedhomeip/src/platform/ESP32/DeviceInfoProviderImpl.cpp \ No newline at end of file diff --git a/examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.h b/examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.h deleted file mode 120000 index 9362a3ab0..000000000 --- a/examples/blemesh_bridge/platform/ESP32_custom/DeviceInfoProviderImpl.h +++ /dev/null @@ -1 +0,0 @@ -../../../../connectedhomeip/connectedhomeip/src/platform/ESP32/DeviceInfoProviderImpl.h \ No newline at end of file diff --git a/examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.cpp b/examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.cpp new file mode 120000 index 000000000..02a4a292b --- /dev/null +++ b/examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.cpp @@ -0,0 +1 @@ +../../../../connectedhomeip/connectedhomeip/src/platform/ESP32/ESP32DeviceInfoProvider.cpp \ No newline at end of file diff --git a/examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.h b/examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.h new file mode 120000 index 000000000..087987b00 --- /dev/null +++ b/examples/blemesh_bridge/platform/ESP32_custom/ESP32DeviceInfoProvider.h @@ -0,0 +1 @@ +../../../../connectedhomeip/connectedhomeip/src/platform/ESP32/ESP32DeviceInfoProvider.h \ No newline at end of file diff --git a/examples/common/app_qrcode/app_qrcode.cpp b/examples/common/app_qrcode/app_qrcode.cpp index 8cb1c8c25..58d3d144f 100644 --- a/examples/common/app_qrcode/app_qrcode.cpp +++ b/examples/common/app_qrcode/app_qrcode.cpp @@ -71,9 +71,9 @@ esp_err_t app_qrcode_get_payload(char **qrcode_text, char **short_manual_code_te /* Set details */ payload.version = 0; - payload.discriminator = discriminator; + payload.discriminator.SetLongValue(discriminator); payload.setUpPINCode = setup_pin_code; - payload.rendezvousInformation = RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE); + payload.rendezvousInformation.SetValue(RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); payload.vendorID = vendor_id; payload.productID = product_id; diff --git a/examples/common/external_platform/BUILD.gn b/examples/common/external_platform/BUILD.gn index 1d65a2a33..5e1e374bd 100644 --- a/examples/common/external_platform/BUILD.gn +++ b/examples/common/external_platform/BUILD.gn @@ -17,6 +17,13 @@ import("//build_overrides/chip.gni") import("${chip_root}/build/chip/buildconfig_header.gni") import("${chip_root}/src/platform/device.gni") +declare_args() { + # By default use default/example implementation of CommissionableDataProvider, + # DeviceAttestationCredentialsProvider and DeviceInstanceInforProvider + chip_use_factory_data_provider = false + chip_use_device_info_provider = false +} + config("ESP32_custom_include") { include_dirs = [ "../../" ] } @@ -24,7 +31,7 @@ config("ESP32_custom_include") { buildconfig_header("custom_buildconfig") { header = "CHIPDeviceBuildConfig.h" header_dir = "platform" - + defines = [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=false", "CHIP_ENABLE_OPENTHREAD=${chip_enable_openthread}", @@ -44,7 +51,7 @@ buildconfig_header("custom_buildconfig") { "INET_CONFIG_INCLUDE=", "SYSTEM_PLATFORM_CONFIG_INCLUDE=", ] - + if (chip_enable_ota_requestor) { defines += [ "CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR=1" ] } @@ -56,7 +63,7 @@ group("platform_buildconfig") { ] public_configs = [ - ":ESP32_custom_include", + ":ESP32_custom_include", ] } @@ -70,8 +77,6 @@ static_library("ESP32_custom") { "ConfigurationManagerImpl.h", "ConnectivityManagerImpl.cpp", "ConnectivityManagerImpl.h", - "DeviceInfoProviderImpl.cpp", - "DeviceInfoProviderImpl.h", "DeviceNetworkProvisioningDelegateImpl.cpp", "DeviceNetworkProvisioningDelegateImpl.h", "DiagnosticDataProviderImpl.cpp", @@ -107,7 +112,7 @@ static_library("ESP32_custom") { ] public_configs = [ - ":ESP32_custom_include", + ":ESP32_custom_include", ] if (chip_enable_ota_requestor) { @@ -116,4 +121,18 @@ static_library("ESP32_custom") { "OTAImageProcessorImpl.h", ] } + + if (chip_use_factory_data_provider) { + sources += [ + "ESP32FactoryDataProvider.cpp", + "ESP32FactoryDataProvider.h", + ] + } + + if (chip_use_device_info_provider) { + sources += [ + "ESP32DeviceInfoProvider.cpp", + "ESP32DeviceInfoProvider.h", + ] + } }