diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/Kconfig.projbuild index 468ad311d6..7edc3ead9d 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/Kconfig.projbuild @@ -48,4 +48,9 @@ menu "A2DP Example Configuration" help GPIO number to use for I2S Data Driver. + config EXAMPLE_LOCAL_DEVICE_NAME + string "Local Device Name" + default "ESP_SPEAKER" + help + Use this option to set local device name. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c index 8f23f4bcd1..9c77ca54cd 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c @@ -26,7 +26,7 @@ #include "esp_avrc_api.h" /* device name */ -#define LOCAL_DEVICE_NAME "ESP_SPEAKER" +static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; /* event for stack up */ enum { @@ -148,7 +148,7 @@ static void bt_av_hdl_stack_evt(uint16_t event, void *p_param) switch (event) { /* when do the stack up, this event comes */ case BT_APP_EVT_STACK_UP: { - esp_bt_gap_set_device_name(LOCAL_DEVICE_NAME); + esp_bt_gap_set_device_name(local_device_name); esp_bt_dev_register_callback(bt_app_dev_cb); esp_bt_gap_register_callback(bt_app_gap_cb); diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/sdkconfig.ci.defaults new file mode 100644 index 0000000000..79e4f555d6 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_LOCAL_DEVICE_NAME="${CI_PIPELINE_ID}_A2DP_SINK" diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/Kconfig.projbuild index ece773895f..47ea6308ee 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "A2DP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_PEER_DEVICE_NAME + string "Target Device Name" + default "ESP_SPEAKER" + help + Use this option to set target device name to connect. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c index b47e239987..aa79b536fe 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c @@ -30,7 +30,6 @@ #define BT_RC_CT_TAG "RC_CT" /* device name */ -#define TARGET_DEVICE_NAME "ESP_SPEAKER" #define LOCAL_DEVICE_NAME "ESP_A2DP_SRC" /* AVRCP used transaction label */ @@ -112,6 +111,8 @@ static uint32_t s_pkt_cnt = 0; /* count of packet static esp_avrc_rn_evt_cap_mask_t s_avrc_peer_rn_cap; /* AVRC target notification event capability bit mask */ static TimerHandle_t s_tmr; /* handle of heart beat timer */ +static const char remote_device_name[] = CONFIG_EXAMPLE_PEER_DEVICE_NAME; + /********************************* * STATIC FUNCTION DEFINITIONS ********************************/ @@ -199,7 +200,7 @@ static void filter_inquiry_scan_result(esp_bt_gap_cb_param_t *param) /* search for target device in its Extended Inqury Response */ if (eir) { get_name_from_eir(eir, s_peer_bdname, NULL); - if (strcmp((char *)s_peer_bdname, TARGET_DEVICE_NAME) == 0) { + if (strcmp((char *)s_peer_bdname, remote_device_name) == 0) { ESP_LOGI(BT_AV_TAG, "Found a target device, address %s, name %s", bda_str, s_peer_bdname); s_a2d_state = APP_AV_STATE_DISCOVERED; memcpy(s_peer_bda, param->disc_res.bda, ESP_BD_ADDR_LEN); diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/sdkconfig.ci.defaults new file mode 100644 index 0000000000..f1e20630cb --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_PEER_DEVICE_NAME="${CI_PIPELINE_ID}_A2DP_SINK" diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/Kconfig.projbuild index 568ef5ae62..d7db1931a0 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "HID Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_LOCAL_DEVICE_NAME + string "Local Device Name" + default "HID Mouse Example" + help + Use this option to set local device name. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/main.c b/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/main.c index 9ad5e21f6d..a03fc6b634 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/main/main.c @@ -23,6 +23,8 @@ #define REPORT_PROTOCOL_MOUSE_REPORT_SIZE (4) #define REPORT_BUFFER_SIZE REPORT_PROTOCOL_MOUSE_REPORT_SIZE +static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; + typedef struct { esp_hidd_app_param_t app_param; esp_hidd_qos_param_t both_qos; @@ -434,7 +436,7 @@ void app_main(void) } ESP_LOGI(TAG, "setting device name"); - esp_bt_gap_set_device_name("HID Mouse Example"); + esp_bt_gap_set_device_name(local_device_name); ESP_LOGI(TAG, "setting cod major, peripheral"); esp_bt_cod_t cod; diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/sdkconfig.ci.defaults new file mode 100644 index 0000000000..f6353b4b36 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_LOCAL_DEVICE_NAME="${CI_PIPELINE_ID}_HID_MOUSE_DEVICE" diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/Kconfig.projbuild index abc0e748ce..a1b665ef26 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "L2CAP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_PEER_DEVICE_NAME + string "Target Device Name" + default "ESP_BT_L2CAP_SERVER" + help + Use this option to set target device name to connect. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/main.c b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/main.c index 4048fd129d..37fda38a61 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/main/main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -30,12 +30,12 @@ #define L2CAP_TAG "L2CAP_TAG" #define SDP_TAG "SDP_TAG" #define EXAMPLE_DEVICE_NAME "ESP_BT_L2CAP_CLIENT" -#define TARGET_DEVICE_NAME "ESP_BT_L2CAP_SERVER" #define L2CAP_DATA_LEN 100 #define BT_L2CAP_DYNMIC_PSM 0x1001 #define BT_UNUSED_RFCOMM -1 #define BT_UNKONWN_PROFILE_VERSION 0x0102 +static const char remote_device_name[] = CONFIG_EXAMPLE_PEER_DEVICE_NAME; static esp_bt_l2cap_cntl_flags_t sec_mask = ESP_BT_L2CAP_SEC_AUTHENTICATE; static char *sdp_service_name = "Unknown_profile"; static const uint8_t UUID_UNKNOWN[] = {0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x00, @@ -125,7 +125,7 @@ static void filter_inquiry_scan_result(esp_bt_gap_cb_param_t *param) /* search for target device in its Extended Inqury Response */ if (eir) { get_name_from_eir(eir, peer_bdname, NULL); - if (strcmp((char *)peer_bdname, TARGET_DEVICE_NAME) == 0) { + if (strcmp((char *)peer_bdname, remote_device_name) == 0) { ESP_LOGI(L2CAP_TAG, "Found a target device, address %s, name %s", bda_str, peer_bdname); ESP_LOGI(L2CAP_TAG, "Cancel device discovery ..."); esp_bt_gap_cancel_discovery(); diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/sdkconfig.ci.defaults new file mode 100644 index 0000000000..a21a8b5e76 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_client/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_PEER_DEVICE_NAME="${CI_PIPELINE_ID}_L2CAP_SERVER" diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/Kconfig.projbuild index abc0e748ce..14824fe72a 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "L2CAP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_LOCAL_DEVICE_NAME + string "Local Device Name" + default "ESP_BT_L2CAP_SERVER" + help + Use this option to set local device name. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/main.c b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/main.c index 2f6e9faeb8..98feadc71d 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/main/main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -29,12 +29,12 @@ #define L2CAP_TAG "L2CAP_TAG" #define SDP_TAG "SDP_TAG" -#define EXAMPLE_DEVICE_NAME "ESP_BT_L2CAP_SERVER" #define L2CAP_DATA_LEN 100 #define BT_UNUSED_RFCOMM -1 #define BT_L2CAP_DYNMIC_PSM 0x1001 #define BT_UNKONWN_PROFILE_VERSION 0x0102 +static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; static esp_bt_l2cap_cntl_flags_t sec_mask = ESP_BT_L2CAP_SEC_AUTHENTICATE; static char *sdp_service_name = "Unknown_profile"; static const uint8_t UUID_UNKNOWN[] = {0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x00, @@ -269,7 +269,7 @@ static void esp_hdl_sdp_cb_evt(uint16_t event, void *p_param) case ESP_SDP_CREATE_RECORD_COMP_EVT: ESP_LOGI(SDP_TAG, "ESP_SDP_CREATE_RECORD_COMP_EVT: status:%d", sdp_param->create_record.status); if (sdp_param->create_record.status == ESP_SDP_SUCCESS) { - esp_bt_gap_set_device_name(EXAMPLE_DEVICE_NAME); + esp_bt_gap_set_device_name(local_device_name); esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); } break; diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/sdkconfig.ci.defaults new file mode 100644 index 0000000000..205de36eb8 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/bt_l2cap_server/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_LOCAL_DEVICE_NAME="${CI_PIPELINE_ID}_L2CAP_SERVER" diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/Kconfig.projbuild index 971b124cfc..71d6c4a0ee 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "SPP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_LOCAL_DEVICE_NAME + string "Local Device Name" + default "ESP_SPP_ACCEPTOR" + help + Use this option to set local device name. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/main.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/main.c index f840be9899..4a0c37d839 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -25,11 +25,11 @@ #define SPP_TAG "SPP_ACCEPTOR_DEMO" #define SPP_SERVER_NAME "SPP_SERVER" -#define EXAMPLE_DEVICE_NAME "ESP_SPP_ACCEPTOR" #define SPP_SHOW_DATA 0 #define SPP_SHOW_SPEED 1 #define SPP_SHOW_MODE SPP_SHOW_SPEED /*Choose show mode: show data or speed*/ +static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; static const esp_spp_mode_t esp_spp_mode = ESP_SPP_MODE_CB; static const bool esp_spp_enable_l2cap_ertm = true; @@ -90,7 +90,7 @@ static void esp_spp_cb(esp_spp_cb_event_t event, esp_spp_cb_param_t *param) if (param->start.status == ESP_SPP_SUCCESS) { ESP_LOGI(SPP_TAG, "ESP_SPP_START_EVT handle:%"PRIu32" sec_id:%d scn:%d", param->start.handle, param->start.sec_id, param->start.scn); - esp_bt_gap_set_device_name(EXAMPLE_DEVICE_NAME); + esp_bt_gap_set_device_name(local_device_name); esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); } else { ESP_LOGE(SPP_TAG, "ESP_SPP_START_EVT status:%d", param->start.status); diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/sdkconfig.ci.defaults new file mode 100644 index 0000000000..1d9783ea67 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_LOCAL_DEVICE_NAME="${CI_PIPELINE_ID}_SPP_ACCEPTOR" diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/Kconfig.projbuild index 971b124cfc..b942d94d38 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "SPP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_PEER_DEVICE_NAME + string "Target Device Name" + default "ESP_SPP_ACCEPTOR" + help + Use this option to set target device name to connect. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/main.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/main.c index 1b86f464b1..e1d8be3de3 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/main.c @@ -43,7 +43,8 @@ static const esp_spp_role_t role_master = ESP_SPP_ROLE_MASTER; esp_bd_addr_t peer_bd_addr = {0}; static uint8_t peer_bdname_len; static char peer_bdname[ESP_BT_GAP_MAX_BDNAME_LEN + 1]; -static const char remote_device_name[] = "ESP_SPP_ACCEPTOR"; +static const char remote_device_name[] = CONFIG_EXAMPLE_PEER_DEVICE_NAME; + static const esp_bt_inq_mode_t inq_mode = ESP_BT_INQ_MODE_GENERAL_INQUIRY; static const uint8_t inq_len = 30; static const uint8_t inq_num_rsps = 0; diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/sdkconfig.ci.defaults new file mode 100644 index 0000000000..35448fa715 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_PEER_DEVICE_NAME="${CI_PIPELINE_ID}_SPP_ACCEPTOR" diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/Kconfig.projbuild index 971b124cfc..71d6c4a0ee 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "SPP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_LOCAL_DEVICE_NAME + string "Local Device Name" + default "ESP_SPP_ACCEPTOR" + help + Use this option to set local device name. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/main.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/main.c index f82acce420..6ea6d2f7aa 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -37,8 +37,8 @@ #define SPP_TAG "SPP_ACCEPTOR_DEMO" #define SPP_SERVER_NAME "SPP_SERVER" -#define EXAMPLE_DEVICE_NAME "ESP_SPP_ACCEPTOR" +static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; static const esp_spp_sec_t sec_mask = ESP_SPP_SEC_AUTHENTICATE; static const esp_spp_role_t role_slave = ESP_SPP_ROLE_SLAVE; @@ -121,7 +121,7 @@ static void esp_spp_cb(uint16_t e, void *p) if (param->start.status == ESP_SPP_SUCCESS) { ESP_LOGI(SPP_TAG, "ESP_SPP_START_EVT handle:%"PRIu32" sec_id:%d scn:%d", param->start.handle, param->start.sec_id, param->start.scn); - esp_bt_gap_set_device_name(EXAMPLE_DEVICE_NAME); + esp_bt_gap_set_device_name(local_device_name); esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); } else { ESP_LOGE(SPP_TAG, "ESP_SPP_START_EVT status:%d", param->start.status); diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/sdkconfig.ci.defaults new file mode 100644 index 0000000000..ff404573a0 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_LOCAL_DEVICE_NAME="${CI_PIPELINE_ID}_SPP_VFS_ACCEPTOR" diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/Kconfig.projbuild index 971b124cfc..b942d94d38 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "SPP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_PEER_DEVICE_NAME + string "Target Device Name" + default "ESP_SPP_ACCEPTOR" + help + Use this option to set target device name to connect. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/main.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/main.c index e2b5c91b57..fab4ad40cd 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/main.c @@ -44,7 +44,8 @@ static const esp_spp_role_t role_master = ESP_SPP_ROLE_MASTER; static esp_bd_addr_t peer_bd_addr; static uint8_t peer_bdname_len; static char peer_bdname[ESP_BT_GAP_MAX_BDNAME_LEN + 1]; -static const char remote_device_name[] = "ESP_SPP_ACCEPTOR"; +static const char remote_device_name[] = CONFIG_EXAMPLE_PEER_DEVICE_NAME; + static const esp_bt_inq_mode_t inq_mode = ESP_BT_INQ_MODE_GENERAL_INQUIRY; static const uint8_t inq_len = 30; static const uint8_t inq_num_rsps = 0; diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/sdkconfig.ci.defaults b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/sdkconfig.ci.defaults new file mode 100644 index 0000000000..41775e0f20 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_PEER_DEVICE_NAME="${CI_PIPELINE_ID}_SPP_VFS_ACCEPTOR" diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/Kconfig.projbuild new file mode 100644 index 0000000000..5d40e1962d --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/Kconfig.projbuild @@ -0,0 +1,7 @@ +menu "HFP Example Configuration" + config EXAMPLE_LOCAL_DEVICE_NAME + string "Local Device Name" + default "ESP_HFP_AG" + help + Use this option to set local device name. +endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c index c93aac3da2..0e30854b20 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c @@ -27,6 +27,8 @@ #define BT_HF_AG_TAG "HF_AG_DEMO_MAIN" +static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; + /* event for handler "hf_ag_hdl_stack_up */ enum { BT_APP_EVT_STACK_UP = 0, @@ -52,9 +54,7 @@ static void bt_hf_hdl_stack_evt(uint16_t event, void *p_param) { case BT_APP_EVT_STACK_UP: { - /* set up device name */ - char *dev_name = "ESP_HFP_AG"; - esp_bt_gap_set_device_name(dev_name); + esp_bt_gap_set_device_name(local_device_name); esp_hf_ag_register_callback(bt_app_hf_cb); diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/sdkconfig.ci.all b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/sdkconfig.ci.all new file mode 100644 index 0000000000..1d7593af05 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/sdkconfig.ci.all @@ -0,0 +1,2 @@ +CONFIG_BT_HFP_AUDIO_DATA_PATH_HCI=y +CONFIG_EXAMPLE_LOCAL_DEVICE_NAME="${CI_PIPELINE_ID}_HFP" diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/Kconfig.projbuild b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/Kconfig.projbuild index 0b1569390f..65e04f08e6 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/Kconfig.projbuild +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/Kconfig.projbuild @@ -6,4 +6,10 @@ menu "HFP Example Configuration" help This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config EXAMPLE_PEER_DEVICE_NAME + string "Target Device Name" + default "ESP_HFP_AG" + help + Use this option to set target device name to connect. endmenu diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c index 958f019319..984695aaaa 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c @@ -29,8 +29,7 @@ esp_bd_addr_t peer_addr = {0}; static char peer_bdname[ESP_BT_GAP_MAX_BDNAME_LEN + 1]; static uint8_t peer_bdname_len; - -static const char remote_device_name[] = "ESP_HFP_AG"; +static const char remote_device_name[] = CONFIG_EXAMPLE_PEER_DEVICE_NAME; static char *bda2str(esp_bd_addr_t bda, char *str, size_t size) { diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/sdkconfig.ci.all b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/sdkconfig.ci.all new file mode 100644 index 0000000000..94fafd42ea --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/sdkconfig.ci.all @@ -0,0 +1,2 @@ +CONFIG_BT_HFP_AUDIO_DATA_PATH_HCI=y +CONFIG_EXAMPLE_PEER_DEVICE_NAME="${CI_PIPELINE_ID}_HFP" diff --git a/examples/bluetooth/bluedroid/classic_bt/pytest_classic_bt_test.py b/examples/bluetooth/bluedroid/classic_bt/pytest_classic_bt_test.py index 990b24a0b2..55f065b6f1 100644 --- a/examples/bluetooth/bluedroid/classic_bt/pytest_classic_bt_test.py +++ b/examples/bluetooth/bluedroid/classic_bt/pytest_classic_bt_test.py @@ -32,8 +32,8 @@ def test_bt_spp_only(app_path: str, dut: Tuple[IdfDut, IdfDut]) -> None: if 'ESP_BT_GAP_KEY_REQ_EVT Please enter passkey!' in str(initiator_output): passkey = acceptor.expect(r'ESP_BT_GAP_KEY_NOTIF_EVT passkey:(\d+)').group(1).decode('utf8') initiator.write(f'spp key {passkey};') - acceptor.expect_exact('authentication success: ESP_SPP_INITIATOR', timeout=30) - initiator.expect_exact('authentication success: ESP_SPP_ACCEPTOR', timeout=30) + acceptor.expect_exact('authentication success', timeout=30) + initiator.expect_exact('authentication success', timeout=30) acceptor.expect_exact('ESP_SPP_SRV_OPEN_EVT status:0', timeout=30) initiator.expect_exact('ESP_SPP_OPEN_EVT', timeout=30) @@ -79,7 +79,7 @@ def test_bt_a2dp(app_path: str, dut: Tuple[IdfDut, IdfDut]) -> None: source_dut = dut[1] source_dut_mac = source_dut.expect(r'Bluetooth MAC: (([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2})').group(1).decode('utf8') sink_dut.expect_exact('A2DP PROF STATE: Init Complete', timeout=30) - source_dut.expect_exact('a2dp connecting to peer: ESP_SPEAKER', timeout=30) + source_dut.expect_exact('a2dp connecting to peer', timeout=30) source_dut.expect_exact('a2dp connected', timeout=30) source_dut.expect_exact('a2dp media start successfully', timeout=30) sink_dut.expect_exact(f'A2DP connection state: Connected, [{source_dut_mac}]', timeout=30) @@ -93,7 +93,7 @@ def test_bt_a2dp(app_path: str, dut: Tuple[IdfDut, IdfDut]) -> None: 'count, app_path, target, config', [ (2, f'{os.path.join(os.path.dirname(__file__), "hfp_ag")}|{os.path.join(os.path.dirname(__file__), "hfp_hf")}', - 'esp32|esp32', 'vohci'), + 'esp32|esp32', 'all'), ], indirect=True, ) @@ -101,7 +101,7 @@ def test_bt_hfp(app_path: str, dut: Tuple[IdfDut, IdfDut]) -> None: hfp_ag = dut[0] hfp_hf = dut[1] - hfp_hf.expect_exact('Found a target device name: ESP_HFP_AG', timeout=30) + hfp_hf.expect_exact('Found a target device name', timeout=30) hfp_hf.expect_exact('connection state connected', timeout=30) hfp_hf.expect_exact('connection state slc_connected', timeout=30) hfp_ag.expect_exact('connection state CONNECTED', timeout=30) diff --git a/examples/bluetooth/esp_hid_host/main/Kconfig.projbuild b/examples/bluetooth/esp_hid_host/main/Kconfig.projbuild index 5b0fa17ed0..c72314895f 100644 --- a/examples/bluetooth/esp_hid_host/main/Kconfig.projbuild +++ b/examples/bluetooth/esp_hid_host/main/Kconfig.projbuild @@ -14,4 +14,10 @@ menu "HID Example Configuration" select BT_NIMBLE_HID_SERVICE help This enables Nimble HID Host + + config EXAMPLE_PEER_DEVICE_NAME + string "Target Device Name" + default "HID Mouse Example" + help + Use this option to set target device name to connect. endmenu diff --git a/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c b/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c index ee2225fc5d..bda1dd61b1 100644 --- a/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c +++ b/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c @@ -341,38 +341,39 @@ static void handle_bt_device_result(struct disc_res_param *disc_res) uint8_t len = 0; uint8_t *data = 0; - data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_16BITS_UUID, &len); - if (data == NULL) { - data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_16BITS_UUID, &len); - } - if (data && len == ESP_UUID_LEN_16) { - uuid.len = ESP_UUID_LEN_16; - uuid.uuid.uuid16 = data[0] + (data[1] << 8); - GAP_DBG_PRINTF(", "); print_uuid(&uuid); - continue; - } + do { + data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_16BITS_UUID, &len); + if (data == NULL) { + data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_16BITS_UUID, &len); + } + if (data && len == ESP_UUID_LEN_16) { + uuid.len = ESP_UUID_LEN_16; + uuid.uuid.uuid16 = data[0] + (data[1] << 8); + GAP_DBG_PRINTF(", "); print_uuid(&uuid); + break; + } - data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_32BITS_UUID, &len); - if (data == NULL) { - data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_32BITS_UUID, &len); - } - if (data && len == ESP_UUID_LEN_32) { - uuid.len = len; - memcpy(&uuid.uuid.uuid32, data, sizeof(uint32_t)); - GAP_DBG_PRINTF(", "); print_uuid(&uuid); - continue; - } + data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_32BITS_UUID, &len); + if (data == NULL) { + data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_32BITS_UUID, &len); + } + if (data && len == ESP_UUID_LEN_32) { + uuid.len = len; + memcpy(&uuid.uuid.uuid32, data, sizeof(uint32_t)); + GAP_DBG_PRINTF(", "); print_uuid(&uuid); + break; + } - data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_128BITS_UUID, &len); - if (data == NULL) { - data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_128BITS_UUID, &len); - } - if (data && len == ESP_UUID_LEN_128) { - uuid.len = len; - memcpy(uuid.uuid.uuid128, (uint8_t *)data, len); - GAP_DBG_PRINTF(", "); print_uuid(&uuid); - continue; - } + data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_CMPL_128BITS_UUID, &len); + if (data == NULL) { + data = esp_bt_gap_resolve_eir_data((uint8_t *)prop->val, ESP_BT_EIR_TYPE_INCMPL_128BITS_UUID, &len); + } + if (data && len == ESP_UUID_LEN_128) { + uuid.len = len; + memcpy(uuid.uuid.uuid128, (uint8_t *)data, len); + GAP_DBG_PRINTF(", "); print_uuid(&uuid); + } + } while (0); //try to find a name if (name == NULL) { diff --git a/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c b/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c index 1643b8a33e..681d86e1d0 100644 --- a/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c +++ b/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c @@ -51,6 +51,10 @@ static const char *TAG = "ESP_HIDH_DEMO"; +#if CONFIG_BT_HID_HOST_ENABLED +static const char * remote_device_name = CONFIG_EXAMPLE_PEER_DEVICE_NAME; +#endif // CONFIG_BT_HID_HOST_ENABLED + static char *bda2str(esp_bd_addr_t bda, char *str, size_t size) { if (bda == NULL || str == NULL || size < 18) { @@ -148,16 +152,26 @@ void hid_demo_task(void *pvParameters) printf("] srv 0x%03x, ", r->bt.cod.service); print_uuid(&r->bt.uuid); printf(", "); + if (strncmp(r->name, remote_device_name, strlen(remote_device_name)) == 0) { + break; + } } #endif /* CONFIG_BT_HID_HOST_ENABLED */ printf("NAME: %s ", r->name ? r->name : ""); printf("\n"); r = r->next; } + +#if CONFIG_BT_HID_HOST_ENABLED + if (cr && strncmp(cr->name, remote_device_name, strlen(remote_device_name)) == 0) { + esp_hidh_dev_open(cr->bda, cr->transport, cr->ble.addr_type); + } +#else if (cr) { //open the last result esp_hidh_dev_open(cr->bda, cr->transport, cr->ble.addr_type); } +#endif // CONFIG_BT_HID_HOST_ENABLED //free the results esp_hid_scan_results_free(results); } diff --git a/examples/bluetooth/esp_hid_host/sdkconfig.ci.defaults b/examples/bluetooth/esp_hid_host/sdkconfig.ci.defaults new file mode 100644 index 0000000000..97b876adff --- /dev/null +++ b/examples/bluetooth/esp_hid_host/sdkconfig.ci.defaults @@ -0,0 +1 @@ +CONFIG_EXAMPLE_PEER_DEVICE_NAME="${CI_PIPELINE_ID}_HID_MOUSE_DEVICE"