bt: Add option to ena/dis BLE service change registration
Add option to enable/disable automatic registration of BLE Gattc service change notify. Which sends in parralel (with user message flow) commands to BLE server which sometime leads to GATT_BUSY. (BLE server is able to handle only one command at time) Closes https://github.com/espressif/esp-idf/issues/1575 Merges https://github.com/espressif/esp-idf/pull/1673
This commit is contained in:
parent
2bfef060ba
commit
801632d68b
2 changed files with 17 additions and 6 deletions
|
@ -168,6 +168,15 @@ config BLE_SMP_ENABLE
|
|||
help
|
||||
This option can be close when the app not used the ble security connect.
|
||||
|
||||
config BLE_ENABLE_SRVCHG_REG
|
||||
bool "Enable automatic service change notify registration"
|
||||
depends on BLUEDROID_ENABLED
|
||||
default y
|
||||
help
|
||||
This option enables automatic registration of service change notification
|
||||
after connect. Be careful, it can may collide with your command sequences
|
||||
and lead to GATT_BUSY.
|
||||
|
||||
config BT_STACK_NO_LOG
|
||||
bool "Close the bluedroid bt stack log print"
|
||||
depends on BLUEDROID_ENABLED
|
||||
|
|
|
@ -1635,7 +1635,9 @@ static void bta_gattc_conn_cback(tGATT_IF gattc_if, BD_ADDR bda, UINT16 conn_id,
|
|||
|
||||
if ((transport == BT_TRANSPORT_LE) && (connected == TRUE) && (p_conn != NULL) \
|
||||
&& (p_conn->service_change_ccc_written == FALSE) && (p_conn->ccc_timer_used == FALSE)) {
|
||||
#ifdef CONFIG_BLE_ENABLE_SRVCHG_REG
|
||||
result = bta_gattc_register_service_change_notify(conn_id, bda, &start_ccc_timer);
|
||||
#endif
|
||||
if (start_ccc_timer == TRUE) {
|
||||
TIMER_LIST_ENT *ccc_timer = &(p_conn->service_change_ccc_timer);
|
||||
/* start a 1000ms timer to wait for service discovery finished */
|
||||
|
|
Loading…
Reference in a new issue