Update chip submodule to latest master

This commit is contained in:
Rohit Jadhav
2024-08-19 17:15:45 +05:30
parent f4eaa699f0
commit 1bc18a1f5c
33 changed files with 267 additions and 19327 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ variables:
IDF_CHECKOUT_REF: "v5.2.1"
# This variable represents the short hash of the connectedhomeip submodule.
# Note: Do change this short hash on submodule update MRs.
CHIP_SHORT_HASH: "0460715589"
CHIP_SHORT_HASH: "ea679d2dc6"
DOCKER_IMAGE_NAME: "espressif/chip-idf"
.add_gitlab_ssh_key: &add_gitlab_ssh_key |
+1 -1
View File
@@ -29,7 +29,7 @@ section in the ESP-Matter Programming Guide.
## Supported ESP-IDF and connectedhomeip versions
- This SDK currently works with commit [0460715589](https://github.com/project-chip/connectedhomeip/tree/0460715589) of connectedhomeip.
- This SDK currently works with commit [ea679d2dc6](https://github.com/project-chip/connectedhomeip/tree/ea679d2dc6) of connectedhomeip.
- For Matter projects development with this SDK, it is recommended to utilize ESP-IDF [v5.2.1](https://github.com/espressif/esp-idf/tree/v5.2.1).
@@ -241,7 +241,7 @@ void DoorLockDelegateInitCB(void *delegate, uint16_t endpoint_id)
return;
}
DoorLock::Delegate *door_lock_delegate = static_cast<DoorLock::Delegate*>(delegate);
DoorLock::SetDefaultDelegate(endpoint_id, door_lock_delegate);
DoorLockServer::Instance().SetDelegate(endpoint_id, door_lock_delegate);
}
void BooleanStateConfigurationDelegateInitCB(void *delegate, uint16_t endpoint_id)
+5 -5
View File
@@ -536,7 +536,7 @@ namespace hue_saturation {
uint32_t get_id()
{
return (uint32_t)ColorControl::ColorCapabilities::kHueSaturationSupported;
return (uint32_t)ColorControl::ColorCapabilitiesBitmap::kHueSaturation;
}
esp_err_t add(cluster_t *cluster, config_t *config)
@@ -570,7 +570,7 @@ namespace color_temperature {
uint32_t get_id()
{
return (uint32_t)ColorControl::ColorCapabilities::kColorTemperatureSupported;
return (uint32_t)ColorControl::ColorCapabilitiesBitmap::kColorTemperature;
}
esp_err_t add(cluster_t *cluster, config_t *config)
@@ -603,7 +603,7 @@ namespace xy {
uint32_t get_id()
{
return (uint32_t)ColorControl::ColorCapabilities::kXYAttributesSupported;
return (uint32_t)ColorControl::ColorCapabilitiesBitmap::kXy;
}
esp_err_t add(cluster_t *cluster, config_t *config)
@@ -633,7 +633,7 @@ namespace enhanced_hue {
uint32_t get_id()
{
return (uint32_t)chip::app::Clusters::ColorControl::ColorCapabilities::kEnhancedHueSupported;
return (uint32_t)chip::app::Clusters::ColorControl::ColorCapabilitiesBitmap::kEnhancedHue;
}
esp_err_t add(cluster_t *cluster, config_t *config)
@@ -668,7 +668,7 @@ esp_err_t add(cluster_t *cluster, config_t *config)
namespace color_loop {
uint32_t get_id()
{
return (uint32_t)chip::app::Clusters::ColorControl::ColorCapabilities::kColorLoopSupported;
return (uint32_t)chip::app::Clusters::ColorControl::ColorCapabilitiesBitmap::kColorLoop;
}
esp_err_t add(cluster_t *cluster, config_t *config)
@@ -18,6 +18,7 @@ void MatterCarbonDioxideConcentrationMeasurementPluginServerInitCallback();
void MatterCarbonMonoxideConcentrationMeasurementPluginServerInitCallback();
void MatterChannelPluginServerInitCallback();
void MatterColorControlPluginServerInitCallback();
void MatterCommissionerControlPluginServerInitCallback();
void MatterContentAppObserverPluginServerInitCallback();
void MatterContentControlPluginServerInitCallback();
void MatterContentLauncherPluginServerInitCallback();
@@ -28,6 +29,7 @@ void MatterDiagnosticLogsPluginServerInitCallback();
void MatterDishwasherAlarmPluginServerInitCallback();
void MatterDishwasherModePluginServerInitCallback();
void MatterDoorLockPluginServerInitCallback();
void MatterEcosystemInformationPluginServerInitCallback();
void MatterElectricalEnergyMeasurementPluginServerInitCallback();
void MatterElectricalPowerMeasurementPluginServerInitCallback();
void MatterEnergyEvsePluginServerInitCallback();
@@ -112,6 +114,8 @@ void MatterUnitTestingPluginServerInitCallback();
void MatterUserLabelPluginServerInitCallback();
void MatterValveConfigurationAndControlPluginServerInitCallback();
void MatterWakeOnLanPluginServerInitCallback();
void MatterWaterHeaterManagementPluginServerInitCallback();
void MatterWaterHeaterModePluginServerInitCallback();
void MatterWiFiNetworkDiagnosticsPluginServerInitCallback();
void MatterWiFiNetworkManagementPluginServerInitCallback();
void MatterWindowCoveringPluginServerInitCallback();
@@ -96,6 +96,11 @@ void __attribute__((weak)) emberAfColorControlClusterInitCallback(EndpointId end
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfCommissionerControlClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfContentAppObserverClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -146,6 +151,11 @@ void __attribute__((weak)) emberAfDoorLockClusterInitCallback(EndpointId endpoin
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfEcosystemInformationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfElectricalEnergyMeasurementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -566,6 +576,16 @@ void __attribute__((weak)) emberAfWakeOnLanClusterInitCallback(EndpointId endpoi
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfWaterHeaterManagementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfWaterHeaterModeClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfWiFiNetworkDiagnosticsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -67,6 +67,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::ColorControl::Id:
emberAfColorControlClusterInitCallback(endpoint);
break;
case app::Clusters::CommissionerControl::Id:
emberAfCommissionerControlClusterInitCallback(endpoint);
break;
case app::Clusters::ContentAppObserver::Id:
emberAfContentAppObserverClusterInitCallback(endpoint);
break;
@@ -97,6 +100,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::DoorLock::Id:
emberAfDoorLockClusterInitCallback(endpoint);
break;
case app::Clusters::EcosystemInformation::Id:
emberAfEcosystemInformationClusterInitCallback(endpoint);
break;
case app::Clusters::ElectricalEnergyMeasurement::Id:
emberAfElectricalEnergyMeasurementClusterInitCallback(endpoint);
break;
@@ -349,6 +355,12 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::WakeOnLan::Id:
emberAfWakeOnLanClusterInitCallback(endpoint);
break;
case app::Clusters::WaterHeaterManagement::Id:
emberAfWaterHeaterManagementClusterInitCallback(endpoint);
break;
case app::Clusters::WaterHeaterMode::Id:
emberAfWaterHeaterModeClusterInitCallback(endpoint);
break;
case app::Clusters::WiFiNetworkDiagnostics::Id:
emberAfWiFiNetworkDiagnosticsClusterInitCallback(endpoint);
break;
@@ -11,6 +11,10 @@
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
0x0000001F, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Attribute: TCAcceptedVersion, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Attribute: TCMinRequiredVersion, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Attribute: TCAcknowledgements, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Attribute: TCAcknowledgementsRequired, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
@@ -26,15 +30,24 @@
0x00000101, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \
0x00000451, /* Cluster: Wi-Fi Network Management, Attribute: PassphraseSurrogate, Privilege: manage */ \
0x00000453, /* Cluster: Thread Network Directory, Attribute: PreferredExtendedPanID, Privilege: manage */ \
0x00000453, /* Cluster: Thread Network Directory, Attribute: ThreadNetworks, Privilege: operate */ \
0x0000050D, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \
0x00000750, /* Cluster: Ecosystem Information, Attribute: RemovedOn, Privilege: manage */ \
0x00000750, /* Cluster: Ecosystem Information, Attribute: DeviceDirectory, Privilege: manage */ \
0x00000750, /* Cluster: Ecosystem Information, Attribute: LocationDirectory, Privilege: manage */ \
0x00000751, /* Cluster: Commissioner Control, Attribute: SupportedDeviceCategories, Privilege: manage */ \
}
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
0x00000000, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x00000001, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
0x00000005, /* Cluster: General Commissioning, Attribute: TCAcceptedVersion, Privilege: administer */ \
0x00000006, /* Cluster: General Commissioning, Attribute: TCMinRequiredVersion, Privilege: administer */ \
0x00000007, /* Cluster: General Commissioning, Attribute: TCAcknowledgements, Privilege: administer */ \
0x00000008, /* Cluster: General Commissioning, Attribute: TCAcknowledgementsRequired, Privilege: administer */ \
0x00000000, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
0x00000001, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
0x00000005, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
@@ -50,15 +63,24 @@
0x00000084, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \
0x00000085, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \
0x00000086, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \
0x00000001, /* Cluster: Wi-Fi Network Management, Attribute: PassphraseSurrogate, Privilege: manage */ \
0x00000000, /* Cluster: Thread Network Directory, Attribute: PreferredExtendedPanID, Privilege: manage */ \
0x00000001, /* Cluster: Thread Network Directory, Attribute: ThreadNetworks, Privilege: operate */ \
0x00000007, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \
0x00000000, /* Cluster: Ecosystem Information, Attribute: RemovedOn, Privilege: manage */ \
0x00000001, /* Cluster: Ecosystem Information, Attribute: DeviceDirectory, Privilege: manage */ \
0x00000002, /* Cluster: Ecosystem Information, Attribute: LocationDirectory, Privilege: manage */ \
0x00000000, /* Cluster: Commissioner Control, Attribute: SupportedDeviceCategories, Privilege: manage */ \
}
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Attribute: TCAcceptedVersion, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Attribute: TCMinRequiredVersion, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Attribute: TCAcknowledgements, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Attribute: TCAcknowledgementsRequired, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
@@ -74,9 +96,14 @@
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Wi-Fi Network Management, Attribute: PassphraseSurrogate, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thread Network Directory, Attribute: PreferredExtendedPanID, Privilege: manage */ \
chip::Access::Privilege::kOperate, /* Cluster: Thread Network Directory, Attribute: ThreadNetworks, Privilege: operate */ \
chip::Access::Privilege::kAdminister, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Ecosystem Information, Attribute: RemovedOn, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Ecosystem Information, Attribute: DeviceDirectory, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Ecosystem Information, Attribute: LocationDirectory, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Commissioner Control, Attribute: SupportedDeviceCategories, Privilege: manage */ \
}
////////////////////////////////////////////////////////////////////////////////
@@ -176,6 +203,7 @@
0x00000301, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \
0x00000301, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \
0x00000301, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: HoldTime, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \
@@ -283,6 +311,7 @@
0x00000033, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \
0x00000034, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \
0x00000035, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \
0x00000003, /* Cluster: Occupancy Sensing, Attribute: HoldTime, Privilege: manage */ \
0x00000010, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000011, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000012, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \
@@ -390,6 +419,7 @@
chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: HoldTime, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \
@@ -412,9 +442,11 @@
0x00000004, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
0x0000001F, /* Cluster: Access Control, Command: ReviewFabricRestrictions, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: SetTCAcknowledgements, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
@@ -453,6 +485,8 @@
0x00000062, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
0x00000094, /* Cluster: Water Heater Management, Command: Boost, Privilege: manage */ \
0x00000094, /* Cluster: Water Heater Management, Command: CancelBoost, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
@@ -472,11 +506,8 @@
0x00000101, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \
0x00000201, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \
0x00000451, /* Cluster: Wi-Fi Network Management, Command: NetworkPassphraseRequest, Privilege: administer */ \
0x00000201, /* Cluster: Thermostat, Command: AtomicRequest, Privilege: manage */ \
0x00000451, /* Cluster: Wi-Fi Network Management, Command: NetworkPassphraseRequest, Privilege: manage */ \
0x00000452, /* Cluster: Thread Border Router Management, Command: GetActiveDatasetRequest, Privilege: manage */ \
0x00000452, /* Cluster: Thread Border Router Management, Command: GetPendingDatasetRequest, Privilege: manage */ \
0x00000452, /* Cluster: Thread Border Router Management, Command: SetActiveDatasetRequest, Privilege: manage */ \
@@ -487,6 +518,8 @@
0x0000050B, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \
0x0000050E, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \
0x0000050E, /* Cluster: Account Login, Command: Login, Privilege: administer */ \
0x00000751, /* Cluster: Commissioner Control, Command: RequestCommissioningApproval, Privilege: manage */ \
0x00000751, /* Cluster: Commissioner Control, Command: CommissionNode, Privilege: manage */ \
0xFFF1FC06, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
0xFFF1FC06, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}
@@ -499,9 +532,11 @@
0x00000003, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
0x00000005, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
0x00000000, /* Cluster: Access Control, Command: ReviewFabricRestrictions, Privilege: administer */ \
0x00000000, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
0x00000002, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
0x00000004, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
0x00000006, /* Cluster: General Commissioning, Command: SetTCAcknowledgements, Privilege: administer */ \
0x00000000, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
0x00000002, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
0x00000003, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
@@ -540,6 +575,8 @@
0x00000002, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000003, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000004, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
0x00000000, /* Cluster: Water Heater Management, Command: Boost, Privilege: manage */ \
0x00000001, /* Cluster: Water Heater Management, Command: CancelBoost, Privilege: manage */ \
0x0000000B, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
0x0000000C, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
0x0000000D, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
@@ -559,21 +596,20 @@
0x00000029, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \
0x00000001, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \
0x00000003, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \
0x00000007, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000008, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000009, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \
0x0000000A, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \
0x00000000, /* Cluster: Wi-Fi Network Management, Command: NetworkPassphraseRequest, Privilege: administer */ \
0x000000FE, /* Cluster: Thermostat, Command: AtomicRequest, Privilege: manage */ \
0x00000000, /* Cluster: Wi-Fi Network Management, Command: NetworkPassphraseRequest, Privilege: manage */ \
0x00000000, /* Cluster: Thread Border Router Management, Command: GetActiveDatasetRequest, Privilege: manage */ \
0x00000001, /* Cluster: Thread Border Router Management, Command: GetPendingDatasetRequest, Privilege: manage */ \
0x00000004, /* Cluster: Thread Border Router Management, Command: SetActiveDatasetRequest, Privilege: manage */ \
0x00000005, /* Cluster: Thread Border Router Management, Command: SetPendingDatasetRequest, Privilege: manage */ \
0x00000003, /* Cluster: Thread Border Router Management, Command: SetActiveDatasetRequest, Privilege: manage */ \
0x00000004, /* Cluster: Thread Border Router Management, Command: SetPendingDatasetRequest, Privilege: manage */ \
0x00000000, /* Cluster: Thread Network Directory, Command: AddNetwork, Privilege: manage */ \
0x00000001, /* Cluster: Thread Network Directory, Command: RemoveNetwork, Privilege: manage */ \
0x00000003, /* Cluster: Media Input, Command: RenameInput, Privilege: manage */ \
0x00000001, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \
0x00000000, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \
0x00000002, /* Cluster: Account Login, Command: Login, Privilege: administer */ \
0x00000000, /* Cluster: Commissioner Control, Command: RequestCommissioningApproval, Privilege: manage */ \
0x00000001, /* Cluster: Commissioner Control, Command: CommissionNode, Privilege: manage */ \
0x00000000, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
0x00000001, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}
@@ -586,9 +622,11 @@
chip::Access::Privilege::kManage, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Command: ReviewFabricRestrictions, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Command: SetTCAcknowledgements, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
@@ -627,6 +665,8 @@
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Water Heater Management, Command: Boost, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Water Heater Management, Command: CancelBoost, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
@@ -646,11 +686,8 @@
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Wi-Fi Network Management, Command: NetworkPassphraseRequest, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: AtomicRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Wi-Fi Network Management, Command: NetworkPassphraseRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thread Border Router Management, Command: GetActiveDatasetRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thread Border Router Management, Command: GetPendingDatasetRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thread Border Router Management, Command: SetActiveDatasetRequest, Privilege: manage */ \
@@ -661,6 +698,8 @@
chip::Access::Privilege::kManage, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Account Login, Command: Login, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Commissioner Control, Command: RequestCommissioningApproval, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Commissioner Control, Command: CommissionNode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}
@@ -671,21 +710,27 @@
#define GENERATED_ACCESS_READ_EVENT__CLUSTER { \
0x0000001F, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
0x00000453, /* Cluster: Thread Network Directory, Event: NetworkChanged, Privilege: operate */ \
0x0000001F, /* Cluster: Access Control, Event: AccessRestrictionEntryChanged, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Event: FabricRestrictionReviewUpdate, Privilege: administer */ \
0x00000751, /* Cluster: Commissioner Control, Event: CommissioningRequestResult, Privilege: manage */ \
}
// Parallel array data (cluster, *event*, privilege) for read event
#define GENERATED_ACCESS_READ_EVENT__EVENT { \
0x00000000, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
0x00000001, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
0x00000000, /* Cluster: Thread Network Directory, Event: NetworkChanged, Privilege: operate */ \
0x00000002, /* Cluster: Access Control, Event: AccessRestrictionEntryChanged, Privilege: administer */ \
0x00000003, /* Cluster: Access Control, Event: FabricRestrictionReviewUpdate, Privilege: administer */ \
0x00000000, /* Cluster: Commissioner Control, Event: CommissioningRequestResult, Privilege: manage */ \
}
// Parallel array data (cluster, event, *privilege*) for read event
#define GENERATED_ACCESS_READ_EVENT__PRIVILEGE { \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
chip::Access::Privilege::kOperate, /* Cluster: Thread Network Directory, Event: NetworkChanged, Privilege: operate */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Event: AccessRestrictionEntryChanged, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Event: FabricRestrictionReviewUpdate, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Commissioner Control, Event: CommissioningRequestResult, Privilege: manage */ \
}
////////////////////////////////////////////////////////////////////////////////
@@ -205,6 +205,8 @@
#define MATTER_DM_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT FIXED_ENDPOINT_COUNT // used in valve configuration and control
#define MATTER_DM_MESSAGES_CLUSTER_SERVER_ENDPOINT_COUNT FIXED_ENDPOINT_COUNT // used in message
#define MATTER_DM_DIAGNOSTIC_LOGS_CLUSTER_SERVER_ENDPOINT_COUNT FIXED_ENDPOINT_COUNT // used in diagnostic logs cluster
#define MATTER_DM_OCCUPANCY_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT FIXED_ENDPOINT_COUNT // used in occupancy sensing cluster
#define MATTER_DM_THERMOSTAT_CLUSTER_SERVER_ENDPOINT_COUNT FIXED_ENDPOINT_COUNT // used in thermostst cluster
#define MATTER_DM_MODE_SELECT_CLUSTER_SERVER_ENDPOINT_COUNT CONFIG_ESP_MATTER_MODE_SELECT_CLUSTER_ENDPOINT_COUNT // used in mode select
#define MATTER_DM_TEMPERATURE_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT CONFIG_ESP_MATTER_TEMPERATURE_CONTROL_CLUSTER_ENDPOINT_COUNT // used in temperature control
@@ -1,15 +1,21 @@
if(NOT DEFINED ENV{ESP_MATTER_PATH})
message(FATAL_ERROR "Please set ESP_MATTER_PATH to the path of esp-matter repo")
endif(NOT DEFINED ENV{ESP_MATTER_PATH})
set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH})
set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip)
set(src_dirs_list )
set(include_dirs_list )
set(exclude_srcs_list )
set(requires_list chip esp_matter esp_matter_console spiffs)
if (CONFIG_ESP_MATTER_CONTROLLER_ENABLE)
list(APPEND src_dirs_list "${CMAKE_CURRENT_SOURCE_DIR}/core"
"${CMAKE_CURRENT_SOURCE_DIR}/commands"
"${CMAKE_CURRENT_SOURCE_DIR}/logger/zap-generated")
"${MATTER_SDK_PATH}/zzz_generated/chip-tool/zap-generated/cluster/logging")
list(APPEND include_dirs_list "${CMAKE_CURRENT_SOURCE_DIR}/core"
"${CMAKE_CURRENT_SOURCE_DIR}/commands"
"${CMAKE_CURRENT_SOURCE_DIR}/logger")
"${MATTER_SDK_PATH}/zzz_generated/chip-tool"
"${MATTER_SDK_PATH}/examples/chip-tool/")
if (CONFIG_ESP_MATTER_ENABLE_MATTER_SERVER)
list(APPEND exclude_srcs_list "${CMAKE_CURRENT_SOURCE_DIR}/core/esp_matter_controller_client.cpp"
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <DataModelLogger.h>
#include <commands/clusters/DataModelLogger.h>
#include <controller/CommissioneeDeviceProxy.h>
#include <esp_check.h>
#include <esp_matter_controller_client.h>
@@ -43,14 +43,8 @@ esp_err_t decode_command_response(const ConcreteCommandPath &command_path, TLVRe
ESP_RETURN_ON_FALSE(reader, ESP_ERR_INVALID_ARG, TAG, "reader cannot be NULL");
ESP_RETURN_ON_FALSE(command_path.mClusterId == CommandResponseObjectT::GetClusterId() &&
command_path.mCommandId == CommandResponseObjectT::GetCommandId(),
ESP_ERR_INVALID_ARG, TAG, "Wrong command to decode");
CommandResponseObjectT response;
ESP_RETURN_ON_FALSE(chip::app::DataModel::Decode(*reader, response) == CHIP_NO_ERROR, ESP_FAIL, TAG,
"Failed to decode response ");
char header[64] = {0};
snprintf(header, 64, "cluster-0x%" PRIX32 ", command-0x%" PRIX32 " response:", command_path.mClusterId,
command_path.mCommandId);
DataModelLogger::LogValue(header, 1, response);
ESP_ERR_INVALID_ARG, TAG, "Wrong command to decode");
DataModelLogger::LogCommand(command_path, reader);
return ESP_OK;
}
@@ -20,7 +20,7 @@
#include <app/server/Server.h>
#include "DataModelLogger.h"
#include <commands/clusters/DataModelLogger.h>
using namespace chip::app::Clusters;
using namespace esp_matter::client;
@@ -19,7 +19,7 @@
#include <esp_matter_controller_client.h>
#include <esp_matter_controller_subscribe_command.h>
#include "DataModelLogger.h"
#include <commands/clusters/DataModelLogger.h>
using namespace chip::app::Clusters;
using namespace esp_matter::client;
@@ -1,196 +0,0 @@
/*
* 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.
*
*/
#pragma once
#include <string>
#include <app-common/zap-generated/cluster-objects.h>
#include <app/ConcreteAttributePath.h>
#include <app/ConcreteCommandPath.h>
#include <app/EventHeader.h>
#include <app/data-model/DecodableList.h>
#include <lib/support/BytesToHex.h>
class DataModelLogger
{
public:
static CHIP_ERROR LogAttribute(const chip::app::ConcreteDataAttributePath & path, chip::TLV::TLVReader * data);
static CHIP_ERROR LogCommand(const chip::app::ConcreteCommandPath & path, chip::TLV::TLVReader * data);
static CHIP_ERROR LogEvent(const chip::app::EventHeader & header, chip::TLV::TLVReader * data);
static CHIP_ERROR LogValue(const char * label, size_t indent, bool value)
{
DataModelLogger::LogString(label, indent, value ? "TRUE" : "FALSE");
return CHIP_NO_ERROR;
}
static CHIP_ERROR LogValue(const char * label, size_t indent, chip::CharSpan value)
{
DataModelLogger::LogString(label, indent, std::string(value.data(), value.size()));
return CHIP_NO_ERROR;
}
static CHIP_ERROR LogValue(const char * label, size_t indent, chip::ByteSpan value)
{
// CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE includes various prefixes we don't
// control (timestamps, process ids, etc). Let's assume (hope?) that
// those prefixes use up no more than half the total available space.
// Right now it looks like the prefixes are 45 chars out of a 255 char
// buffer.
char buffer[CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE / 2];
size_t prefixSize = ComputePrefixSize(label, indent);
if (prefixSize > ArraySize(buffer))
{
DataModelLogger::LogString("", 0, "Prefix is too long to fit in buffer");
return CHIP_ERROR_INTERNAL;
}
const size_t availableSize = ArraySize(buffer) - prefixSize;
// Each byte ends up as two hex characters.
const size_t bytesPerLogCall = availableSize / 2;
std::string labelStr(label);
while (value.size() > bytesPerLogCall)
{
ReturnErrorOnFailure(
chip::Encoding::BytesToUppercaseHexString(value.data(), bytesPerLogCall, &buffer[0], ArraySize(buffer)));
LogString(labelStr, indent, buffer);
value = value.SubSpan(bytesPerLogCall);
// For the second and following lines, make it clear that they are
// continuation lines by replacing the label with "....".
labelStr.replace(labelStr.begin(), labelStr.end(), labelStr.size(), '.');
}
ReturnErrorOnFailure(chip::Encoding::BytesToUppercaseHexString(value.data(), value.size(), &buffer[0], ArraySize(buffer)));
LogString(labelStr, indent, buffer);
return CHIP_NO_ERROR;
}
template <typename X,
typename std::enable_if_t<
std::is_integral<X>::value && !std::is_same<std::remove_cv_t<std::remove_reference_t<X>>, bool>::value, int> = 0>
static CHIP_ERROR LogValue(const char * label, size_t indent, X value)
{
DataModelLogger::LogString(label, indent, std::to_string(value));
return CHIP_NO_ERROR;
}
template <typename X, typename std::enable_if_t<std::is_floating_point<X>::value, int> = 0>
static CHIP_ERROR LogValue(const char * label, size_t indent, X value)
{
DataModelLogger::LogString(label, indent, std::to_string(value));
return CHIP_NO_ERROR;
}
template <typename X, typename std::enable_if_t<std::is_enum<X>::value, int> = 0>
static CHIP_ERROR LogValue(const char * label, size_t indent, X value)
{
DataModelLogger::LogValue(label, indent, chip::to_underlying(value));
return CHIP_NO_ERROR;
}
template <typename X>
static CHIP_ERROR LogValue(const char * label, size_t indent, chip::BitFlags<X> value)
{
DataModelLogger::LogValue(label, indent, value.Raw());
return CHIP_NO_ERROR;
}
template <typename T>
static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::DataModel::DecodableList<T> & value)
{
size_t count = 0;
CHIP_ERROR err = value.ComputeSize(&count);
if (err != CHIP_NO_ERROR)
{
return err;
}
DataModelLogger::LogString(label, indent, std::to_string(count) + " entries");
auto iter = value.begin();
size_t i = 0;
while (iter.Next())
{
++i;
std::string itemLabel = std::string("[") + std::to_string(i) + "]";
ReturnErrorOnFailure(DataModelLogger::LogValue(itemLabel.c_str(), indent + 1, iter.GetValue()));
}
if (iter.GetStatus() != CHIP_NO_ERROR)
{
DataModelLogger::LogString(indent + 1, "List truncated due to invalid value");
}
return iter.GetStatus();
}
template <typename T>
static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::DataModel::Nullable<T> & value)
{
if (value.IsNull())
{
DataModelLogger::LogString(label, indent, "null");
}
else
{
DataModelLogger::LogValue(label, indent, value.Value());
}
return CHIP_NO_ERROR;
}
template <typename T>
static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::Optional<T> & value)
{
if (value.HasValue())
{
DataModelLogger::LogValue(label, indent, value.Value());
}
return CHIP_NO_ERROR;
}
#include <zap-generated/DataModelLogger.h>
static void LogString(size_t indent, const std::string string) { LogString("", indent, string); }
static void LogString(const std::string label, size_t indent, const std::string string)
{
std::string prefix = ComputePrefix(label, indent);
ChipLogProgress(chipTool, "%s%s", prefix.c_str(), string.c_str());
}
private:
static std::string ComputePrefix(const std::string label, size_t indent)
{
std::string prefix;
for (size_t i = 0; i < indent; ++i)
{
prefix.append(" ");
}
if (label.size() > 0)
{
prefix.append(label);
prefix.append(":");
}
prefix.append(" ");
return prefix;
}
static size_t ComputePrefixSize(const std::string label, size_t indent) { return ComputePrefix(label, indent).size(); }
};
File diff suppressed because it is too large Load Diff
@@ -1,737 +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 <app-common/zap-generated/cluster-objects.h>
#include <lib/core/CHIPError.h>
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::detail::Structs::ModeTagStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::detail::Structs::ModeOptionStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::detail::Structs::ApplicationStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::detail::Structs::ErrorStateStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::detail::Structs::LabelStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::detail::Structs::OperationalStateStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Structs::AttributeValuePair::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Structs::ExtensionFieldSet::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Structs::SceneInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Descriptor::Structs::SemanticTagStruct::DecodableType & value);
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::AccessControlTargetStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Actions::Structs::ActionStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Actions::Structs::EndpointListStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BasicInformation::Structs::ProductAppearanceStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PowerSource::Structs::BatChargeFaultChangeType::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PowerSource::Structs::BatFaultChangeType::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfoStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResultStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResultStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTableStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTableStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Structs::FabricScopedTrustedTimeSourceStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Structs::TrustedTimeSourceStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::BridgedDeviceBasicInformation::Structs::ProductAppearanceStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::IcdManagement::Structs::MonitoringRegistrationStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ElectricalEnergyMeasurement::Structs::MeasurementAccuracyRangeStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ElectricalEnergyMeasurement::Structs::MeasurementAccuracyStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::HeatingSourceControlStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::PowerSavingsControlStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::DutyCycleControlStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::AverageLoadControlStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::TemperatureControlStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlEventTransitionStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlEventStruct::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlProgramStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Structs::CostStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Structs::SlotStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Structs::ForecastStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Structs::ConstraintsStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Structs::PowerAdjustStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Structs::SlotAdjustmentStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Structs::ChargingTargetStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyPreference::Structs::BalanceStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Structs::CredentialStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Thermostat::Structs::WeeklyScheduleTransitionStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::ProgramCastStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::ProgramCategoryStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::SeriesInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::ProgramStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::PageTokenStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::ChannelPagingStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::AdditionalInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Structs::LineupInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::MediaPlayback::Structs::TrackAttributesStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::TrackPreferenceStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::PlaybackPreferencesStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentControl::Structs::RatingNameStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Structs::NestedStruct::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Structs::NestedStructList::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::AccessControl::Events::AccessControlEntryChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::AccessControl::Events::AccessControlExtensionChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Actions::Events::StateChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Actions::Events::ActionFailed::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BasicInformation::Events::StartUp::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BasicInformation::Events::ShutDown::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BasicInformation::Events::Leave::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BasicInformation::Events::ReachableChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OtaSoftwareUpdateRequestor::Events::StateTransition::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OtaSoftwareUpdateRequestor::Events::VersionApplied::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OtaSoftwareUpdateRequestor::Events::DownloadError::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PowerSource::Events::WiredFaultChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PowerSource::Events::BatFaultChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PowerSource::Events::BatChargeFaultChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralDiagnostics::Events::HardwareFaultChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralDiagnostics::Events::RadioFaultChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralDiagnostics::Events::NetworkFaultChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralDiagnostics::Events::BootReason::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SoftwareDiagnostics::Events::SoftwareFault::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ThreadNetworkDiagnostics::Events::ConnectionStatus::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ThreadNetworkDiagnostics::Events::NetworkFaultChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::WiFiNetworkDiagnostics::Events::Disconnection::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::WiFiNetworkDiagnostics::Events::AssociationFailure::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::WiFiNetworkDiagnostics::Events::ConnectionStatus::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Events::DSTTableEmpty::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Events::DSTStatus::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Events::TimeZoneStatus::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Events::TimeFailure::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Events::MissingTrustedTimeSource::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BridgedDeviceBasicInformation::Events::StartUp::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BridgedDeviceBasicInformation::Events::ShutDown::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BridgedDeviceBasicInformation::Events::Leave::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::BridgedDeviceBasicInformation::Events::ReachableChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Switch::Events::SwitchLatched::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Switch::Events::InitialPress::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Switch::Events::LongPress::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Switch::Events::ShortRelease::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Switch::Events::LongRelease::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Switch::Events::MultiPressOngoing::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Switch::Events::MultiPressComplete::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BooleanState::Events::StateChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OvenCavityOperationalState::Events::OperationalError::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::OvenCavityOperationalState::Events::OperationCompletion::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::RefrigeratorAlarm::Events::Notify::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::SmokeAlarm::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::COAlarm::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::LowBattery::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::HardwareFault::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::EndOfService::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::SelfTestComplete::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::AlarmMuted::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::MuteEnded::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::InterconnectSmokeAlarm::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::InterconnectCOAlarm::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DishwasherAlarm::Events::Notify::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalState::Events::OperationalError::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalState::Events::OperationCompletion::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::RvcOperationalState::Events::OperationalError::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::RvcOperationalState::Events::OperationCompletion::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BooleanStateConfiguration::Events::AlarmsStateChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::BooleanStateConfiguration::Events::SensorFault::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ValveConfigurationAndControl::Events::ValveStateChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ValveConfigurationAndControl::Events::ValveFault::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ElectricalEnergyMeasurement::Events::CumulativeEnergyMeasured::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ElectricalEnergyMeasurement::Events::PeriodicEnergyMeasured::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::DemandResponseLoadControl::Events::LoadControlEventStatusChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Events::PowerAdjustStart::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Events::PowerAdjustEnd::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Events::Paused::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DeviceEnergyManagement::Events::Resumed::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Events::EVConnected::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Events::EVNotDetected::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Events::EnergyTransferStarted::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Events::EnergyTransferStopped::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Events::Fault::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Events::Rfid::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Events::DoorLockAlarm::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Events::DoorStateChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Events::LockOperation::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Events::LockOperationError::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Events::LockUserChange::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::SupplyVoltageLow::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::SupplyVoltageHigh::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::PowerMissingPhase::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::SystemPressureLow::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::SystemPressureHigh::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::DryRunning::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::MotorTemperatureHigh::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::PumpMotorFatalFailure::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::ElectronicTemperatureHigh::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::PumpBlocked::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::SensorFailure::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::ElectronicNonFatalFailure::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::ElectronicFatalFailure::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::GeneralFault::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::Leakage::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::AirDetection::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::PumpConfigurationAndControl::Events::TurbineOperation::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TargetNavigator::Events::TargetUpdated::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::MediaPlayback::Events::StateChanged::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::AccountLogin::Events::LoggedOut::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentControl::Events::RemainingScreenTimeExpired::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Events::TestEvent::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Events::TestFabricScopedEvent::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SampleMei::Events::PingCountEvent::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Commands::AddSceneResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Commands::ViewSceneResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Commands::RemoveSceneResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Commands::RemoveAllScenesResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Commands::StoreSceneResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Commands::GetSceneMembershipResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ScenesManagement::Commands::CopySceneResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::NetworkCommissioning::Commands::QueryIdentityResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GeneralDiagnostics::Commands::TimeSnapshotResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TimeSynchronization::Commands::SetTimeZoneResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::IcdManagement::Commands::RegisterClientResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::IcdManagement::Commands::StayActiveResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::OvenCavityOperationalState::Commands::OperationalCommandResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::OvenMode::Commands::ChangeToModeResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::LaundryWasherMode::Commands::ChangeToModeResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::RefrigeratorAndTemperatureControlledCabinetMode::Commands::ChangeToModeResponse::DecodableType &
value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::RvcRunMode::Commands::ChangeToModeResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::RvcCleanMode::Commands::ChangeToModeResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DishwasherMode::Commands::ChangeToModeResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::OperationalState::Commands::OperationalCommandResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::RvcOperationalState::Commands::OperationalCommandResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::EnergyEvse::Commands::GetTargetsResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::Channel::Commands::ProgramGuideResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentControl::Commands::ResetPINResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ContentAppObserver::Commands::ContentAppMessageResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoResponseCommand::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileResponseCommand::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestSpecificResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestAddArgumentsResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestEnumsResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::BooleanResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::SimpleStructResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventResponse::DecodableType & value);
static CHIP_ERROR
LogValue(const char * label, size_t indent,
const chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventResponse::DecodableType & value);
static CHIP_ERROR LogValue(const char * label, size_t indent,
const chip::app::Clusters::SampleMei::Commands::AddArgumentsResponse::DecodableType & value);
@@ -213,7 +213,7 @@ ThreadBRAttrAccess g_attr_access;
void thread_br_cluster_plugin_server_init_callback()
{
registerAttributeAccessOverride(&g_attr_access);
chip::app::AttributeAccessInterfaceRegistry::Instance().Register(&g_attr_access);
}
const function_generic_t function_list[] = {};
@@ -1,7 +1,7 @@
## IDF Component Manager Manifest File
dependencies:
espressif/esp_rcp_update:
version: "~1.0.0"
version: "~1.2.0"
rules:
- if: "idf_version >=5.0"
espressif/esp-serial-flasher:
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
@@ -28,31 +28,37 @@
#include "sdkconfig.h"
#if CONFIG_BT_NIMBLE_ENABLED
#ifdef CONFIG_BT_NIMBLE_ENABLED
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#include <ble/Ble.h>
#endif // CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#include <ble/BleLayer.h>
#endif
#include <ble/CHIPBleServiceData.h>
#include <lib/support/CodeUtils.h>
#include <lib/support/SafeInt.h>
#include <lib/support/logging/CHIPLogging.h>
#include <platform/CommissionableDataProvider.h>
#include <platform/DeviceInstanceInfoProvider.h>
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#include <platform/ESP32/BLEManagerImpl.h>
#endif
#endif // CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#include <platform/internal/BLEManager.h>
#include <setup_payload/AdditionalDataPayloadGenerator.h>
#include <system/SystemTimer.h>
#include "esp_bt.h"
#include "esp_log.h"
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
#include "esp_nimble_hci.h"
#endif
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#include "blecent.h"
#endif
#endif // CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#include "host/ble_hs.h"
#include "host/ble_hs_pvcy.h"
#include "host/ble_uuid.h"
@@ -62,22 +68,6 @@
#include "services/gap/ble_svc_gap.h"
#include "services/gatt/ble_svc_gatt.h"
#if CONFIG_BLE_MESH
#include "esp_ble_mesh_ble_api.h"
#include "esp_ble_mesh_common_api.h"
#include "esp_ble_mesh_defs.h"
#include "esp_ble_mesh_local_data_operation_api.h"
#include "esp_ble_mesh_low_power_api.h"
#include "esp_ble_mesh_networking_api.h"
#include "esp_ble_mesh_provisioning_api.h"
#include "esp_ble_mesh_proxy_api.h"
#include "esp_ble_mesh_config_model_api.h"
#include "esp_ble_mesh_generic_model_api.h"
#endif
#define MAX_ADV_DATA_LEN 31
#define CHIP_ADV_DATA_TYPE_FLAGS 0x01
#define CHIP_ADV_DATA_FLAGS 0x06
@@ -92,10 +82,10 @@ namespace Internal {
namespace {
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
static constexpr uint16_t kNewConnectionScanTimeout = 60;
static constexpr uint16_t kConnectTimeout = 20;
#endif
#endif // CONFIG_ENABLE_ESP32_BLE_CONTROLLER
struct ESP32ChipServiceData
{
@@ -105,27 +95,23 @@ struct ESP32ChipServiceData
const ble_uuid16_t ShortUUID_CHIPoBLEService = { BLE_UUID_TYPE_16, 0xFFF6 };
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
const ble_uuid16_t ShortUUID_CHIPoBLE_CharTx_Desc = { BLE_UUID_TYPE_16, 0x2902 };
#endif
#endif // CONFIG_ENABLE_ESP32_BLE_CONTROLLER
const ble_uuid128_t UUID128_CHIPoBLEChar_RX = {
BLE_UUID_TYPE_128, { 0x11, 0x9D, 0x9F, 0x42, 0x9C, 0x4F, 0x9F, 0x95, 0x59, 0x45, 0x3D, 0x26, 0xF5, 0x2E, 0xEE, 0x18 }
};
const ChipBleUUID chipUUID_CHIPoBLEChar_RX = { { 0x18, 0xEE, 0x2E, 0xF5, 0x26, 0x3D, 0x45, 0x59, 0x95, 0x9F, 0x4F, 0x9C, 0x42, 0x9F,
0x9D, 0x11 } };
const ChipBleUUID chipUUID_CHIPoBLEChar_TX = { { 0x18, 0xEE, 0x2E, 0xF5, 0x26, 0x3D, 0x45, 0x59, 0x95, 0x9F, 0x4F, 0x9C, 0x42, 0x9F,
0x9D, 0x12 } };
const ble_uuid128_t UUID_CHIPoBLEChar_TX = {
const ble_uuid128_t UUID_CHIPoBLEChar_TX = {
{ BLE_UUID_TYPE_128 }, { 0x12, 0x9D, 0x9F, 0x42, 0x9C, 0x4F, 0x9F, 0x95, 0x59, 0x45, 0x3D, 0x26, 0xF5, 0x2E, 0xEE, 0x18 }
};
#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING
#ifdef CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING
const ble_uuid128_t UUID_CHIPoBLEChar_C3 = {
{ BLE_UUID_TYPE_128 }, { 0x04, 0x8F, 0x21, 0x83, 0x8A, 0x74, 0x7D, 0xB8, 0xF2, 0x45, 0x72, 0x87, 0x38, 0x02, 0x63, 0x64 }
};
#endif
#endif // CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING
SemaphoreHandle_t semaphoreHandle = NULL;
@@ -135,7 +121,7 @@ uint8_t own_addr_type = BLE_OWN_ADDR_RANDOM;
} // unnamed namespace
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
ChipDeviceScanner & mDeviceScanner = Internal::ChipDeviceScanner::GetInstance();
#endif
BLEManagerImpl BLEManagerImpl::sInstance;
@@ -174,7 +160,7 @@ const struct ble_gatt_svc_def BLEManagerImpl::CHIPoBLEGATTAttrs[] = {
},
};
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
void BLEManagerImpl::HandleConnectFailed(CHIP_ERROR error)
{
if (sInstance.mIsCentral)
@@ -216,11 +202,6 @@ void BLEManagerImpl::ConnectDevice(const ble_addr_t & addr, uint16_t timeout)
ChipLogError(Ble, "Failed to connect to rc=%d", rc);
}
}
void HandleIncomingBleConnection(BLEEndPoint * bleEP)
{
ChipLogProgress(DeviceLayer, "CHIPoBLE connection received");
}
#endif
CHIP_ERROR BLEManagerImpl::_Init()
@@ -228,7 +209,7 @@ CHIP_ERROR BLEManagerImpl::_Init()
CHIP_ERROR err;
// Initialize the Chip BleLayer.
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
err = BleLayer::Init(this, this, this, &DeviceLayer::SystemLayer());
#else
err = BleLayer::Init(this, this, &DeviceLayer::SystemLayer());
@@ -240,15 +221,14 @@ CHIP_ERROR BLEManagerImpl::_Init()
mC3CharAttrHandle = 0;
#endif
mTXCharCCCDAttrHandle = 0;
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
mFlags.ClearAll().Set(Flags::kAdvertisingEnabled, CHIP_DEVICE_CONFIG_CHIPOBLE_ENABLE_ADVERTISING_AUTOSTART && !mIsCentral);
mFlags.Set(Flags::kFastAdvertisingEnabled, !mIsCentral);
OnChipBleConnectReceived = HandleIncomingBleConnection;
#else
mFlags.ClearAll().Set(Flags::kAdvertisingEnabled, CHIP_DEVICE_CONFIG_CHIPOBLE_ENABLE_ADVERTISING_AUTOSTART);
mFlags.Set(Flags::kFastAdvertisingEnabled, true);
#endif
mNumGAPCons = 0;
memset(reinterpret_cast<void *>(mCons), 0, sizeof(mCons));
mServiceMode = ConnectivityManager::kCHIPoBLEServiceMode_Enabled;
@@ -270,10 +250,6 @@ void BLEManagerImpl::_Shutdown()
mFlags.ClearAll().Set(Flags::kGATTServiceStarted);
mServiceMode = ConnectivityManager::kCHIPoBLEServiceMode_Disabled;
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
OnChipBleConnectReceived = nullptr;
#endif // CONFIG_ENABLE_ESP32_BLE_CONTROLLER
PlatformMgr().ScheduleWork(DriveBLEState, 0);
}
@@ -380,7 +356,7 @@ void BLEManagerImpl::_OnPlatformEvent(const ChipDeviceEvent * event)
switch (event->Type)
{
case DeviceEventType::kCHIPoBLESubscribe:
HandleSubscribeReceived(event->CHIPoBLESubscribe.ConId, &CHIP_BLE_SVC_ID, &chipUUID_CHIPoBLEChar_TX);
HandleSubscribeReceived(event->CHIPoBLESubscribe.ConId, &CHIP_BLE_SVC_ID, &Ble::CHIP_BLE_CHAR_2_UUID);
{
ChipDeviceEvent connectionEvent;
connectionEvent.Type = DeviceEventType::kCHIPoBLEConnectionEstablished;
@@ -389,16 +365,16 @@ void BLEManagerImpl::_OnPlatformEvent(const ChipDeviceEvent * event)
break;
case DeviceEventType::kCHIPoBLEUnsubscribe:
HandleUnsubscribeReceived(event->CHIPoBLEUnsubscribe.ConId, &CHIP_BLE_SVC_ID, &chipUUID_CHIPoBLEChar_TX);
HandleUnsubscribeReceived(event->CHIPoBLEUnsubscribe.ConId, &CHIP_BLE_SVC_ID, &Ble::CHIP_BLE_CHAR_2_UUID);
break;
case DeviceEventType::kCHIPoBLEWriteReceived:
HandleWriteReceived(event->CHIPoBLEWriteReceived.ConId, &CHIP_BLE_SVC_ID, &chipUUID_CHIPoBLEChar_RX,
HandleWriteReceived(event->CHIPoBLEWriteReceived.ConId, &CHIP_BLE_SVC_ID, &Ble::CHIP_BLE_CHAR_1_UUID,
PacketBufferHandle::Adopt(event->CHIPoBLEWriteReceived.Data));
break;
case DeviceEventType::kCHIPoBLEIndicateConfirm:
HandleIndicationConfirmation(event->CHIPoBLEIndicateConfirm.ConId, &CHIP_BLE_SVC_ID, &chipUUID_CHIPoBLEChar_TX);
HandleIndicationConfirmation(event->CHIPoBLEIndicateConfirm.ConId, &CHIP_BLE_SVC_ID, &Ble::CHIP_BLE_CHAR_2_UUID);
break;
case DeviceEventType::kCHIPoBLEConnectionError:
@@ -416,14 +392,14 @@ void BLEManagerImpl::_OnPlatformEvent(const ChipDeviceEvent * event)
break;
default:
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
HandlePlatformSpecificBLEEvent(event);
#endif
break;
}
}
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
void BLEManagerImpl::HandlePlatformSpecificBLEEvent(const ChipDeviceEvent * apEvent)
{
CHIP_ERROR err = CHIP_NO_ERROR;
@@ -449,20 +425,20 @@ void BLEManagerImpl::HandlePlatformSpecificBLEEvent(const ChipDeviceEvent * apEv
break;
case DeviceEventType::kPlatformESP32BLEWriteComplete:
HandleWriteConfirmation(apEvent->Platform.BLEWriteComplete.mConnection, &CHIP_BLE_SVC_ID, &chipUUID_CHIPoBLEChar_RX);
HandleWriteConfirmation(apEvent->Platform.BLEWriteComplete.mConnection, &CHIP_BLE_SVC_ID, &Ble::CHIP_BLE_CHAR_1_UUID);
break;
case DeviceEventType::kPlatformESP32BLESubscribeOpComplete:
if (apEvent->Platform.BLESubscribeOpComplete.mIsSubscribed)
HandleSubscribeComplete(apEvent->Platform.BLESubscribeOpComplete.mConnection, &CHIP_BLE_SVC_ID,
&chipUUID_CHIPoBLEChar_TX);
&Ble::CHIP_BLE_CHAR_2_UUID);
else
HandleUnsubscribeComplete(apEvent->Platform.BLESubscribeOpComplete.mConnection, &CHIP_BLE_SVC_ID,
&chipUUID_CHIPoBLEChar_TX);
&Ble::CHIP_BLE_CHAR_2_UUID);
break;
case DeviceEventType::kPlatformESP32BLEIndicationReceived:
HandleIndicationReceived(apEvent->Platform.BLEIndicationReceived.mConnection, &CHIP_BLE_SVC_ID, &chipUUID_CHIPoBLEChar_TX,
HandleIndicationReceived(apEvent->Platform.BLEIndicationReceived.mConnection, &CHIP_BLE_SVC_ID, &Ble::CHIP_BLE_CHAR_2_UUID,
PacketBufferHandle::Adopt(apEvent->Platform.BLEIndicationReceived.mData));
break;
@@ -508,13 +484,18 @@ static int OnSubscribeCharComplete(uint16_t conn_handle, const struct ble_gatt_e
}
#endif
bool BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId, const ChipBleUUID * charId)
CHIP_ERROR BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId,
const ChipBleUUID * charId)
{
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
const struct peer_dsc * dsc;
uint8_t value[2];
int rc;
struct peer * peer = peer_find(conId);
if (peer == nullptr)
{
return BLE_ERROR_GATT_SUBSCRIBE_FAILED;
}
dsc = peer_dsc_find_uuid(peer, (ble_uuid_t *) (&ShortUUID_CHIPoBLEService), (ble_uuid_t *) (&UUID_CHIPoBLEChar_TX),
(ble_uuid_t *) (&ShortUUID_CHIPoBLE_CharTx_Desc));
@@ -523,7 +504,7 @@ bool BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, const
{
ChipLogError(Ble, "Peer does not have CCCD");
ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM);
return false;
return BLE_ERROR_GATT_SUBSCRIBE_FAILED;
}
value[0] = 0x02;
@@ -534,21 +515,26 @@ bool BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, const
{
ChipLogError(Ble, "ble_gattc_write_flat failed: %d", rc);
ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM);
return false;
return BLE_ERROR_GATT_SUBSCRIBE_FAILED;
}
return true;
return CHIP_NO_ERROR;
#else
return false;
return CHIP_ERROR_NOT_IMPLEMENTED;
#endif
}
bool BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId, const ChipBleUUID * charId)
CHIP_ERROR BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId,
const ChipBleUUID * charId)
{
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
const struct peer_dsc * dsc;
uint8_t value[2];
int rc;
struct peer * peer = peer_find(conId);
if (peer == nullptr)
{
return BLE_ERROR_GATT_UNSUBSCRIBE_FAILED;
}
dsc = peer_dsc_find_uuid(peer, (ble_uuid_t *) (&ShortUUID_CHIPoBLEService), (ble_uuid_t *) (&UUID_CHIPoBLEChar_TX),
(ble_uuid_t *) (&ShortUUID_CHIPoBLE_CharTx_Desc));
@@ -557,7 +543,7 @@ bool BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, cons
{
ChipLogError(Ble, "Peer does not have CCCD");
ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM);
return false;
return BLE_ERROR_GATT_UNSUBSCRIBE_FAILED;
}
value[0] = 0x00;
@@ -568,15 +554,15 @@ bool BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, cons
{
ChipLogError(Ble, "ble_gattc_write_flat failed: %d", rc);
ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM);
return false;
return BLE_ERROR_GATT_UNSUBSCRIBE_FAILED;
}
return true;
return CHIP_NO_ERROR;
#else
return false;
return CHIP_ERROR_NOT_IMPLEMENTED;
#endif
}
bool BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId)
CHIP_ERROR BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId)
{
CHIP_ERROR err;
@@ -589,14 +575,14 @@ bool BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId)
ChipLogError(DeviceLayer, "ble_gap_terminate() failed: %s", ErrorStr(err));
}
#if !CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifndef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
// Force a refresh of the advertising state.
mFlags.Set(Flags::kAdvertisingRefreshNeeded);
mFlags.Clear(Flags::kAdvertisingConfigured);
PlatformMgr().ScheduleWork(DriveBLEState, 0);
#endif
return (err == CHIP_NO_ERROR);
return err;
}
uint16_t BLEManagerImpl::GetMTU(BLE_CONNECTION_OBJECT conId) const
@@ -604,8 +590,8 @@ uint16_t BLEManagerImpl::GetMTU(BLE_CONNECTION_OBJECT conId) const
return ble_att_mtu(conId);
}
bool BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId, const ChipBleUUID * charId,
chip::System::PacketBufferHandle data)
CHIP_ERROR BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId, const ChipBleUUID * charId,
chip::System::PacketBufferHandle data)
{
CHIP_ERROR err = CHIP_NO_ERROR;
struct os_mbuf * om;
@@ -614,6 +600,10 @@ bool BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const ChipBleUU
ESP_LOGD(TAG, "Sending indication for CHIPoBLE TX characteristic (con %u, len %u)", conId, data->DataLength());
// For BLE, the buffer is capped at UINT16_MAX. Nevertheless, have a verify
// check before the cast to uint16_t.
VerifyOrExit(CanCastTo<uint16_t>(data->DataLength()), err = CHIP_ERROR_MESSAGE_TOO_LONG);
om = ble_hs_mbuf_from_flat(data->Start(), static_cast<uint16_t>(data->DataLength()));
if (om == NULL)
{
@@ -630,15 +620,10 @@ bool BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const ChipBleUU
}
exit:
if (err != CHIP_NO_ERROR)
{
ChipLogError(DeviceLayer, "BLEManagerImpl::SendIndication() failed: %s", ErrorStr(err));
return false;
}
return true;
return err;
}
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
static int OnWriteComplete(uint16_t conn_handle, const struct ble_gatt_error * error, struct ble_gatt_attr * attr, void * arg)
{
ChipLogDetail(Ble, "Write complete; status:%d conn_handle:%d attr_handle:%d", error->status, conn_handle, attr->handle);
@@ -655,10 +640,10 @@ static int OnWriteComplete(uint16_t conn_handle, const struct ble_gatt_error * e
}
#endif
bool BLEManagerImpl::SendWriteRequest(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId, const ChipBleUUID * charId,
chip::System::PacketBufferHandle pBuf)
CHIP_ERROR BLEManagerImpl::SendWriteRequest(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId, const ChipBleUUID * charId,
chip::System::PacketBufferHandle pBuf)
{
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
const struct peer_chr * chr;
int rc;
const struct peer * peer = peer_find(conId);
@@ -668,23 +653,33 @@ bool BLEManagerImpl::SendWriteRequest(BLE_CONNECTION_OBJECT conId, const ChipBle
{
ChipLogError(Ble, "Peer does not have RX characteristic");
ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM);
return false;
return BLE_ERROR_GATT_WRITE_FAILED;
}
rc = ble_gattc_write_flat(conId, chr->chr.val_handle, pBuf->Start(), pBuf->DataLength(), OnWriteComplete, this);
if (pBuf->DataLength() > UINT16_MAX)
{
ChipLogError(Ble, "Buffer data Length is too long");
return CHIP_ERROR_INVALID_ARGUMENT;
}
rc = ble_gattc_write_flat(conId, chr->chr.val_handle, pBuf->Start(), static_cast<uint16_t>(pBuf->DataLength()), OnWriteComplete,
this);
if (rc != 0)
{
ChipLogError(Ble, "ble_gattc_write_flat failed: %d", rc);
ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM);
return false;
return BLE_ERROR_GATT_WRITE_FAILED;
}
return true;
return CHIP_NO_ERROR;
#else
return false;
return CHIP_ERROR_NOT_IMPLEMENTED;
#endif
}
void BLEManagerImpl::NotifyChipConnectionClosed(BLE_CONNECTION_OBJECT conId) {}
void BLEManagerImpl::NotifyChipConnectionClosed(BLE_CONNECTION_OBJECT conId)
{
ChipLogDetail(Ble, "Received notification of closed CHIPoBLE connection (con %u)", conId);
CloseConnection(conId);
}
CHIP_ERROR BLEManagerImpl::MapBLEError(int bleErr)
{
@@ -732,37 +727,6 @@ void BLEManagerImpl::StartBleAdvTimeoutTimer(uint32_t aTimeoutInMs)
ChipLogError(DeviceLayer, "Failed to start BledAdv timeout timer");
}
}
#if CONFIG_BLE_MESH
extern "C" esp_err_t app_ble_mesh_init(void);
static uint8_t chipoble_index = 0xFF;
static esp_ble_mesh_ble_adv_data_t chipoble_adv_packet = { 0 };
static struct ble_gap_event_listener chipoble_gap_event_listener = { 0 };
static void ble_mesh_ble_cb(esp_ble_mesh_ble_cb_event_t event, esp_ble_mesh_ble_cb_param_t * param)
{
switch (event)
{
case ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT:
ESP_LOGI(TAG, "ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT, index %d, err_code %d", param->start_ble_advertising_comp.index,
param->start_ble_advertising_comp.err_code);
chipoble_index = param->start_ble_advertising_comp.index;
break;
case ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT:
ESP_LOGI(TAG, "ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT, err_code %d", param->stop_ble_advertising_comp.err_code);
chipoble_index = 0xFF;
break;
default:
break;
}
return;
}
#endif
void BLEManagerImpl::DriveBLEState(void)
{
CHIP_ERROR err = CHIP_NO_ERROR;
@@ -844,41 +808,30 @@ void BLEManagerImpl::DriveBLEState(void)
{
if (mFlags.Has(Flags::kAdvertising))
{
#if CONFIG_BLE_MESH
if (chipoble_index != 0xFF)
#else
if (ble_gap_adv_active())
#endif
{
#if CONFIG_BLE_MESH
ChipLogError(DeviceLayer, "adv stop");
err = MapBLEError(esp_ble_mesh_stop_ble_advertising(chipoble_index));
#else
err = MapBLEError(ble_gap_adv_stop());
#endif
if (err != CHIP_NO_ERROR)
{
ChipLogError(DeviceLayer, "ble_gap_adv_stop() failed: %s", ErrorStr(err));
ExitNow();
}
}
// mFlags.Clear(Flags::kAdvertisingRefreshNeeded);
// Transition to the not Advertising state...
if (mFlags.Has(Flags::kAdvertising))
mFlags.Clear(Flags::kAdvertising);
mFlags.Set(Flags::kFastAdvertisingEnabled, true);
ChipLogProgress(DeviceLayer, "CHIPoBLE advertising stopped");
CancelBleAdvTimeoutTimer();
// Post a CHIPoBLEAdvertisingChange(Stopped) event.
{
mFlags.Clear(Flags::kAdvertising);
mFlags.Set(Flags::kFastAdvertisingEnabled, true);
ChipLogProgress(DeviceLayer, "CHIPoBLE advertising stopped");
// Post a CHIPoBLEAdvertisingChange(Stopped) event.
{
ChipDeviceEvent advChange;
advChange.Type = DeviceEventType::kCHIPoBLEAdvertisingChange;
advChange.CHIPoBLEAdvertisingChange.Result = kActivity_Stopped;
err = PlatformMgr().PostEvent(&advChange);
}
ChipDeviceEvent advChange;
advChange.Type = DeviceEventType::kCHIPoBLEAdvertisingChange;
advChange.CHIPoBLEAdvertisingChange.Result = kActivity_Stopped;
err = PlatformMgr().PostEvent(&advChange);
}
ExitNow();
@@ -1007,16 +960,10 @@ CHIP_ERROR BLEManagerImpl::InitESPBleLayer(void)
vSemaphoreDelete(semaphoreHandle);
semaphoreHandle = NULL;
err = bleprph_set_random_addr();
#if CONFIG_BLE_MESH
esp_ble_mesh_register_ble_callback(ble_mesh_ble_cb);
app_ble_mesh_init();
#endif
sInstance.mFlags.Set(Flags::kESPBLELayerInitialized);
sInstance.mFlags.Set(Flags::kGATTServiceStarted);
err = bleprph_set_random_addr();
exit:
return err;
}
@@ -1043,10 +990,10 @@ void BLEManagerImpl::ClaimBLEMemory(System::Layer *, void *)
// Free up all the space occupied by ble and add it to heap
esp_err_t err = ESP_OK;
#if CONFIG_IDF_TARGET_ESP32
#ifdef CONFIG_IDF_TARGET_ESP32
err = esp_bt_mem_release(ESP_BT_MODE_BTDM);
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32H2 || \
CONFIG_IDF_TARGET_ESP32C6
#elif defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || defined(CONFIG_IDF_TARGET_ESP32C6)
err = esp_bt_mem_release(ESP_BT_MODE_BLE);
#endif
@@ -1144,11 +1091,6 @@ CHIP_ERROR BLEManagerImpl::ConfigureAdvertisingData(void)
memcpy(&advData[index], &deviceIdInfo, sizeof(deviceIdInfo));
index = static_cast<uint8_t>(index + sizeof(deviceIdInfo));
#if CONFIG_BLE_MESH
chipoble_adv_packet.adv_data_len = sizeof(advData);
memcpy(chipoble_adv_packet.adv_data, advData, sizeof(advData));
ESP_LOGD(TAG, "set chipoble advertisement data");
#else
// Construct the Chip BLE Service Data to be sent in the scan response packet.
err = MapBLEError(ble_gap_adv_set_data(advData, sizeof(advData)));
if (err != CHIP_NO_ERROR)
@@ -1156,7 +1098,6 @@ CHIP_ERROR BLEManagerImpl::ConfigureAdvertisingData(void)
ChipLogError(DeviceLayer, "ble_gap_adv_set_data failed: %s %d", ErrorStr(err), discriminator);
ExitNow();
}
#endif
exit:
return err;
@@ -1319,7 +1260,7 @@ uint16_t BLEManagerImpl::_NumConnections(void)
return numCons;
}
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
void BLEManagerImpl::HandleGAPConnectionFailed(struct ble_gap_event * gapEvent, CHIP_ERROR error)
{
ChipLogError(Ble, "BLE GAP connection failed; status:%d", gapEvent->connect.status);
@@ -1408,7 +1349,7 @@ exit:
CHIP_ERROR BLEManagerImpl::HandleGAPConnect(struct ble_gap_event * gapEvent)
{
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
int rc;
rc = ble_gattc_exchange_mtu(gapEvent->connect.conn_handle, NULL, NULL);
@@ -1434,7 +1375,7 @@ CHIP_ERROR BLEManagerImpl::HandleGAPDisconnect(struct ble_gap_event * gapEvent)
mNumGAPCons--;
}
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
peer_delete(gapEvent->disconnect.conn.conn_handle);
#endif
@@ -1571,7 +1512,7 @@ int BLEManagerImpl::ble_svr_gap_event(struct ble_gap_event * event, void * arg)
ESP_LOGD(TAG, "BLE_GAP_EVENT_MTU = %d channel id = %d", event->mtu.value, event->mtu.channel_id);
break;
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
case BLE_GAP_EVENT_NOTIFY_RX:
ESP_LOGD(TAG, "BLE_GAP_EVENT_NOTIFY_RX received %s conn_handle:%d attr_handle:%d attr_len:%d",
event->notify_rx.indication ? "indication" : "notification", event->notify_rx.conn_handle,
@@ -1591,15 +1532,8 @@ exit:
sInstance.mServiceMode = ConnectivityManager::kCHIPoBLEServiceMode_Disabled;
}
#if CONFIG_BLE_MESH
if (event->type != BLE_GAP_EVENT_DISC)
{
#endif
// Schedule DriveBLEState() to run.
PlatformMgr().ScheduleWork(DriveBLEState, 0);
#if CONFIG_BLE_MESH
}
#endif
// Schedule DriveBLEState() to run.
PlatformMgr().ScheduleWork(DriveBLEState, 0);
return err.AsInteger();
}
@@ -1760,26 +1694,18 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void)
(((uint32_t) adv_params.itvl_min) * 10) / 16, (connectable) ? "" : "non-");
{
#if CONFIG_BLE_MESH
if (chipoble_index != 0xFF)
#else
if (ble_gap_adv_active())
#endif
{
/* Advertising is already active. Stop and restart with the new parameters */
ChipLogProgress(DeviceLayer, "Device already advertising, stop active advertisement and restart");
#if CONFIG_BLE_MESH
err = MapBLEError(esp_ble_mesh_stop_ble_advertising(chipoble_index));
#else
err = MapBLEError(ble_gap_adv_stop());
#endif
if (err != CHIP_NO_ERROR)
{
ChipLogError(DeviceLayer, "ble_gap_adv_stop() failed: %s, cannot restart", ErrorStr(err));
return err;
}
}
#if CONFIG_BT_NIMBLE_HOST_BASED_PRIVACY
#ifdef CONFIG_BT_NIMBLE_HOST_BASED_PRIVACY
else
{
err = MapBLEError(ble_hs_pvcy_rpa_config(NIMBLE_HOST_ENABLE_RPA));
@@ -1799,37 +1725,7 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void)
return err;
}
}
#if CONFIG_BLE_MESH
esp_ble_mesh_ble_adv_param_t chipoble_adv_param = {
// .interval = interval,
// .adv_type = BLE_MESH_ADV_IND,
.own_addr_type = own_addr_type,
.duration = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN,
.period = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX,
.count = 0XFFFF,
.priority = BLE_MESH_BLE_ADV_PRIO_LOW,
};
chipoble_adv_param.adv_type = connectable ? BLE_MESH_ADV_IND : BLE_MESH_ADV_NONCONN_IND;
// Advertise in fast mode if it is connectable advertisement and
// the application has expressly requested fast advertising.
if (connectable && mFlags.Has(Flags::kFastAdvertisingEnabled))
{
chipoble_adv_param.interval = CHIP_DEVICE_CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MIN;
}
else
{
chipoble_adv_param.interval = CHIP_DEVICE_CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN;
}
ble_gap_event_listener_register(&chipoble_gap_event_listener, ble_svr_gap_event, NULL);
err = MapBLEError(esp_ble_mesh_start_ble_advertising(&chipoble_adv_param, &chipoble_adv_packet));
ESP_LOGD(TAG, "start chipoble advertisement");
#else
err = MapBLEError(ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, &adv_params, ble_svr_gap_event, NULL));
#endif
if (err == CHIP_NO_ERROR)
{
return CHIP_NO_ERROR;
@@ -1847,13 +1743,15 @@ void BLEManagerImpl::DriveBLEState(intptr_t arg)
sInstance.DriveBLEState();
}
#if CONFIG_ENABLE_ESP32_BLE_CONTROLLER
#ifdef CONFIG_ENABLE_ESP32_BLE_CONTROLLER
CHIP_ERROR BLEManagerImpl::HandleRXNotify(struct ble_gap_event * ble_event)
{
uint8_t * data = OS_MBUF_DATA(ble_event->notify_rx.om, uint8_t *);
size_t dataLen = OS_MBUF_PKTLEN(ble_event->notify_rx.om);
System::PacketBufferHandle buf = System::PacketBufferHandle::NewWithData(data, dataLen);
uint16_t dataLen = OS_MBUF_PKTLEN(ble_event->notify_rx.om);
System::PacketBufferHandle buf = System::PacketBufferHandle::New(dataLen, 0);
VerifyOrReturnError(!buf.IsNull(), CHIP_ERROR_NO_MEMORY);
VerifyOrReturnError(buf->AvailableDataLength() >= dataLen, CHIP_ERROR_BUFFER_TOO_SMALL);
ble_hs_mbuf_to_flat(ble_event->notify_rx.om, buf->Start(), dataLen, NULL);
buf->SetDataLength(dataLen);
ChipLogDetail(DeviceLayer, "Indication received, conn = %d", ble_event->notify_rx.conn_handle);
@@ -1898,7 +1796,7 @@ void BLEManagerImpl::OnDeviceScanned(const struct ble_hs_adv_fields & fields, co
{
if (!mBLEScanConfig.mDiscriminator.MatchesLongDiscriminator(info.GetDeviceDiscriminator()))
{
printf("Discriminator didi not match \n");
ChipLogProgress(Ble, "Discriminator did not match");
return;
}
ChipLogProgress(Ble, "Device Discriminator match. Attempting to connect");
+3
View File
@@ -53,3 +53,6 @@ CONFIG_CHIP_PROJECT_CONFIG="main/matter_project_config.h"
# Increase console buffer length
CONFIG_CHIP_SHELL_CMD_LINE_BUF_MAX_LENGTH=512
# Disable WiFi network commissioning driver
CONFIG_WIFI_NETWORK_COMMISSIONING_DRIVER=n
@@ -92,3 +92,6 @@ CONFIG_MBEDTLS_HKDF_C=y
# Increase console buffer length
CONFIG_CHIP_SHELL_CMD_LINE_BUF_MAX_LENGTH=512
# Disable WiFi network commissioning driver
CONFIG_WIFI_NETWORK_COMMISSIONING_DRIVER=n
@@ -79,6 +79,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
+4
View File
@@ -30,3 +30,7 @@ CONFIG_SECURE_FLASH_ENC_ENABLED=y
CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE=y
CONFIG_DEVICE_VENDOR_ID=0x131B
# Disable STA and AP
CONFIG_ENABLE_WIFI_STATION=n
CONFIG_ENABLE_WIFI_AP=n
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
+1
View File
@@ -81,3 +81,4 @@ idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_LAUNDRY_DRYER_CONTROLS_C
idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_BOOLEAN_STATE_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND)
idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_MESSAGES_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND)
idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND)
idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_THERMOSTAT_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND)
@@ -83,6 +83,7 @@ CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_HAL_ASSERTION_DISABLE=y
# LWIP
CONFIG_LWIP_IPV4=n
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n