mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 17:19:09 -04:00
Merge branch 'bugfix/deprecate_link_estab_v5.0' into 'release/v5.0'
fix(nimble): Deprecate link_estab event (v5.0) See merge request espressif/esp-idf!37061
This commit is contained in:
commit
57ed699feb
@ -1 +1 @@
|
|||||||
Subproject commit 24d566d2f8e3efc61947f2c118c5dd7c70a27528
|
Subproject commit 8f7f3a4b5770f023c471d0027fabf947bb430046
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -139,16 +139,16 @@ dynamic_service_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
case BLE_GAP_EVENT_CONNECT:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
dynamic_service_print_conn_desc(&desc);
|
dynamic_service_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising. */
|
/* Connection failed; resume advertising. */
|
||||||
dynamic_service_advertise();
|
dynamic_service_advertise();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -424,13 +424,13 @@ enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
enc_adv_data_cent_connect_if_interesting(&event->disc);
|
enc_adv_data_cent_connect_if_interesting(&event->disc);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
/* Connection successfully established. */
|
/* Connection successfully established. */
|
||||||
MODLOG_DFLT(INFO, "Connection established ");
|
MODLOG_DFLT(INFO, "Connection established ");
|
||||||
|
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
MODLOG_DFLT(INFO, "");
|
MODLOG_DFLT(INFO, "");
|
||||||
@ -440,29 +440,29 @@ enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ble_gattc_exchange_mtu(event->link_estab.conn_handle, NULL, NULL);
|
rc = ble_gattc_exchange_mtu(event->connect.conn_handle, NULL, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to negotiate MTU; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to negotiate MTU; rc = %d", rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->link_estab.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = peer_set_addr(event->link_estab.conn_handle, desc.peer_id_addr.val);
|
rc = peer_set_addr(event->connect.conn_handle, desc.peer_id_addr.val);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to set peer addr; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to set peer addr; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Authorization is required for this characterisitc */
|
/** Authorization is required for this characterisitc */
|
||||||
rc = ble_gap_security_initiate(event->link_estab.conn_handle);
|
rc = ble_gap_security_initiate(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(INFO, "Security could not be initiated, rc = %d\n", rc);
|
MODLOG_DFLT(INFO, "Security could not be initiated, rc = %d\n", rc);
|
||||||
return ble_gap_terminate(event->link_estab.conn_handle,
|
return ble_gap_terminate(event->connect.conn_handle,
|
||||||
BLE_ERR_REM_USER_CONN_TERM);
|
BLE_ERR_REM_USER_CONN_TERM);
|
||||||
} else {
|
} else {
|
||||||
MODLOG_DFLT(INFO, "Connection secured\n");
|
MODLOG_DFLT(INFO, "Connection secured\n");
|
||||||
@ -471,7 +471,7 @@ enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
enc_adv_data_cent_scan();
|
enc_adv_data_cent_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -185,19 +185,19 @@ enc_adv_data_prph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
enc_adv_data_prph_print_conn_desc(&desc);
|
enc_adv_data_prph_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising. */
|
/* Connection failed; resume advertising. */
|
||||||
enc_adv_data_prph_advertise();
|
enc_adv_data_prph_advertise();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -488,19 +488,19 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
ble_htp_cent_connect_if_interesting(&event->disc);
|
ble_htp_cent_connect_if_interesting(&event->disc);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
/* Connection successfully established. */
|
/* Connection successfully established. */
|
||||||
MODLOG_DFLT(INFO, "Connection established ");
|
MODLOG_DFLT(INFO, "Connection established ");
|
||||||
|
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->link_estab.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
@ -513,17 +513,17 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
* Encryption (Enable encryption)
|
* Encryption (Enable encryption)
|
||||||
* Will invoke event BLE_GAP_EVENT_ENC_CHANGE
|
* Will invoke event BLE_GAP_EVENT_ENC_CHANGE
|
||||||
**/
|
**/
|
||||||
rc = ble_gap_security_initiate(event->link_estab.conn_handle);
|
rc = ble_gap_security_initiate(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(INFO, "Security could not be initiated, rc = %d\n", rc);
|
MODLOG_DFLT(INFO, "Security could not be initiated, rc = %d\n", rc);
|
||||||
return ble_gap_terminate(event->link_estab.conn_handle,
|
return ble_gap_terminate(event->connect.conn_handle,
|
||||||
BLE_ERR_REM_USER_CONN_TERM);
|
BLE_ERR_REM_USER_CONN_TERM);
|
||||||
} else {
|
} else {
|
||||||
MODLOG_DFLT(INFO, "Connection secured\n");
|
MODLOG_DFLT(INFO, "Connection secured\n");
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* Perform service discovery */
|
/* Perform service discovery */
|
||||||
rc = peer_disc_all(event->link_estab.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_htp_cent_on_disc_complete, NULL);
|
ble_htp_cent_on_disc_complete, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
@ -533,7 +533,7 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
ble_htp_cent_scan();
|
ble_htp_cent_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -566,7 +566,7 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
#if CONFIG_EXAMPLE_ENCRYPTION
|
#if CONFIG_EXAMPLE_ENCRYPTION
|
||||||
/*** Go for service discovery after encryption has been successfully enabled ***/
|
/*** Go for service discovery after encryption has been successfully enabled ***/
|
||||||
rc = peer_disc_all(event->link_estab.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_htp_cent_on_disc_complete, NULL);
|
ble_htp_cent_on_disc_complete, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -230,13 +230,13 @@ static int
|
|||||||
ble_htp_prph_gap_event(struct ble_gap_event *event, void *arg)
|
ble_htp_prph_gap_event(struct ble_gap_event *event, void *arg)
|
||||||
{
|
{
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed */
|
/* A new connection was established or a connection attempt failed */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d\n",
|
MODLOG_DFLT(INFO, "connection %s; status=%d\n",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising */
|
/* Connection failed; resume advertising */
|
||||||
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
||||||
ext_ble_htp_prph_advertise();
|
ext_ble_htp_prph_advertise();
|
||||||
@ -245,7 +245,7 @@ ble_htp_prph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
conn_handle = event->link_estab.conn_handle;
|
conn_handle = event->connect.conn_handle;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_DISCONNECT:
|
case BLE_GAP_EVENT_DISCONNECT:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -412,32 +412,32 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
blecent_connect_if_interesting(&event->disc);
|
blecent_connect_if_interesting(&event->disc);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
/* Connection successfully established. */
|
/* Connection successfully established. */
|
||||||
MODLOG_DFLT(INFO, "Connection established ");
|
MODLOG_DFLT(INFO, "Connection established ");
|
||||||
|
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
#if MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM) >= 1
|
#if MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM) >= 1
|
||||||
conn_handle_coc = event->link_estab.conn_handle;
|
conn_handle_coc = event->connect.conn_handle;
|
||||||
disc_cb = blecent_l2cap_coc_on_disc_complete;
|
disc_cb = blecent_l2cap_coc_on_disc_complete;
|
||||||
#else
|
#else
|
||||||
disc_cb = blecent_on_disc_complete;
|
disc_cb = blecent_on_disc_complete;
|
||||||
#endif
|
#endif
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->link_estab.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Perform service discovery. */
|
/* Perform service discovery. */
|
||||||
rc = peer_disc_all(event->link_estab.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
disc_cb, NULL);
|
disc_cb, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
@ -446,7 +446,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
blecent_scan();
|
blecent_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -317,19 +317,19 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
bleprph_print_conn_desc(&desc);
|
bleprph_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising. */
|
/* Connection failed; resume advertising. */
|
||||||
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
||||||
ext_bleprph_advertise();
|
ext_bleprph_advertise();
|
||||||
@ -337,7 +337,7 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
bleprph_advertise();
|
bleprph_advertise();
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
bleprph_print_conn_desc(&desc);
|
bleprph_print_conn_desc(&desc);
|
||||||
#if MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM) >= 1
|
#if MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM) >= 1
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -337,13 +337,13 @@ ble_multi_adv_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
ble_multi_adv_print_conn_desc(&desc);
|
ble_multi_adv_print_conn_desc(&desc);
|
||||||
|
|
||||||
|
@ -73,10 +73,10 @@ gap_event_cb(struct ble_gap_event *event, void *arg)
|
|||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
|
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
ESP_LOGI(TAG, "[Connection established], conn_handle = 0x%02x, Adv handle = 0x%0x, status = 0x%0x\n",event->link_estab.conn_handle, event->link_estab.adv_handle, event->link_estab.status);
|
ESP_LOGI(TAG, "[Connection established], conn_handle = 0x%02x, Adv handle = 0x%0x, status = 0x%0x\n",event->connect.conn_handle, event->connect.adv_handle, event->connect.status);
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@ gap_event_cb(struct ble_gap_event *event, void *arg)
|
|||||||
ESP_LOGE(TAG,"Failed to find Conn Information");
|
ESP_LOGE(TAG,"Failed to find Conn Information");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGW(TAG, "[Connection Failed], conn_handle = 0x%02x, Adv handle = 0x%0x, status = 0x%0x\n",event->link_estab.conn_handle, event->link_estab.adv_handle, event->link_estab.status);
|
ESP_LOGW(TAG, "[Connection Failed], conn_handle = 0x%02x, Adv handle = 0x%0x, status = 0x%0x\n",event->connect.conn_handle, event->connect.adv_handle, event->connect.status);
|
||||||
conn = 0;
|
conn = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,10 +65,10 @@ gap_event_cb(struct ble_gap_event *event, void *arg)
|
|||||||
struct ble_gap_ext_disc_desc *disc;
|
struct ble_gap_ext_disc_desc *disc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
ESP_LOGI(TAG, "Connection established, conn_handle = 0x%0x, sync handle= 0x%02x, status = 0x%0x\n",event->link_estab.conn_handle, event->link_estab.sync_handle, event->link_estab.status);
|
ESP_LOGI(TAG, "Connection established, conn_handle = 0x%0x, sync handle= 0x%02x, status = 0x%0x\n",event->connect.conn_handle, event->connect.sync_handle, event->connect.status);
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
@ -76,7 +76,7 @@ gap_event_cb(struct ble_gap_event *event, void *arg)
|
|||||||
ESP_LOGE(TAG,"Failed to find Conn Information");
|
ESP_LOGE(TAG,"Failed to find Conn Information");
|
||||||
}
|
}
|
||||||
} else{
|
} else{
|
||||||
ESP_LOGW(TAG, "[Connection Failed], conn_handle = 0x%02x, sync handle = 0x%0x, status = 0x%0x\n",event->link_estab.conn_handle, event->link_estab.sync_handle, event->link_estab.status);
|
ESP_LOGW(TAG, "[Connection Failed], conn_handle = 0x%02x, sync handle = 0x%0x, status = 0x%0x\n",event->connect.conn_handle, event->connect.sync_handle, event->connect.status);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -347,9 +347,9 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
/* Connection successfully established. */
|
/* Connection successfully established. */
|
||||||
|
|
||||||
switch (s_current_phy) {
|
switch (s_current_phy) {
|
||||||
@ -367,20 +367,20 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->link_estab.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Perform service discovery. */
|
/* Perform service discovery. */
|
||||||
rc = peer_disc_all(event->link_estab.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
blecent_on_disc_complete, NULL);
|
blecent_on_disc_complete, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
@ -389,7 +389,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
blecent_scan();
|
blecent_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -183,19 +183,19 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
bleprph_print_conn_desc(&desc);
|
bleprph_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising. */
|
/* Connection failed; resume advertising. */
|
||||||
ext_bleprph_advertise();
|
ext_bleprph_advertise();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -271,27 +271,27 @@ ble_spp_client_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
ble_spp_client_connect_if_interesting(&event->disc);
|
ble_spp_client_connect_if_interesting(&event->disc);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
/* Connection successfully established. */
|
/* Connection successfully established. */
|
||||||
MODLOG_DFLT(INFO, "Connection established ");
|
MODLOG_DFLT(INFO, "Connection established ");
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
memcpy(&connected_addr[event->link_estab.conn_handle].val, desc.peer_id_addr.val,
|
memcpy(&connected_addr[event->connect.conn_handle].val, desc.peer_id_addr.val,
|
||||||
PEER_ADDR_VAL_SIZE);
|
PEER_ADDR_VAL_SIZE);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->link_estab.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Perform service discovery. */
|
/* Perform service discovery. */
|
||||||
rc = peer_disc_all(event->link_estab.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_spp_client_on_disc_complete, NULL);
|
ble_spp_client_on_disc_complete, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
@ -300,7 +300,7 @@ ble_spp_client_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
ble_spp_client_scan();
|
ble_spp_client_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -141,18 +141,18 @@ ble_spp_server_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
ble_spp_server_print_conn_desc(&desc);
|
ble_spp_server_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
if (event->link_estab.status != 0 || CONFIG_BT_NIMBLE_MAX_CONNECTIONS > 1) {
|
if (event->connect.status != 0 || CONFIG_BT_NIMBLE_MAX_CONNECTIONS > 1) {
|
||||||
/* Connection failed or if multiple connection allowed; resume advertising. */
|
/* Connection failed or if multiple connection allowed; resume advertising. */
|
||||||
ble_spp_server_advertise();
|
ble_spp_server_advertise();
|
||||||
}
|
}
|
||||||
|
@ -696,26 +696,26 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
blecent_connect_if_interesting(&event->disc);
|
blecent_connect_if_interesting(&event->disc);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
/* Connection successfully established. */
|
/* Connection successfully established. */
|
||||||
MODLOG_DFLT(INFO, "Connection established ");
|
MODLOG_DFLT(INFO, "Connection established ");
|
||||||
|
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->link_estab.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
||||||
blecent_power_control(event->link_estab.conn_handle);
|
blecent_power_control(event->connect.conn_handle);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CONFIG_EXAMPLE_ENCRYPTION
|
#if CONFIG_EXAMPLE_ENCRYPTION
|
||||||
@ -725,17 +725,17 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
* Encryption (Enable encryption)
|
* Encryption (Enable encryption)
|
||||||
* Will invoke event BLE_GAP_EVENT_ENC_CHANGE
|
* Will invoke event BLE_GAP_EVENT_ENC_CHANGE
|
||||||
**/
|
**/
|
||||||
rc = ble_gap_security_initiate(event->link_estab.conn_handle);
|
rc = ble_gap_security_initiate(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(INFO, "Security could not be initiated, rc = %d\n", rc);
|
MODLOG_DFLT(INFO, "Security could not be initiated, rc = %d\n", rc);
|
||||||
return ble_gap_terminate(event->link_estab.conn_handle,
|
return ble_gap_terminate(event->connect.conn_handle,
|
||||||
BLE_ERR_REM_USER_CONN_TERM);
|
BLE_ERR_REM_USER_CONN_TERM);
|
||||||
} else {
|
} else {
|
||||||
MODLOG_DFLT(INFO, "Connection secured\n");
|
MODLOG_DFLT(INFO, "Connection secured\n");
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* Perform service discovery */
|
/* Perform service discovery */
|
||||||
rc = peer_disc_all(event->link_estab.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
blecent_on_disc_complete, NULL);
|
blecent_on_disc_complete, NULL);
|
||||||
if(rc != 0) {
|
if(rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
@ -745,7 +745,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
blecent_scan();
|
blecent_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,17 +184,17 @@ static int
|
|||||||
blehr_gap_event(struct ble_gap_event *event, void *arg)
|
blehr_gap_event(struct ble_gap_event *event, void *arg)
|
||||||
{
|
{
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed */
|
/* A new connection was established or a connection attempt failed */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d\n",
|
MODLOG_DFLT(INFO, "connection %s; status=%d\n",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising */
|
/* Connection failed; resume advertising */
|
||||||
blehr_advertise();
|
blehr_advertise();
|
||||||
}
|
}
|
||||||
conn_handle = event->link_estab.conn_handle;
|
conn_handle = event->connect.conn_handle;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_DISCONNECT:
|
case BLE_GAP_EVENT_DISCONNECT:
|
||||||
|
@ -242,19 +242,19 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
bleprph_print_conn_desc(&desc);
|
bleprph_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising. */
|
/* Connection failed; resume advertising. */
|
||||||
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
||||||
ext_bleprph_advertise();
|
ext_bleprph_advertise();
|
||||||
@ -264,7 +264,7 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
||||||
bleprph_power_control(event->link_estab.conn_handle);
|
bleprph_power_control(event->connect.conn_handle);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -389,18 +389,18 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
ESP_LOGI(TAG, "connection %s; status=%d ",
|
ESP_LOGI(TAG, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
bleprph_print_conn_desc(&desc);
|
bleprph_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising. */
|
/* Connection failed; resume advertising. */
|
||||||
bleprph_advertise();
|
bleprph_advertise();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -282,19 +282,19 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
MODLOG_DFLT(INFO, "connection %s; status=%d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
bleprph_print_conn_desc(&desc);
|
bleprph_print_conn_desc(&desc);
|
||||||
}
|
}
|
||||||
MODLOG_DFLT(INFO, "\n");
|
MODLOG_DFLT(INFO, "\n");
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising. */
|
/* Connection failed; resume advertising. */
|
||||||
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
#if CONFIG_EXAMPLE_EXTENDED_ADV
|
||||||
ext_bleprph_advertise();
|
ext_bleprph_advertise();
|
||||||
@ -304,7 +304,7 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
||||||
bleprph_power_control(event->link_estab.conn_handle);
|
bleprph_power_control(event->connect.conn_handle);
|
||||||
|
|
||||||
ble_gap_event_listener_register(&power_control_event_listener,
|
ble_gap_event_listener_register(&power_control_event_listener,
|
||||||
bleprph_gap_power_event, NULL);
|
bleprph_gap_power_event, NULL);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -538,13 +538,13 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
blecent_connect_if_interesting(&event->disc);
|
blecent_connect_if_interesting(&event->disc);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed. */
|
/* A new connection was established or a connection attempt failed. */
|
||||||
if (event->link_estab.status == 0) {
|
if (event->connect.status == 0) {
|
||||||
/* Connection successfully established. */
|
/* Connection successfully established. */
|
||||||
/* XXX Set packet length in controller for better throughput */
|
/* XXX Set packet length in controller for better throughput */
|
||||||
ESP_LOGI(tag, "Connection established ");
|
ESP_LOGI(tag, "Connection established ");
|
||||||
rc = ble_hs_hci_util_set_data_len(event->link_estab.conn_handle,
|
rc = ble_hs_hci_util_set_data_len(event->connect.conn_handle,
|
||||||
LL_PACKET_LENGTH, LL_PACKET_TIME);
|
LL_PACKET_LENGTH, LL_PACKET_TIME);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Set packet length failed; rc = %d", rc);
|
ESP_LOGE(tag, "Set packet length failed; rc = %d", rc);
|
||||||
@ -555,29 +555,29 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ble_gattc_exchange_mtu(event->link_estab.conn_handle, NULL, NULL);
|
rc = ble_gattc_exchange_mtu(event->connect.conn_handle, NULL, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to negotiate MTU; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to negotiate MTU; rc = %d", rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc);
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
|
|
||||||
rc = ble_gap_update_params(event->link_estab.conn_handle, &conn_params);
|
rc = ble_gap_update_params(event->connect.conn_handle, &conn_params);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to update params; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to update params; rc = %d", rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->link_estab.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to add peer; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to add peer; rc = %d", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Perform service discovery. */
|
/* Perform service discovery. */
|
||||||
rc = peer_disc_all(event->link_estab.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
blecent_on_disc_complete, NULL);
|
blecent_on_disc_complete, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to discover services; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to discover services; rc = %d", rc);
|
||||||
@ -586,7 +586,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
ESP_LOGE(tag, "Error: Connection failed; status = %d",
|
ESP_LOGE(tag, "Error: Connection failed; status = %d",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
blecent_scan();
|
blecent_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -238,29 +238,29 @@ gatts_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case BLE_GAP_EVENT_LINK_ESTAB:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
/* A new connection was established or a connection attempt failed */
|
/* A new connection was established or a connection attempt failed */
|
||||||
ESP_LOGI(tag, "connection %s; status = %d ",
|
ESP_LOGI(tag, "connection %s; status = %d ",
|
||||||
event->link_estab.status == 0 ? "established" : "failed",
|
event->connect.status == 0 ? "established" : "failed",
|
||||||
event->link_estab.status);
|
event->connect.status);
|
||||||
rc = ble_att_set_preferred_mtu(PREFERRED_MTU_VALUE);
|
rc = ble_att_set_preferred_mtu(PREFERRED_MTU_VALUE);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event->link_estab.status != 0) {
|
if (event->connect.status != 0) {
|
||||||
/* Connection failed; resume advertising */
|
/* Connection failed; resume advertising */
|
||||||
gatts_advertise();
|
gatts_advertise();
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ble_hs_hci_util_set_data_len(event->link_estab.conn_handle,
|
rc = ble_hs_hci_util_set_data_len(event->connect.conn_handle,
|
||||||
LL_PACKET_LENGTH,
|
LL_PACKET_LENGTH,
|
||||||
LL_PACKET_TIME);
|
LL_PACKET_TIME);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Set packet length failed");
|
ESP_LOGE(tag, "Set packet length failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
conn_handle = event->link_estab.conn_handle;
|
conn_handle = event->connect.conn_handle;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_DISCONNECT:
|
case BLE_GAP_EVENT_DISCONNECT:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user