feat(examples/bluedroid): Add BLE time interval conversion macros for better readability

Add macros to convert time values from milliseconds to BLE interval units:
- ESP_BLE_GAP_ADV_ITVL_MS: Convert advertising interval (0.625ms unit)
- ESP_BLE_GAP_SCAN_ITVL_MS: Convert scan interval (0.625ms unit)
- ESP_BLE_GAP_SCAN_WIN_MS: Convert scan window (0.625ms unit)
- ESP_BLE_GAP_CONN_ITVL_MS: Convert connection interval (1.25ms unit)
- ESP_BLE_GAP_PERIODIC_ADV_ITVL_MS: Convert periodic adv interval (1.25ms unit)
- ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS: Convert supervision timeout (10ms unit)


(cherry picked from commit 7cd2f7b34d)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
This commit is contained in:
Zhang Hai Peng
2026-01-05 00:03:36 +08:00
committed by BLE BOT
parent 3f2923dd0c
commit 7d6dc68080
27 changed files with 142 additions and 121 deletions
@@ -283,6 +283,27 @@ typedef uint8_t esp_gap_ble_channels[ESP_GAP_BLE_CHANNELS_LEN];
#define VENDOR_HCI_CMD_MASK (0x3F << 10) /**!< 0xFC00 */ #define VENDOR_HCI_CMD_MASK (0x3F << 10) /**!< 0xFC00 */
/**
* @brief BLE time interval conversion macros
*
* These macros convert time values in milliseconds to BLE interval units.
*
* - Advertising interval: unit is 0.625ms (range: 20ms to 10240ms)
* - Connection interval: unit is 1.25ms (range: 7.5ms to 4000ms)
* - Scan interval/window: unit is 0.625ms
* - Periodic advertising interval: unit is 1.25ms
* - Supervision timeout: unit is 10ms (range: 100ms to 32000ms)
*
* @note If the input value is not an exact multiple of the unit, the result will be rounded to the nearest value.
* For example, ESP_BLE_GAP_ADV_ITVL_MS(25) = 40 (25ms / 0.625ms = 40), but ESP_BLE_GAP_ADV_ITVL_MS(25.5) = 40 (rounded).
*/
#define ESP_BLE_GAP_ADV_ITVL_MS(t) ((uint16_t)((t) * 1000 / 625)) /*!< Convert advertising interval from ms to 0.625ms units. If input is not a multiple of 0.625ms, it will be rounded to the nearest value. */
#define ESP_BLE_GAP_SCAN_ITVL_MS(t) ((uint16_t)((t) * 1000 / 625)) /*!< Convert scan interval from ms to 0.625ms units. If input is not a multiple of 0.625ms, it will be rounded to the nearest value. */
#define ESP_BLE_GAP_SCAN_WIN_MS(t) ((uint16_t)((t) * 1000 / 625)) /*!< Convert scan window from ms to 0.625ms units. If input is not a multiple of 0.625ms, it will be rounded to the nearest value. */
#define ESP_BLE_GAP_CONN_ITVL_MS(t) ((uint16_t)((t) * 1000 / 1250)) /*!< Convert connection interval from ms to 1.25ms units. If input is not a multiple of 1.25ms, it will be rounded to the nearest value. */
#define ESP_BLE_GAP_PERIODIC_ADV_ITVL_MS(t) ((uint16_t)((t) * 1000 / 1250)) /*!< Convert periodic advertising interval from ms to 1.25ms units. If input is not a multiple of 1.25ms, it will be rounded to the nearest value. */
#define ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(t) ((uint16_t)((t) / 10)) /*!< Convert supervision timeout from ms to 10ms units. If input is not a multiple of 10ms, it will be rounded to the nearest value. */
/* relate to BTM_BLE_AD_TYPE_xxx in stack/btm_ble_api.h */ /* relate to BTM_BLE_AD_TYPE_xxx in stack/btm_ble_api.h */
/// The type of advertising data(not adv_type) /// The type of advertising data(not adv_type)
typedef enum { typedef enum {
@@ -83,8 +83,8 @@ static uint8_t hidd_service_uuid128[] = {
static esp_ble_adv_data_t adv_config = { static esp_ble_adv_data_t adv_config = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_txpower = false, .include_txpower = false,
.min_interval = 0x0006, //slave connection min interval, Time = min_interval * 1.25 msec .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5), //slave connection min interval
.max_interval = 0x0010, //slave connection max interval, Time = max_interval * 1.25 msec .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(20), //slave connection max interval
.appearance = ESP_BLE_APPEARANCE_GENERIC_HID, .appearance = ESP_BLE_APPEARANCE_GENERIC_HID,
.service_uuid_len = sizeof(hidd_service_uuid128), .service_uuid_len = sizeof(hidd_service_uuid128),
.p_service_uuid = hidd_service_uuid128, .p_service_uuid = hidd_service_uuid128,
@@ -99,8 +99,8 @@ static esp_ble_adv_data_t scan_rsp_config = {
}; };
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x100, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(160),
.adv_int_max = 0x100, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(160),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -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
*/ */
@@ -101,8 +101,8 @@ static esp_ble_adv_data_t adv_data = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x20, .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(40),
.max_interval = 0x40, .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(80),
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //test_manufacturer, .p_manufacturer_data = NULL, //test_manufacturer,
@@ -118,8 +118,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
.set_scan_rsp = true, .set_scan_rsp = true,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x20, .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(40),
.max_interval = 0x40, .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(80),
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //&test_manufacturer[0], .p_manufacturer_data = NULL, //&test_manufacturer[0],
@@ -132,8 +132,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
#endif /* CONFIG_SET_RAW_ADV_DATA */ #endif /* CONFIG_SET_RAW_ADV_DATA */
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x40, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -39,8 +39,8 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };
@@ -36,8 +36,8 @@ static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t* par
static void eddystone_send_raw(const esp_eddystone_result_t *res); static void eddystone_send_raw(const esp_eddystone_result_t *res);
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -67,8 +67,8 @@ static esp_ble_adv_data_t hidd_adv_data = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x0006, //slave connection min interval, Time = min_interval * 1.25 msec .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5), //slave connection min interval
.max_interval = 0x0010, //slave connection max interval, Time = max_interval * 1.25 msec .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(20), //slave connection max interval
.appearance = 0x03c0, //HID Generic, .appearance = 0x03c0, //HID Generic,
.manufacturer_len = 0, .manufacturer_len = 0,
.p_manufacturer_data = NULL, .p_manufacturer_data = NULL,
@@ -80,8 +80,8 @@ static esp_ble_adv_data_t hidd_adv_data = {
}; };
static esp_ble_adv_params_t hidd_adv_params = { static esp_ble_adv_params_t hidd_adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x30, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(30),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
//.peer_addr = //.peer_addr =
@@ -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
*/ */
@@ -43,15 +43,15 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };
#elif (IBEACON_MODE == IBEACON_SENDER) #elif (IBEACON_MODE == IBEACON_SENDER)
static esp_ble_adv_params_t ble_adv_params = { static esp_ble_adv_params_t ble_adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_NONCONN_IND, .adv_type = ADV_TYPE_NONCONN_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -101,7 +101,7 @@ const static esp_ble_conn_params_t phy_1m_conn_params = {
.interval_min = BLE_PREF_CONN_ITVL_MS * 1000 / 1250, .interval_min = BLE_PREF_CONN_ITVL_MS * 1000 / 1250,
.interval_max = BLE_PREF_CONN_ITVL_MS * 1000 / 1250, .interval_max = BLE_PREF_CONN_ITVL_MS * 1000 / 1250,
.latency = 0, .latency = 0,
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
.min_ce_len = BLE_PREF_CE_LEN, .min_ce_len = BLE_PREF_CE_LEN,
.max_ce_len = BLE_PREF_CE_LEN, .max_ce_len = BLE_PREF_CE_LEN,
}; };
@@ -113,7 +113,7 @@ const static esp_ble_conn_params_t phy_2m_conn_params = {
.interval_min = BLE_PREF_CONN_ITVL_MS * 1000 / 1250, .interval_min = BLE_PREF_CONN_ITVL_MS * 1000 / 1250,
.interval_max = BLE_PREF_CONN_ITVL_MS * 1000 / 1250, .interval_max = BLE_PREF_CONN_ITVL_MS * 1000 / 1250,
.latency = 0, .latency = 0,
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
.min_ce_len = BLE_PREF_CE_LEN, .min_ce_len = BLE_PREF_CE_LEN,
.max_ce_len = BLE_PREF_CE_LEN, .max_ce_len = BLE_PREF_CE_LEN,
}; };
@@ -124,7 +124,7 @@ const static esp_ble_conn_params_t phy_coded_conn_params = {
.interval_min = BLE_PREF_CONN_ITVL_MS * 1000 / 1250, .interval_min = BLE_PREF_CONN_ITVL_MS * 1000 / 1250,
.interval_max = BLE_PREF_CONN_ITVL_MS * 1000 / 1250, .interval_max = BLE_PREF_CONN_ITVL_MS * 1000 / 1250,
.latency = 0, .latency = 0,
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
.min_ce_len = BLE_PREF_CE_LEN, .min_ce_len = BLE_PREF_CE_LEN,
.max_ce_len = BLE_PREF_CE_LEN, .max_ce_len = BLE_PREF_CE_LEN,
}; };
@@ -160,8 +160,8 @@ struct gatts_profile_inst
#if (BLE50_SUPPORTED == 0) #if (BLE50_SUPPORTED == 0)
esp_ble_adv_params_t legacy_adv_params = { esp_ble_adv_params_t legacy_adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x20, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_RANDOM, .own_addr_type = BLE_ADDR_TYPE_RANDOM,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -171,8 +171,8 @@ esp_ble_adv_params_t legacy_adv_params = {
#else #else
esp_ble_gap_ext_adv_params_t ext_adv_params = { esp_ble_gap_ext_adv_params_t ext_adv_params = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE,
.interval_min = 0x20, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.interval_max = 0x20, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(20),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -68,8 +68,8 @@ static esp_ble_gap_ext_adv_t ext_adv[1] = {
esp_ble_gap_ext_adv_params_t ext_adv_params = { esp_ble_gap_ext_adv_params_t ext_adv_params = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE,
.interval_min = 0x20, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.interval_max = 0x20, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(20),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -82,8 +82,8 @@ esp_ble_gap_ext_adv_params_t ext_adv_params = {
}; };
#else #else
static esp_ble_adv_params_t legacy_adv_params = { static esp_ble_adv_params_t legacy_adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_RANDOM, .own_addr_type = BLE_ADDR_TYPE_RANDOM,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -89,8 +89,8 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };
@@ -255,7 +255,7 @@ static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *par
phy_1m_conn_params.interval_max = 32; phy_1m_conn_params.interval_max = 32;
phy_1m_conn_params.interval_min = 32; phy_1m_conn_params.interval_min = 32;
phy_1m_conn_params.latency = 0; phy_1m_conn_params.latency = 0;
phy_1m_conn_params.supervision_timeout = 600; phy_1m_conn_params.supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000);
esp_ble_gatt_creat_conn_params_t creat_conn_params = {0}; esp_ble_gatt_creat_conn_params_t creat_conn_params = {0};
memcpy(&creat_conn_params.remote_bda, scan_result->scan_rst.bda,ESP_BD_ADDR_LEN); memcpy(&creat_conn_params.remote_bda, scan_result->scan_rst.bda,ESP_BD_ADDR_LEN);
creat_conn_params.remote_addr_type = scan_result->scan_rst.ble_addr_type; creat_conn_params.remote_addr_type = scan_result->scan_rst.ble_addr_type;
@@ -79,8 +79,8 @@ static esp_bd_addr_t spp_remote_bda = {0x0,};
static uint16_t spp_handle_table[SPP_IDX_NB]; static uint16_t spp_handle_table[SPP_IDX_NB];
static esp_ble_adv_params_t spp_adv_params = { static esp_ble_adv_params_t spp_adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -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
*/ */
@@ -95,8 +95,8 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };
@@ -412,7 +412,7 @@ static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *par
phy_1m_conn_params.interval_min = 32; phy_1m_conn_params.interval_min = 32;
#endif #endif
phy_1m_conn_params.latency = 0; phy_1m_conn_params.latency = 0;
phy_1m_conn_params.supervision_timeout = 600; phy_1m_conn_params.supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000);
esp_ble_gatt_creat_conn_params_t creat_conn_params = {0}; esp_ble_gatt_creat_conn_params_t creat_conn_params = {0};
memcpy(&creat_conn_params.remote_bda, scan_result->scan_rst.bda, ESP_BD_ADDR_LEN); memcpy(&creat_conn_params.remote_bda, scan_result->scan_rst.bda, ESP_BD_ADDR_LEN);
@@ -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
*/ */
@@ -127,8 +127,8 @@ static esp_ble_adv_data_t adv_data = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x0006, //slave connection min interval, Time = min_interval * 1.25 msec .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5), //slave connection min interval
.max_interval = 0x000C, //slave connection max interval, Time = max_interval * 1.25 msec .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(15), //slave connection max interval
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //&test_manufacturer[0], .p_manufacturer_data = NULL, //&test_manufacturer[0],
@@ -143,8 +143,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
.set_scan_rsp = true, .set_scan_rsp = true,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x0006, .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5),
.max_interval = 0x000C, .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(15),
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //&test_manufacturer[0], .p_manufacturer_data = NULL, //&test_manufacturer[0],
@@ -158,8 +158,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
#endif /* CONFIG_EXAMPLE_SET_RAW_ADV_DATA */ #endif /* CONFIG_EXAMPLE_SET_RAW_ADV_DATA */
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
//.peer_addr = //.peer_addr =
@@ -72,8 +72,8 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };
@@ -57,8 +57,8 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };
@@ -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
*/ */
@@ -49,8 +49,8 @@ static uint8_t sec_service_uuid[16] = {
static esp_ble_adv_data_t heart_rate_adv_config = { static esp_ble_adv_data_t heart_rate_adv_config = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x0006, //slave connection min interval, Time = min_interval * 1.25 msec .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5), //slave connection min interval
.max_interval = 0x0010, //slave connection max interval, Time = max_interval * 1.25 msec .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(20), //slave connection max interval
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //&test_manufacturer[0], .p_manufacturer_data = NULL, //&test_manufacturer[0],
@@ -69,8 +69,8 @@ static esp_ble_adv_data_t heart_rate_scan_rsp_config = {
}; };
static esp_ble_adv_params_t heart_rate_adv_params = { static esp_ble_adv_params_t heart_rate_adv_params = {
.adv_int_min = 0x100, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(160),
.adv_int_max = 0x100, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(160),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -118,8 +118,8 @@ static esp_ble_adv_data_t adv_data = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_name = true, .include_name = true,
.include_txpower = false, .include_txpower = false,
.min_interval = 0x0006, //slave connection min interval, Time = min_interval * 1.25 msec .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5), //slave connection min interval
.max_interval = 0x0010, //slave connection max interval, Time = max_interval * 1.25 msec .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(20), //slave connection max interval
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //&test_manufacturer[0], .p_manufacturer_data = NULL, //&test_manufacturer[0],
@@ -149,8 +149,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
#endif /* CONFIG_SET_RAW_ADV_DATA */ #endif /* CONFIG_SET_RAW_ADV_DATA */
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
//.peer_addr = //.peer_addr =
@@ -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
*/ */
@@ -94,8 +94,8 @@ static esp_ble_adv_data_t adv_data = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x0006, //slave connection min interval, Time = min_interval * 1.25 msec .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5), //slave connection min interval
.max_interval = 0x0010, //slave connection max interval, Time = max_interval * 1.25 msec .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(20), //slave connection max interval
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //test_manufacturer, .p_manufacturer_data = NULL, //test_manufacturer,
@@ -111,8 +111,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
.set_scan_rsp = true, .set_scan_rsp = true,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x0006, .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5),
.max_interval = 0x0010, .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(20),
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN,
.p_manufacturer_data = NULL, //&test_manufacturer[0], .p_manufacturer_data = NULL, //&test_manufacturer[0],
@@ -125,8 +125,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
#endif /* CONFIG_SET_RAW_ADV_DATA */ #endif /* CONFIG_SET_RAW_ADV_DATA */
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -92,8 +92,8 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };
@@ -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
*/ */
@@ -66,32 +66,32 @@ static esp_ble_ext_scan_params_t ext_scan_params = {
}; };
const esp_ble_conn_params_t phy_1m_conn_params = { const esp_ble_conn_params_t phy_1m_conn_params = {
.scan_interval = 0x40, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(40),
.scan_window = 0x40, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(40),
.interval_min = 320, .interval_min = 320,
.interval_max = 320, .interval_max = 320,
.latency = 0, .latency = 0,
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
.min_ce_len = 0, .min_ce_len = 0,
.max_ce_len = 0, .max_ce_len = 0,
}; };
const esp_ble_conn_params_t phy_2m_conn_params = { const esp_ble_conn_params_t phy_2m_conn_params = {
.scan_interval = 0x40, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(40),
.scan_window = 0x40, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(40),
.interval_min = 320, .interval_min = 320,
.interval_max = 320, .interval_max = 320,
.latency = 0, .latency = 0,
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
.min_ce_len = 0, .min_ce_len = 0,
.max_ce_len = 0, .max_ce_len = 0,
}; };
const esp_ble_conn_params_t phy_coded_conn_params = { const esp_ble_conn_params_t phy_coded_conn_params = {
.scan_interval = 0x40, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(40),
.scan_window = 0x40, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(40),
.interval_min = 320, // 306-> 362Kbps .interval_min = 320, // 306-> 362Kbps
.interval_max = 320, .interval_max = 320,
.latency = 0, .latency = 0,
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
.min_ce_len = 0, .min_ce_len = 0,
.max_ce_len = 0, .max_ce_len = 0,
}; };
@@ -52,8 +52,8 @@ static esp_ble_gap_ext_adv_t ext_adv[1] = {
esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { esp_ble_gap_ext_adv_params_t ext_adv_params_2M = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE,
.interval_min = 0x20, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.interval_max = 0x20, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(20),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -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
*/ */
@@ -110,9 +110,9 @@ const esp_ble_conn_params_t phy_1m_conn_params = {
.latency = 0, .latency = 0,
.max_ce_len = 0, .max_ce_len = 0,
.min_ce_len = 0, .min_ce_len = 0,
.scan_interval = 0x40, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(40),
.scan_window = 0x40, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(40),
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
}; };
const esp_ble_conn_params_t phy_2m_conn_params = { const esp_ble_conn_params_t phy_2m_conn_params = {
@@ -121,9 +121,9 @@ const esp_ble_conn_params_t phy_2m_conn_params = {
.latency = 0, .latency = 0,
.max_ce_len = 0, .max_ce_len = 0,
.min_ce_len = 0, .min_ce_len = 0,
.scan_interval = 0x40, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(40),
.scan_window = 0x40, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(40),
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
}; };
const esp_ble_conn_params_t phy_coded_conn_params = { const esp_ble_conn_params_t phy_coded_conn_params = {
@@ -132,9 +132,9 @@ const esp_ble_conn_params_t phy_coded_conn_params = {
.latency = 0, .latency = 0,
.max_ce_len = 0, .max_ce_len = 0,
.min_ce_len = 0, .min_ce_len = 0,
.scan_interval = 0x40, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(40),
.scan_window = 0x40, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(40),
.supervision_timeout = 600, .supervision_timeout = ESP_BLE_GAP_SUPERVISION_TIMEOUT_MS(6000),
}; };
struct gattc_profile_inst { struct gattc_profile_inst {
@@ -112,8 +112,8 @@ static esp_ble_gap_ext_adv_t ext_adv[1] = {
esp_ble_gap_ext_adv_params_t ext_adv_params = { esp_ble_gap_ext_adv_params_t ext_adv_params = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE,
.interval_min = 0x20, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.interval_max = 0x20, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(20),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -49,8 +49,8 @@ static SemaphoreHandle_t test_sem = NULL;
esp_ble_gap_ext_adv_params_t ext_adv_params_1M = { esp_ble_gap_ext_adv_params_t ext_adv_params_1M = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE,
.interval_min = 0x30, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(30),
.interval_max = 0x30, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(30),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -64,8 +64,8 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_1M = {
esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { esp_ble_gap_ext_adv_params_t ext_adv_params_2M = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_SCANNABLE, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_SCANNABLE,
.interval_min = 0x40, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(40),
.interval_max = 0x40, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -79,8 +79,8 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_2M = {
esp_ble_gap_ext_adv_params_t legacy_adv_params = { esp_ble_gap_ext_adv_params_t legacy_adv_params = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_LEGACY_IND, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_LEGACY_IND,
.interval_min = 0x45, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(43),
.interval_max = 0x45, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(43),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -94,8 +94,8 @@ esp_ble_gap_ext_adv_params_t legacy_adv_params = {
esp_ble_gap_ext_adv_params_t ext_adv_params_coded = { esp_ble_gap_ext_adv_params_t ext_adv_params_coded = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_SCANNABLE, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_SCANNABLE,
.interval_min = 0x50, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(50),
.interval_max = 0x50, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(50),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -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
*/ */
@@ -58,8 +58,8 @@ static SemaphoreHandle_t test_sem = NULL;
esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { esp_ble_gap_ext_adv_params_t ext_adv_params_2M = {
.type = ESP_BLE_GAP_SET_EXT_ADV_PROP_NONCONN_NONSCANNABLE_UNDIRECTED, .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_NONCONN_NONSCANNABLE_UNDIRECTED,
.interval_min = 0x30, .interval_min = ESP_BLE_GAP_ADV_ITVL_MS(30),
.interval_max = 0x30, .interval_max = ESP_BLE_GAP_ADV_ITVL_MS(30),
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
.filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
.primary_phy = ESP_BLE_GAP_PHY_1M, .primary_phy = ESP_BLE_GAP_PHY_1M,
@@ -72,8 +72,8 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_2M = {
}; };
static esp_ble_gap_periodic_adv_params_t periodic_adv_params = { static esp_ble_gap_periodic_adv_params_t periodic_adv_params = {
.interval_min = 0x40, // 80 ms interval .interval_min = ESP_BLE_GAP_PERIODIC_ADV_ITVL_MS(80),
.interval_max = 0x40, .interval_max = ESP_BLE_GAP_PERIODIC_ADV_ITVL_MS(80),
.properties = 0, // Do not include TX power .properties = 0, // Do not include TX power
}; };
@@ -98,8 +98,8 @@ esp_attr_value_t gatts_initial_char_val = {
}; };
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x060, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(60),
.adv_int_max = 0x060, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(60),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_RPA_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -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
*/ */
@@ -145,8 +145,8 @@ static esp_ble_adv_data_t adv_data = {
.set_scan_rsp = false, .set_scan_rsp = false,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x20, .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(40),
.max_interval = 0x40, .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(80),
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, .manufacturer_len = 0,
.p_manufacturer_data = NULL, .p_manufacturer_data = NULL,
@@ -162,8 +162,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
.set_scan_rsp = true, .set_scan_rsp = true,
.include_name = true, .include_name = true,
.include_txpower = true, .include_txpower = true,
.min_interval = 0x0006, .min_interval = ESP_BLE_GAP_CONN_ITVL_MS(7.5),
.max_interval = 0x0010, .max_interval = ESP_BLE_GAP_CONN_ITVL_MS(20),
.appearance = 0x00, .appearance = 0x00,
.manufacturer_len = 0, .manufacturer_len = 0,
.p_manufacturer_data = NULL, .p_manufacturer_data = NULL,
@@ -176,8 +176,8 @@ static esp_ble_adv_data_t scan_rsp_data = {
#endif /* CONFIG_SET_RAW_ADV_DATA */ #endif /* CONFIG_SET_RAW_ADV_DATA */
static esp_ble_adv_params_t adv_params = { static esp_ble_adv_params_t adv_params = {
.adv_int_min = 0x20, .adv_int_min = ESP_BLE_GAP_ADV_ITVL_MS(20),
.adv_int_max = 0x40, .adv_int_max = ESP_BLE_GAP_ADV_ITVL_MS(40),
.adv_type = ADV_TYPE_IND, .adv_type = ADV_TYPE_IND,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.channel_map = ADV_CHNL_ALL, .channel_map = ADV_CHNL_ALL,
@@ -215,8 +215,8 @@ static esp_ble_scan_params_t ble_scan_params = {
.scan_type = BLE_SCAN_TYPE_ACTIVE, .scan_type = BLE_SCAN_TYPE_ACTIVE,
.own_addr_type = BLE_ADDR_TYPE_PUBLIC, .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
.scan_interval = 0x50, .scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50),
.scan_window = 0x30, .scan_window = ESP_BLE_GAP_SCAN_WIN_MS(30),
.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
}; };