mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix(protocomm): Remove the configuration check of wifi_provisioning for protocomm component
This commit is contained in:
parent
6b1f40b9bf
commit
7bfd475528
@ -26,4 +26,17 @@ menu "Protocomm"
|
|||||||
Disabling this option saves some code size.
|
Disabling this option saves some code size.
|
||||||
Consult the Enabling protocomm security version section of the
|
Consult the Enabling protocomm security version section of the
|
||||||
Protocomm documentation in ESP-IDF Programming guide for more details.
|
Protocomm documentation in ESP-IDF Programming guide for more details.
|
||||||
|
|
||||||
|
config ESP_PROTOCOMM_KEEP_BLE_ON_AFTER_BLE_STOP
|
||||||
|
bool
|
||||||
|
depends on BT_ENABLED
|
||||||
|
help
|
||||||
|
Keep BT on after calling protocomm_ble_stop
|
||||||
|
|
||||||
|
config ESP_PROTOCOMM_DISCONNECT_AFTER_BLE_STOP
|
||||||
|
bool
|
||||||
|
depends on ESP_PROTOCOMM_KEEP_BLE_ON_AFTER_BLE_STOP
|
||||||
|
help
|
||||||
|
Terminate connection after calling protocomm_ble_stop
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -325,9 +325,7 @@ esp_err_t simple_ble_stop(void)
|
|||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_WIFI_PROV_DISCONNECT_AFTER_PROV
|
|
||||||
esp_err_t simple_ble_disconnect(void)
|
esp_err_t simple_ble_disconnect(void)
|
||||||
{
|
{
|
||||||
return esp_ble_gap_disconnect(s_cached_remote_bda);
|
return esp_ble_gap_disconnect(s_cached_remote_bda);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
@ -104,7 +104,6 @@ esp_err_t simple_ble_stop(void);
|
|||||||
*/
|
*/
|
||||||
const uint8_t *simple_ble_get_uuid128(uint16_t handle);
|
const uint8_t *simple_ble_get_uuid128(uint16_t handle);
|
||||||
|
|
||||||
#ifdef CONFIG_WIFI_PROV_DISCONNECT_AFTER_PROV
|
|
||||||
/** Terminates connection
|
/** Terminates connection
|
||||||
*
|
*
|
||||||
* This API is called to initiate disconnection
|
* This API is called to initiate disconnection
|
||||||
@ -112,5 +111,4 @@ const uint8_t *simple_ble_get_uuid128(uint16_t handle);
|
|||||||
* @return ESP_OK on success, and appropriate error code for failure
|
* @return ESP_OK on success, and appropriate error code for failure
|
||||||
*/
|
*/
|
||||||
esp_err_t simple_ble_disconnect(void);
|
esp_err_t simple_ble_disconnect(void);
|
||||||
#endif
|
|
||||||
#endif /* _SIMPLE_BLE_ */
|
#endif /* _SIMPLE_BLE_ */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2018-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -332,13 +332,11 @@ static void transport_simple_ble_disconnect(esp_gatts_cb_event_t event, esp_gatt
|
|||||||
esp_err_t ret;
|
esp_err_t ret;
|
||||||
ESP_LOGD(TAG, "Inside disconnect w/ session - %d", param->disconnect.conn_id);
|
ESP_LOGD(TAG, "Inside disconnect w/ session - %d", param->disconnect.conn_id);
|
||||||
|
|
||||||
#ifdef CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
|
||||||
/* Ignore BLE events received after protocomm layer is stopped */
|
/* Ignore BLE events received after protocomm layer is stopped */
|
||||||
if (protoble_internal == NULL) {
|
if (protoble_internal == NULL) {
|
||||||
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (protoble_internal->pc_ble->sec &&
|
if (protoble_internal->pc_ble->sec &&
|
||||||
protoble_internal->pc_ble->sec->close_transport_session) {
|
protoble_internal->pc_ble->sec->close_transport_session) {
|
||||||
@ -360,13 +358,11 @@ static void transport_simple_ble_connect(esp_gatts_cb_event_t event, esp_gatt_if
|
|||||||
esp_err_t ret;
|
esp_err_t ret;
|
||||||
ESP_LOGD(TAG, "Inside BLE connect w/ conn_id - %d", param->connect.conn_id);
|
ESP_LOGD(TAG, "Inside BLE connect w/ conn_id - %d", param->connect.conn_id);
|
||||||
|
|
||||||
#ifdef CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
|
||||||
/* Ignore BLE events received after protocomm layer is stopped */
|
/* Ignore BLE events received after protocomm layer is stopped */
|
||||||
if (protoble_internal == NULL) {
|
if (protoble_internal == NULL) {
|
||||||
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (protoble_internal->pc_ble->sec &&
|
if (protoble_internal->pc_ble->sec &&
|
||||||
protoble_internal->pc_ble->sec->new_transport_session) {
|
protoble_internal->pc_ble->sec->new_transport_session) {
|
||||||
@ -613,23 +609,23 @@ esp_err_t protocomm_ble_stop(protocomm_t *pc)
|
|||||||
(pc == protoble_internal->pc_ble)) {
|
(pc == protoble_internal->pc_ble)) {
|
||||||
esp_err_t ret = ESP_OK;
|
esp_err_t ret = ESP_OK;
|
||||||
|
|
||||||
#ifndef CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
#ifdef CONFIG_ESP_PROTOCOMM_KEEP_BLE_ON_AFTER_BLE_STOP
|
||||||
/* If flag is not enabled, stop the stack. */
|
#ifdef CONFIG_ESP_PROTOCOMM_DISCONNECT_AFTER_BLE_STOP
|
||||||
ret = simple_ble_stop();
|
|
||||||
if (ret) {
|
|
||||||
ESP_LOGE(TAG, "BLE stop failed");
|
|
||||||
}
|
|
||||||
simple_ble_deinit();
|
|
||||||
#else
|
|
||||||
#ifdef CONFIG_WIFI_PROV_DISCONNECT_AFTER_PROV
|
|
||||||
/* Keep BT stack on, but terminate the connection after provisioning */
|
/* Keep BT stack on, but terminate the connection after provisioning */
|
||||||
ret = simple_ble_disconnect();
|
ret = simple_ble_disconnect();
|
||||||
if (ret) {
|
if (ret) {
|
||||||
ESP_LOGE(TAG, "BLE disconnect failed");
|
ESP_LOGE(TAG, "BLE disconnect failed");
|
||||||
}
|
}
|
||||||
simple_ble_deinit();
|
simple_ble_deinit();
|
||||||
#endif // CONFIG_WIFI_PROV_DISCONNECT_AFTER_PROV
|
#endif // CONFIG_ESP_PROTOCOMM_DISCONNECT_AFTER_BLE_STOP
|
||||||
#endif // CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
#else
|
||||||
|
/* If flag is not enabled, stop the stack. */
|
||||||
|
ret = simple_ble_stop();
|
||||||
|
if (ret) {
|
||||||
|
ESP_LOGE(TAG, "BLE stop failed");
|
||||||
|
}
|
||||||
|
simple_ble_deinit();
|
||||||
|
#endif // CONFIG_ESP_PROTOCOMM_KEEP_BLE_ON_AFTER_BLE_STOP
|
||||||
|
|
||||||
protocomm_ble_cleanup();
|
protocomm_ble_cleanup();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2019-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -556,13 +556,12 @@ static void transport_simple_ble_disconnect(struct ble_gap_event *event, void *a
|
|||||||
ESP_LOGD(TAG, "Inside disconnect w/ session - %d",
|
ESP_LOGD(TAG, "Inside disconnect w/ session - %d",
|
||||||
event->disconnect.conn.conn_handle);
|
event->disconnect.conn.conn_handle);
|
||||||
|
|
||||||
#ifdef CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
|
||||||
/* Ignore BLE events received after protocomm layer is stopped */
|
/* Ignore BLE events received after protocomm layer is stopped */
|
||||||
if (protoble_internal == NULL) {
|
if (protoble_internal == NULL) {
|
||||||
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (protoble_internal->pc_ble->sec &&
|
if (protoble_internal->pc_ble->sec &&
|
||||||
protoble_internal->pc_ble->sec->close_transport_session) {
|
protoble_internal->pc_ble->sec->close_transport_session) {
|
||||||
ret =
|
ret =
|
||||||
@ -583,13 +582,11 @@ static void transport_simple_ble_connect(struct ble_gap_event *event, void *arg)
|
|||||||
esp_err_t ret;
|
esp_err_t ret;
|
||||||
ESP_LOGD(TAG, "Inside BLE connect w/ conn_id - %d", event->connect.conn_handle);
|
ESP_LOGD(TAG, "Inside BLE connect w/ conn_id - %d", event->connect.conn_handle);
|
||||||
|
|
||||||
#ifdef CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
|
||||||
/* Ignore BLE events received after protocomm layer is stopped */
|
/* Ignore BLE events received after protocomm layer is stopped */
|
||||||
if (protoble_internal == NULL) {
|
if (protoble_internal == NULL) {
|
||||||
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
ESP_LOGI(TAG,"Protocomm layer has already stopped");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (protoble_internal->pc_ble->sec &&
|
if (protoble_internal->pc_ble->sec &&
|
||||||
protoble_internal->pc_ble->sec->new_transport_session) {
|
protoble_internal->pc_ble->sec->new_transport_session) {
|
||||||
@ -993,23 +990,23 @@ esp_err_t protocomm_ble_stop(protocomm_t *pc)
|
|||||||
rc);
|
rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
#ifdef CONFIG_ESP_PROTOCOMM_KEEP_BLE_ON_AFTER_BLE_STOP
|
||||||
/* If flag is enabled, don't stop the stack. User application can start a new advertising to perform its BT activities */
|
#ifdef CONFIG_ESP_PROTOCOMM_DISCONNECT_AFTER_BLE_STOP
|
||||||
ret = nimble_port_stop();
|
|
||||||
if (ret == 0) {
|
|
||||||
nimble_port_deinit();
|
|
||||||
}
|
|
||||||
free_gatt_ble_misc_memory(ble_cfg_p);
|
|
||||||
#else
|
|
||||||
#ifdef CONFIG_WIFI_PROV_DISCONNECT_AFTER_PROV
|
|
||||||
/* Keep BT stack on, but terminate the connection after provisioning */
|
/* Keep BT stack on, but terminate the connection after provisioning */
|
||||||
rc = ble_gap_terminate(s_cached_conn_handle, BLE_ERR_REM_USER_CONN_TERM);
|
rc = ble_gap_terminate(s_cached_conn_handle, BLE_ERR_REM_USER_CONN_TERM);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
ESP_LOGI(TAG, "Error in terminating connection rc = %d",rc);
|
ESP_LOGI(TAG, "Error in terminating connection rc = %d",rc);
|
||||||
}
|
}
|
||||||
free_gatt_ble_misc_memory(ble_cfg_p);
|
free_gatt_ble_misc_memory(ble_cfg_p);
|
||||||
#endif // CONFIG_WIFI_PROV_DISCONNECT_AFTER_PROV
|
#endif // CONFIG_ESP_PROTOCOMM_DISCONNECT_AFTER_BLE_STOP
|
||||||
#endif // CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
#else
|
||||||
|
/* If flag is enabled, don't stop the stack. User application can start a new advertising to perform its BT activities */
|
||||||
|
ret = nimble_port_stop();
|
||||||
|
if (ret == 0) {
|
||||||
|
nimble_port_deinit();
|
||||||
|
}
|
||||||
|
free_gatt_ble_misc_memory(ble_cfg_p);
|
||||||
|
#endif // CONFIG_ESP_PROTOCOMM_KEEP_BLE_ON_AFTER_BLE_STOP
|
||||||
|
|
||||||
protocomm_ble_cleanup();
|
protocomm_ble_cleanup();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -39,11 +39,13 @@ menu "Wi-Fi Provisioning Manager"
|
|||||||
config WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
config WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
||||||
bool "Keep BT on after provisioning is done"
|
bool "Keep BT on after provisioning is done"
|
||||||
depends on BT_ENABLED
|
depends on BT_ENABLED
|
||||||
|
select ESP_PROTOCOMM_KEEP_BLE_ON_AFTER_BLE_STOP
|
||||||
|
|
||||||
config WIFI_PROV_DISCONNECT_AFTER_PROV
|
config WIFI_PROV_DISCONNECT_AFTER_PROV
|
||||||
bool "Terminate connection after provisioning is done"
|
bool "Terminate connection after provisioning is done"
|
||||||
depends on WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
depends on WIFI_PROV_KEEP_BLE_ON_AFTER_PROV
|
||||||
default y
|
default y
|
||||||
|
select ESP_PROTOCOMM_DISCONNECT_AFTER_BLE_STOP
|
||||||
|
|
||||||
choice WIFI_PROV_STA_SCAN_METHOD
|
choice WIFI_PROV_STA_SCAN_METHOD
|
||||||
bool "Wifi Provisioning Scan Method"
|
bool "Wifi Provisioning Scan Method"
|
||||||
|
Loading…
Reference in New Issue
Block a user