@@ -62,43 +62,48 @@ void CommonDeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, i
62
62
63
63
case DeviceEventType::kCHIPoBLEConnectionClosed :
64
64
ESP_LOGI (TAG, " CHIPoBLE disconnected" );
65
- #if CONFIG_BT_ENABLED
66
- #if CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
67
65
66
+ #if CONFIG_BT_ENABLED && CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
68
67
if (chip::Server::GetInstance ().GetFabricTable ().FabricCount () > 0 )
69
68
{
70
69
esp_err_t err = ESP_OK;
70
+
71
71
#if CONFIG_BT_NIMBLE_ENABLED
72
- if (ble_hs_is_enabled ())
72
+ if (!ble_hs_is_enabled ())
73
+ {
74
+ ESP_LOGI (TAG, " BLE already deinited" );
75
+ break ;
76
+ }
77
+ if (nimble_port_stop () != 0 )
73
78
{
74
- int ret = nimble_port_stop ();
75
- if (ret == 0 )
76
- {
77
- nimble_port_deinit ();
79
+ ESP_LOGE (TAG, " nimble_port_stop() failed" );
80
+ break ;
81
+ }
82
+ vTaskDelay (100 );
83
+ nimble_port_deinit ();
84
+
78
85
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
79
- err = esp_nimble_hci_and_controller_deinit ();
80
- #endif // ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
81
- #endif // CONFIG_BT_NIMBLE_ENABLED
86
+ err = esp_nimble_hci_and_controller_deinit ();
87
+ #endif
88
+ #endif /* CONFIG_BT_NIMBLE_ENABLED */
82
89
83
90
#if CONFIG_IDF_TARGET_ESP32
84
- err + = esp_bt_mem_release (ESP_BT_MODE_BTDM);
91
+ err | = esp_bt_mem_release (ESP_BT_MODE_BTDM);
85
92
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32H2
86
- err + = esp_bt_mem_release (ESP_BT_MODE_BLE);
93
+ err | = esp_bt_mem_release (ESP_BT_MODE_BLE);
87
94
#endif
88
- if (err == ESP_OK)
89
- {
90
- ESP_LOGI (TAG, " BLE deinit successful and memory reclaimed" );
91
- }
92
- }
93
- else
94
- {
95
- ESP_LOGW (TAG, " nimble_port_stop() failed" );
96
- }
95
+
96
+ if (err != ESP_OK)
97
+ {
98
+ ESP_LOGE (TAG, " BLE deinit failed" );
99
+ }
100
+ else
101
+ {
102
+ ESP_LOGI (TAG, " BLE deinit successful and memory reclaimed" );
97
103
}
98
- else { ESP_LOGI (TAG, " BLE already deinited" ); }
99
104
}
100
- #endif // CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
101
- #endif // CONFIG_BT_ENABLED
105
+ #endif /* CONFIG_BT_ENABLED && CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING */
106
+
102
107
break ;
103
108
104
109
case DeviceEventType::kDnssdInitialized :
0 commit comments