Skip to content

Commit

Permalink
[ESP32] Fix the parentheses and ifdefs during ble deinit (project-chi…
Browse files Browse the repository at this point in the history
…p#28628)

* [ESP32] Fix the parentheses and ifdefs during ble deinit

* Fix the compilation for bluedroid host
  • Loading branch information
shubhamdp authored and Alexi Poth committed Aug 15, 2023
1 parent 870ab5a commit c6ded28
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 25 deletions.
53 changes: 29 additions & 24 deletions examples/platform/esp32/common/CommonDeviceCallbacks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,43 +62,48 @@ void CommonDeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, i

case DeviceEventType::kCHIPoBLEConnectionClosed:
ESP_LOGI(TAG, "CHIPoBLE disconnected");
#if CONFIG_BT_ENABLED
#if CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING

#if CONFIG_BT_ENABLED && CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
if (chip::Server::GetInstance().GetFabricTable().FabricCount() > 0)
{
esp_err_t err = ESP_OK;

#if CONFIG_BT_NIMBLE_ENABLED
if (ble_hs_is_enabled())
if (!ble_hs_is_enabled())
{
ESP_LOGI(TAG, "BLE already deinited");
break;
}
if (nimble_port_stop() != 0)
{
int ret = nimble_port_stop();
if (ret == 0)
{
nimble_port_deinit();
ESP_LOGE(TAG, "nimble_port_stop() failed");
break;
}
vTaskDelay(100);
nimble_port_deinit();

#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
err = esp_nimble_hci_and_controller_deinit();
#endif // ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
#endif // CONFIG_BT_NIMBLE_ENABLED
err = esp_nimble_hci_and_controller_deinit();
#endif
#endif /* CONFIG_BT_NIMBLE_ENABLED */

#if CONFIG_IDF_TARGET_ESP32
err += esp_bt_mem_release(ESP_BT_MODE_BTDM);
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
err += esp_bt_mem_release(ESP_BT_MODE_BLE);
err |= esp_bt_mem_release(ESP_BT_MODE_BLE);
#endif
if (err == ESP_OK)
{
ESP_LOGI(TAG, "BLE deinit successful and memory reclaimed");
}
}
else
{
ESP_LOGW(TAG, "nimble_port_stop() failed");
}

if (err != ESP_OK)
{
ESP_LOGE(TAG, "BLE deinit failed");
}
else
{
ESP_LOGI(TAG, "BLE deinit successful and memory reclaimed");
}
else { ESP_LOGI(TAG, "BLE already deinited"); }
}
#endif // CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
#endif // CONFIG_BT_ENABLED
#endif /* CONFIG_BT_ENABLED && CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING */

break;

case DeviceEventType::kDnssdInitialized:
Expand Down
2 changes: 1 addition & 1 deletion src/platform/ESP32/bluedroid/BLEManagerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ CHIP_ERROR BLEManagerImpl::_Init()
#endif
SuccessOrExit(err);

memset(mCons, 0, sizeof(mCons));
memset(reinterpret_cast<void *>(mCons), 0, sizeof(mCons));
mServiceMode = ConnectivityManager::kCHIPoBLEServiceMode_Enabled;
mAppIf = ESP_GATT_IF_NONE;
mServiceAttrHandle = 0;
Expand Down

0 comments on commit c6ded28

Please sign in to comment.