diff --git a/components/bt/host/bluedroid/Kconfig.in b/components/bt/host/bluedroid/Kconfig.in index cb2b1dc4ba..734fe0a730 100644 --- a/components/bt/host/bluedroid/Kconfig.in +++ b/components/bt/host/bluedroid/Kconfig.in @@ -1302,7 +1302,7 @@ config BT_BLE_RPA_TIMEOUT Default is 900 s (15 minutes). Range is 1 s to 1 hour (3600 s). menuconfig BT_BLE_50_FEATURES_SUPPORTED - bool "Enable BLE 5.0 features(please disable BLE 4.2 if enable BLE 5.0)" + bool "Enable BLE 5.0 and above features(please disable BLE 4.2 if enable BLE 5.0)" depends on (BT_BLE_ENABLED && ((BT_CONTROLLER_ENABLED && SOC_BLE_50_SUPPORTED) || BT_CONTROLLER_DISABLED)) default y help @@ -1366,37 +1366,6 @@ config BT_BLE_FEAT_CREATE_SYNC_ENH help Enable the create sync enhancements -menuconfig BT_BLE_42_FEATURES_SUPPORTED - bool "Enable BLE 4.2 features(please disable BLE 5.0 if enable BLE 4.2)" - depends on BT_BLE_ENABLED - default y if IDF_TARGET_ESP32 - default n - help - This enables BLE 4.2 features. - This option is universally supported by all ESP chips with BLE capabilities. - BLE 4.2 and BLE 5.0 cannot be used simultaneously. - -config BT_BLE_42_DTM_TEST_EN - bool "Enable BLE 4.2 DTM test" - depends on BT_BLE_42_FEATURES_SUPPORTED - default y - help - This enables BLE 4.2 direct test mode - -config BT_BLE_42_ADV_EN - bool "Enable BLE 4.2 advertising" - depends on BT_BLE_42_FEATURES_SUPPORTED - default y - help - This enables BLE v4.2 advertising - -config BT_BLE_42_SCAN_EN - bool "Enable BLE 4.2 scan" - depends on BT_BLE_42_FEATURES_SUPPORTED - default y - help - This enables BLE v4.2 scan - menuconfig BT_BLE_FEAT_ISO_EN bool "Enable BLE 5.2 iso feature" depends on (BT_BLE_50_FEATURES_SUPPORTED && ((BT_CONTROLLER_ENABLED && SOC_BLE_AUDIO_SUPPORTED) || BT_CONTROLLER_DISABLED)) # NOERROR @@ -1516,6 +1485,44 @@ config BT_BLE_FEAT_PAWR_EN help Enable BLE Periodic Advertisement with Response(PAwR) feature +config BT_BLE_FEAT_ADV_CODING_SELECTION + bool "Enable Advertising Coding Selection" + depends on (BT_BLE_50_FEATURES_SUPPORTED && ((BT_CONTROLLER_ENABLED && SOC_BLE_ADV_CODING_SELECT_SUPPORTED) || BT_CONTROLLER_DISABLED)) # NOERROR + default n + help + Enable Advertising Coding Selection + +menuconfig BT_BLE_42_FEATURES_SUPPORTED + bool "Enable BLE 4.2 features(please disable BLE 5.0 if enable BLE 4.2)" + depends on BT_BLE_ENABLED + default y if IDF_TARGET_ESP32 + default n + help + This enables BLE 4.2 features. + This option is universally supported by all ESP chips with BLE capabilities. + BLE 4.2 and BLE 5.0 cannot be used simultaneously. + +config BT_BLE_42_DTM_TEST_EN + bool "Enable BLE 4.2 DTM test" + depends on BT_BLE_42_FEATURES_SUPPORTED + default y + help + This enables BLE 4.2 direct test mode + +config BT_BLE_42_ADV_EN + bool "Enable BLE 4.2 advertising" + depends on BT_BLE_42_FEATURES_SUPPORTED + default y + help + This enables BLE v4.2 advertising + +config BT_BLE_42_SCAN_EN + bool "Enable BLE 4.2 scan" + depends on BT_BLE_42_FEATURES_SUPPORTED + default y + help + This enables BLE v4.2 scan + config BT_BLE_VENDOR_HCI_EN bool "Enable BLE Vendor HCI command and event" depends on BT_BLE_ENABLED diff --git a/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h b/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h index c23c403d3b..df0f8629f2 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h @@ -862,6 +862,12 @@ typedef uint8_t esp_ble_gap_all_phys_t; #define ESP_BLE_GAP_PRI_PHY_CODED ESP_BLE_GAP_PHY_CODED /*!< Primary Phy is LE CODED */ typedef uint8_t esp_ble_gap_pri_phy_t; // primary phy +#define ESP_BLE_GAP_RPT_PHY_1M 1 /*!< Advertiser PHY is LE 1M */ +#define ESP_BLE_GAP_RPT_PHY_2M 2 /*!< Advertiser PHY is LE 2M */ +#define ESP_BLE_GAP_RPT_PHY_S8 3 /*!< If the Advertising Coding Selection feature bit is set: Advertising PHY is LE 125K Otherwise: Advertiser PHY is LE Coded */ +#define ESP_BLE_GAP_RPT_PHY_S2 4 /*!< If the Advertising Coding Selection feature bit is set: Advertising PHY is LE 500K Otherwise: Reserved for future use */ +typedef uint8_t esp_ble_gap_rpt_phy_t; // extended Advertising report phy + #define ESP_BLE_GAP_PHY_1M_PREF_MASK (1 << 0) /*!< The Host prefers use the LE1M transmitter or receiver PHY */ #define ESP_BLE_GAP_PHY_2M_PREF_MASK (1 << 1) /*!< The Host prefers use the LE2M transmitter or receiver PHY */ #define ESP_BLE_GAP_PHY_CODED_PREF_MASK (1 << 2) /*!< The Host prefers use the LE CODED transmitter or receiver PHY */ @@ -910,6 +916,21 @@ typedef uint8_t esp_ble_gap_adv_type_t; /// max number of advertising sets to enable or disable #define EXT_ADV_NUM_SETS_MAX (10) /*!< max evt instance num */ +#if (CONFIG_BT_BLE_FEAT_ADV_CODING_SELECTION) +// The Host has no preferred or required coding when transmitting on the LE Coded PHY +#define ESP_BLE_ADV_PHY_OPTIONS_NO_PREFER_CODED (0x00) +// The Host prefers that S=2 coding be used when transmitting on the LE Coded PHY +#define ESP_BLE_ADV_PHY_OPTIONS_PREFER_CODED_S2 (0x01) +// The Host prefers that S=8 coding be used when transmitting on the LE Coded PHY +#define ESP_BLE_ADV_PHY_OPTIONS_PREFER_CODED_S8 (0x02) +// The Host requires that S=2 coding be used when transmitting on the LE Coded PHY +#define ESP_BLE_ADV_PHY_OPTIONS_REQUIRE_CODED_S2 (0x03) +// The Host requires that S=8 coding be used when transmitting on the LE Coded PHY +#define ESP_BLE_ADV_PHY_OPTIONS_REQUIRE_CODED_S8 (0x04) + +typedef uint8_t esp_ble_gap_adv_phy_options_t; +#endif //(CONFIG_BT_BLE_FEAT_ADV_CODING_SELECTION) + /** * @brief ext adv parameters */ @@ -928,6 +949,20 @@ typedef struct { esp_ble_gap_phy_t secondary_phy; /*!< ext adv secondary phy */ uint8_t sid; /*!< ext adv sid */ bool scan_req_notif; /*!< ext adv scan request event notify */ +#if (CONFIG_BT_BLE_FEAT_ADV_CODING_SELECTION) + esp_ble_gap_adv_phy_options_t primary_adv_phy_options; /*!< + 0x00: The Host has no preferred or required coding when transmitting on the LE Coded PHY + 0x01: The Host prefers that S=2 coding be used when transmitting on the LE Coded PHY + 0x02: The Host prefers that S=8 coding be used when transmitting on the LE Coded PHY + 0x03: The Host requires that S=2 coding be used when transmitting on the LE Coded PHY + 0x04: The Host requires that S=8 coding be used when transmitting on the LE Coded PHY */ + esp_ble_gap_adv_phy_options_t secondary_adv_phy_options; /*!< + 0x00: The Host has no preferred or required coding when transmitting on the LE Coded PHY + 0x01: The Host prefers that S=2 coding be used when transmitting on the LE Coded PHY + 0x02: The Host prefers that S=8 coding be used when transmitting on the LE Coded PHY + 0x03: The Host requires that S=2 coding be used when transmitting on the LE Coded PHY + 0x04: The Host requires that S=8 coding be used when transmitting on the LE Coded PHY */ +#endif // CONFIG_BT_BLE_FEAT_ADV_CODING_SELECTION } esp_ble_gap_ext_adv_params_t; /** @@ -1040,8 +1075,28 @@ typedef struct { esp_ble_gap_adv_type_t event_type; /*!< extend advertising type */ uint8_t addr_type; /*!< extend advertising address type */ esp_bd_addr_t addr; /*!< extend advertising address */ +#if (CONFIG_BT_BLE_FEAT_PAWR_EN) + esp_ble_gap_rpt_phy_t primary_phy; /*!< extend advertising primary phy + 0x01: Advertiser PHY is LE 1M + 0x03: If the Advertising Coding Selection (Host Support) feature bit is set: Advertising PHY is LE Coded with S=8 data coding + Otherwise: Advertiser PHY is LE Coded + 0x04: If the Advertising Coding Selection (Host Support) feature bit is set: Advertising PHY is LE Coded with S=2 data coding + Otherwise: Reserved for future use + */ + + esp_ble_gap_rpt_phy_t secondly_phy; /*!< extend advertising secondary phy + 0x00: No packets on the secondary advertising physical channel + 0x01: Advertiser PHY is LE 1M + 0x02: Advertiser PHY is LE 2M + 0x03: If the Advertising Coding Selection (Host Support) feature bit is set: Advertising PHY is LE Coded with S=8 data coding + Otherwise: Advertiser PHY is LE Coded + 0x04: If the Advertising Coding Selection (Host Support) feature bit is set: Advertising PHY is LE Coded with S=2 data coding + Otherwise: Reserved for future use + */ +#else esp_ble_gap_pri_phy_t primary_phy; /*!< extend advertising primary phy */ esp_ble_gap_phy_t secondly_phy; /*!< extend advertising secondary phy */ +#endif uint8_t sid; /*!< extend advertising sid */ uint8_t tx_power; /*!< extend advertising tx power */ int8_t rssi; /*!< extend advertising rssi */ diff --git a/components/bt/host/bluedroid/bta/include/bta/bta_api.h b/components/bt/host/bluedroid/bta/include/bta/bta_api.h index b87d33acf3..17e439c2ad 100644 --- a/components/bt/host/bluedroid/bta/include/bta/bta_api.h +++ b/components/bt/host/bluedroid/bta/include/bta/bta_api.h @@ -1573,6 +1573,10 @@ typedef struct { tBTA_DM_BLE_GAP_PHY secondary_phy; UINT8 sid; BOOLEAN scan_req_notif; +#if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) + uint8_t primary_adv_phy_options; + uint8_t secondary_adv_phy_options; +#endif // (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) } tBTA_DM_BLE_GAP_EXT_ADV_PARAMS; typedef struct { diff --git a/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c b/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c index b517dea902..f42ab484a9 100644 --- a/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c +++ b/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c @@ -2138,7 +2138,7 @@ void btc_gap_ble_cb_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src) break; #endif // (BT_BLE_FEAT_PAWR_EN == TRUE) default: - BTC_TRACE_ERROR("%s, Unhandled deep copy %d\n", __func__, msg->act); + // BTC_TRACE_ERROR("%s, Unhandled deep copy %d\n", __func__, msg->act); break; } } @@ -2619,7 +2619,10 @@ void btc_gap_ble_call_handler(btc_msg_t *msg) params.secondary_phy = arg_5->ext_adv_set_params.params.secondary_phy; params.sid = arg_5->ext_adv_set_params.params.sid; params.scan_req_notif = arg_5->ext_adv_set_params.params.scan_req_notif; - +#if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) + params.primary_adv_phy_options = arg_5->ext_adv_set_params.params.primary_adv_phy_options; + params.secondary_adv_phy_options= arg_5->ext_adv_set_params.params.secondary_adv_phy_options; +#endif // (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) memcpy(params.peer_addr, arg_5->ext_adv_set_params.params.peer_addr, sizeof(BD_ADDR)); BTC_TRACE_DEBUG("BTC_GAP_BLE_SET_EXT_ADV_PARAMS"); diff --git a/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h b/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h index e784919b57..c2318de1d0 100644 --- a/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h +++ b/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h @@ -370,6 +370,12 @@ #define UC_BT_BLE_FEAT_PAWR_EN FALSE #endif +#ifdef CONFIG_BT_BLE_FEAT_ADV_CODING_SELECTION +#define UC_BT_BLE_FEAT_ADV_CODING_SELECTION CONFIG_BT_BLE_FEAT_ADV_CODING_SELECTION +#else +#define UC_BT_BLE_FEAT_ADV_CODING_SELECTION FALSE +#endif + #ifdef CONFIG_BT_BLE_VENDOR_HCI_EN #define UC_BT_BLE_VENDOR_HCI_EN CONFIG_BT_BLE_VENDOR_HCI_EN #else diff --git a/components/bt/host/bluedroid/common/include/common/bt_target.h b/components/bt/host/bluedroid/common/include/common/bt_target.h index eb2a6b92bb..4dadb8a29f 100644 --- a/components/bt/host/bluedroid/common/include/common/bt_target.h +++ b/components/bt/host/bluedroid/common/include/common/bt_target.h @@ -421,6 +421,12 @@ #define BT_BLE_FEAT_PAWR_EN FALSE #endif +#if (UC_BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) +#define BT_BLE_FEAT_ADV_CODING_SELECTION TRUE +#else +#define BT_BLE_FEAT_ADV_CODING_SELECTION FALSE +#endif + #if (UC_BT_BLE_VENDOR_HCI_EN == TRUE) #define BLE_VENDOR_HCI_EN TRUE #else diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c b/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c index bda51c25de..20225ef564 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c @@ -401,7 +401,18 @@ tBTM_STATUS BTM_BleSetExtendedAdvParams(UINT8 instance, tBTM_BLE_GAP_EXT_ADV_PAR #else btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type = params->own_addr_type; #endif - +#if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) + if ((err = btsnd_hcic_ble_set_ext_adv_params_v2(instance, params->type, params->interval_min, params->interval_max, + params->channel_map, params->own_addr_type, params->peer_addr_type, + params->peer_addr, params->filter_policy, params->tx_power, + params->primary_phy, params->max_skip, + params->secondary_phy, params->sid, params->scan_req_notif, + params->primary_adv_phy_options, params->secondary_adv_phy_options)) != HCI_SUCCESS) { + BTM_TRACE_ERROR("LE EA SetParams: cmd err=0x%x", err); + status = BTM_HCI_ERROR | err; + goto end; + } +#else if ((err = btsnd_hcic_ble_set_ext_adv_params(instance, params->type, params->interval_min, params->interval_max, params->channel_map, params->own_addr_type, params->peer_addr_type, params->peer_addr, params->filter_policy, params->tx_power, @@ -411,6 +422,7 @@ tBTM_STATUS BTM_BleSetExtendedAdvParams(UINT8 instance, tBTM_BLE_GAP_EXT_ADV_PAR status = BTM_HCI_ERROR | err; goto end; } +#endif // (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) extend_adv_cb.inst[instance].configured = true; @@ -692,7 +704,6 @@ tBTM_STATUS BTM_BlePeriodicAdvSetParams(UINT8 instance, tBTM_BLE_Periodic_Adv_Pa tBTM_STATUS status = BTM_SUCCESS; tHCI_STATUS err = HCI_SUCCESS; tBTM_BLE_5_GAP_CB_PARAMS cb_params = {0}; - //ext_adv_flag = true; if (instance >= MAX_BLE_ADV_INSTANCE) { status = BTM_ILLEGAL_VALUE; diff --git a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c index 7947ef557f..10d0dd89d2 100644 --- a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c +++ b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c @@ -1221,7 +1221,55 @@ UINT8 btsnd_hcic_ble_set_extend_rand_address(UINT8 adv_handle, BD_ADDR rand_addr return btu_hcif_send_cmd_sync (LOCAL_BR_EDR_CONTROLLER_ID, p); } +#if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) +UINT8 btsnd_hcic_ble_set_ext_adv_params_v2(UINT8 adv_handle, UINT16 properties, UINT32 interval_min, + UINT32 interval_max, UINT8 channel_map, UINT8 own_addr_type, + UINT8 peer_addr_type, BD_ADDR peer_addr, + UINT8 adv_filter_policy, INT8 adv_tx_power, + UINT8 primary_adv_phy, UINT8 secondary_adv_max_skip, + UINT8 secondary_adv_phy, + UINT8 adv_sid, UINT8 scan_req_ntf_enable, + UINT8 primary_adv_phy_options, UINT8 secondary_adv_phy_options) +{ + BT_HDR *p; + UINT8 *pp; + + HCI_TRACE_EVENT("%s, adv_handle = %d, properties = %d, interval_min = %d, interval_max = %d, channel_map = %d,\n\ + own_addr_type = %d, peer_addr_type = %d, adv_filter_policy = %d,\n\ + adv_tx_power = %d, primary_adv_phy = %d, secondary_adv_max_skip = %d, secondary_adv_phy = %d,\n\ + adv_sid = %d, scan_req_ntf_enable = %d, primary_phy_options %d secondary_phy_options %d", __func__, adv_handle, properties, interval_min, interval_max, + channel_map, own_addr_type, peer_addr_type, adv_filter_policy, adv_tx_power, + primary_adv_phy, secondary_adv_max_skip, secondary_adv_phy, adv_sid, scan_req_ntf_enable, + primary_adv_phy_options, secondary_adv_phy_options); + + HCIC_BLE_CMD_CREATED(p, pp, HCIC_PARAM_SIZE_EXT_ADV_SET_PARAMS + 2); + + UINT16_TO_STREAM(pp, HCI_BLE_SET_EXT_ADV_PARAM_V2); + UINT8_TO_STREAM(pp, HCIC_PARAM_SIZE_EXT_ADV_SET_PARAMS + 2); + + UINT8_TO_STREAM(pp, adv_handle); + UINT16_TO_STREAM(pp, properties); + UINT24_TO_STREAM(pp, interval_min); + UINT24_TO_STREAM(pp, interval_max); + UINT8_TO_STREAM(pp, channel_map); + UINT8_TO_STREAM(pp, own_addr_type); + UINT8_TO_STREAM(pp, peer_addr_type); + BDADDR_TO_STREAM (pp, peer_addr); + UINT8_TO_STREAM(pp, adv_filter_policy); + INT8_TO_STREAM(pp, adv_tx_power); + UINT8_TO_STREAM(pp, primary_adv_phy); + UINT8_TO_STREAM(pp, secondary_adv_max_skip); + UINT8_TO_STREAM(pp, secondary_adv_phy); + UINT8_TO_STREAM(pp, adv_sid); + UINT8_TO_STREAM(pp, scan_req_ntf_enable); + UINT8_TO_STREAM(pp, primary_adv_phy_options); + UINT8_TO_STREAM(pp, secondary_adv_phy_options); + + return btu_hcif_send_cmd_sync (LOCAL_BR_EDR_CONTROLLER_ID, p); +} + +#else UINT8 btsnd_hcic_ble_set_ext_adv_params(UINT8 adv_handle, UINT16 properties, UINT32 interval_min, UINT32 interval_max, UINT8 channel_map, UINT8 own_addr_type, UINT8 peer_addr_type, BD_ADDR peer_addr, @@ -1264,8 +1312,7 @@ UINT8 btsnd_hcic_ble_set_ext_adv_params(UINT8 adv_handle, UINT16 properties, UIN return btu_hcif_send_cmd_sync (LOCAL_BR_EDR_CONTROLLER_ID, p); } - -bool ext_adv_flag = false; +#endif // #if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) UINT8 btsnd_hcic_ble_set_ext_adv_data(UINT8 adv_handle, UINT8 operation, UINT8 fragment_prefrence, @@ -1275,7 +1322,6 @@ UINT8 btsnd_hcic_ble_set_ext_adv_data(UINT8 adv_handle, UINT8 *pp; HCI_TRACE_EVENT("%s, adv_handle = %d, operation = %d, fragment_prefrence = %d,\ data_len = %d", __func__, adv_handle, operation, fragment_prefrence, data_len); - ext_adv_flag = true; HCIC_BLE_CMD_CREATED(p, pp, data_len + 4); UINT16_TO_STREAM(pp, HCI_BLE_SET_EXT_ADV_DATA); diff --git a/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h b/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h index 5e1dcbceed..8c0460c457 100644 --- a/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h +++ b/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h @@ -781,6 +781,10 @@ typedef struct { tBTM_BLE_GAP_PHY secondary_phy; UINT8 sid; BOOLEAN scan_req_notif; +#if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) + UINT8 primary_adv_phy_options; + UINT8 secondary_adv_phy_options; +#endif // (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) } tBTM_BLE_GAP_EXT_ADV_PARAMS; typedef struct { diff --git a/components/bt/host/bluedroid/stack/include/stack/hcidefs.h b/components/bt/host/bluedroid/stack/include/stack/hcidefs.h index 81bfbe0f43..a539b3e69d 100644 --- a/components/bt/host/bluedroid/stack/include/stack/hcidefs.h +++ b/components/bt/host/bluedroid/stack/include/stack/hcidefs.h @@ -443,6 +443,10 @@ #define HCI_BLE_SUBRATE_REQUEST (0x007E | HCI_GRP_BLE_CMDS) #endif // #if (BLE_FEAT_CONN_SUBRATING == TRUE) +#if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) +#define HCI_BLE_SET_EXT_ADV_PARAM_V2 (0x007F | HCI_GRP_BLE_CMDS) +#endif // (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) + #if (BT_BLE_FEAT_PAWR_EN == TRUE) #define HCI_BLE_SET_PERIOD_ADV_SUBEVT_DATA (0x0082 | HCI_GRP_BLE_CMDS) #define HCI_BLE_SET_PERIOD_ADV_RSP_DATA (0x0083 | HCI_GRP_BLE_CMDS) diff --git a/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h b/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h index 9ebbebdf92..d497ee2592 100644 --- a/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h +++ b/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h @@ -1265,4 +1265,15 @@ UINT8 btsnd_hcic_ble_set_periodic_adv_rsp_data(UINT16 sync_handle, UINT16 req_ev UINT8 btsnd_hcic_ble_set_periodic_sync_subevt(UINT16 sync_handle, UINT16 periodic_adv_properties, UINT8 num_subevents_to_sync, UINT8 *subevt); #endif // #if (BT_BLE_FEAT_PAWR_EN == TRUE) +#if (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) +UINT8 btsnd_hcic_ble_set_ext_adv_params_v2(UINT8 adv_handle, UINT16 properties, UINT32 interval_min, + UINT32 interval_max, UINT8 channel_map, UINT8 own_addr_type, + UINT8 peer_addr_type, BD_ADDR peer_addr, + UINT8 adv_filter_policy, INT8 adv_tx_power, + UINT8 primary_adv_phy, UINT8 secondary_adv_max_skip, + UINT8 secondary_adv_phy, + UINT8 adv_sid, UINT8 scan_req_ntf_enable, + UINT8 primary_adv_phy_options, UINT8 secondary_adv_phy_options); +#endif // (BT_BLE_FEAT_ADV_CODING_SELECTION == TRUE) + #endif