Merge branch 'feat/add_new_bluedroid_host_examples_v5.5' into 'release/v5.5'

feat(ble/bluedroid): Add new bluedroid host examples (v5.5)

See merge request espressif/esp-idf!44880
This commit is contained in:
Island
2026-03-02 10:36:29 +08:00
92 changed files with 6283 additions and 68 deletions
@@ -196,6 +196,26 @@ config BT_LE_POWER_CONTROL_ENABLED
help
Set this option to enable the Power Control feature on controller
config BT_LE_SUBRATE_ENABLED
bool "Enable BLE connection subrating"
depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED && !BT_BLUEDROID_ENABLED && SOC_BLE_SUBRATE_SUPPORTED
default n
help
Set this option to enable the Connection Subrating feature on controller
config BT_LE_CTE_FEATURE_ENABLED
bool "Enable Bluetooth LE Direction Finding (AoA/AoD)"
depends on BT_LE_50_FEATURE_SUPPORT && SOC_BLE_CTE_SUPPORTED && !(BT_LE_SECURITY_ENABLE)
default n
help
Enable this option to activate Bluetooth LE Direction Finding (AoA/AoD) feature.
Note:
This feature allows devices to determine the direction of a Bluetooth CTE signal,
enabling Angle of Arrival (AoA) and Angle of Departure (AoD) functionality.
In chip esp32h2, Direction Finding is not supported in encrypted
communication scenarios. If you are using chip esp32h2, ensure that encryption is
disabled when using this feature.
config BT_LE_PERIODIC_ADV_WITH_RESPONSE_ENABLED
bool "Enable BLE periodic advertising with response"
depends on BT_LE_50_FEATURE_SUPPORT && SOC_BLE_PERIODIC_ADV_WITH_RESPONSE
@@ -40,6 +40,7 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_COUNT)
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_DISCARDABLE_COUNT)
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED MYNEWT_VAL(BLE_POWER_CONTROL)
#define DEFAULT_BT_LE_SUBRATE_ENABLED MYNEWT_VAL(BLE_CONN_SUBRATING)
#if defined(CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
@@ -145,6 +146,13 @@ extern "C" {
#else
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED (0)
#endif
#if defined(CONFIG_BT_BLE_FEAT_CONN_SUBRATING)
#define DEFAULT_BT_LE_SUBRATE_ENABLED (CONFIG_BT_BLE_FEAT_CONN_SUBRATING)
#elif defined(CONFIG_BT_LE_SUBRATE_ENABLED)
#define DEFAULT_BT_LE_SUBRATE_ENABLED (CONFIG_BT_LE_SUBRATE_ENABLED)
#else
#define DEFAULT_BT_LE_SUBRATE_ENABLED (0)
#endif
#if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
@@ -227,6 +227,13 @@ config BT_LE_POWER_CONTROL_ENABLED
help
Set this option to enable the Power Control feature on controller
config BT_LE_SUBRATE_ENABLED
bool "Enable BLE connection subrating"
depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED && !BT_BLUEDROID_ENABLED && SOC_BLE_SUBRATE_SUPPORTED
default n
help
Set this option to enable the Connection Subrating feature on controller
config BT_LE_CTE_FEATURE_ENABLED
bool "Enable Bluetooth LE Direction Finding (AoA/AoD)"
depends on BT_LE_50_FEATURE_SUPPORT && SOC_BLE_CTE_SUPPORTED
@@ -146,6 +146,13 @@ extern "C" {
#else
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED (0)
#endif
#if defined(CONFIG_BT_BLE_FEAT_CONN_SUBRATING)
#define DEFAULT_BT_LE_SUBRATE_ENABLED (CONFIG_BT_BLE_FEAT_CONN_SUBRATING)
#elif defined(CONFIG_BT_LE_SUBRATE_ENABLED)
#define DEFAULT_BT_LE_SUBRATE_ENABLED (CONFIG_BT_LE_SUBRATE_ENABLED)
#else
#define DEFAULT_BT_LE_SUBRATE_ENABLED (0)
#endif
#if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
@@ -167,7 +174,6 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1)
#endif
#define DEFAULT_BT_LE_SUBRATE_ENABLED 0
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif
@@ -227,6 +227,13 @@ config BT_LE_POWER_CONTROL_ENABLED
help
Set this option to enable the Power Control feature on controller
config BT_LE_SUBRATE_ENABLED
bool "Enable BLE connection subrating"
depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED && !BT_BLUEDROID_ENABLED && SOC_BLE_SUBRATE_SUPPORTED
default n
help
Set this option to enable the Connection Subrating feature on controller
config BT_LE_CTE_FEATURE_ENABLED
bool "Enable Bluetooth LE Direction Finding (AoA/AoD)"
depends on BT_LE_50_FEATURE_SUPPORT && SOC_BLE_CTE_SUPPORTED && !(BT_LE_SECURITY_ENABLE)
@@ -40,6 +40,7 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_COUNT)
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_DISCARDABLE_COUNT)
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED MYNEWT_VAL(BLE_POWER_CONTROL)
#define DEFAULT_BT_LE_SUBRATE_ENABLED MYNEWT_VAL(BLE_CONN_SUBRATING)
#if defined(CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
@@ -145,6 +146,13 @@ extern "C" {
#else
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED (0)
#endif
#if defined(CONFIG_BT_BLE_FEAT_CONN_SUBRATING)
#define DEFAULT_BT_LE_SUBRATE_ENABLED (CONFIG_BT_BLE_FEAT_CONN_SUBRATING)
#elif defined(CONFIG_BT_LE_SUBRATE_ENABLED)
#define DEFAULT_BT_LE_SUBRATE_ENABLED (CONFIG_BT_LE_SUBRATE_ENABLED)
#else
#define DEFAULT_BT_LE_SUBRATE_ENABLED (0)
#endif
#if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
+1 -1
View File
@@ -1542,7 +1542,7 @@ config BT_BLE_FEAT_CONN_SUBRATING
config BT_BLE_FEAT_PAWR_EN
bool "Enable Periodic Advertisement with Response(PAwR)"
depends on (BT_BLE_50_FEATURES_SUPPORTED && ((BT_CONTROLLER_ENABLED && SOC_BLE_PAWR_SUPPORTED) || BT_CONTROLLER_DISABLED)) # NOERROR
depends on (BT_BLE_50_FEATURES_SUPPORTED && ((BT_CONTROLLER_ENABLED && SOC_BLE_PERIODIC_ADV_WITH_RESPONSE) || BT_CONTROLLER_DISABLED)) # NOERROR
default n
help
Enable BLE Periodic Advertisement with Response(PAwR) feature
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -379,6 +379,25 @@ esp_err_t esp_ble_gattc_open(esp_gatt_if_t gattc_if, esp_bd_addr_t remote_bda, e
esp_err_t esp_ble_gattc_aux_open(esp_gatt_if_t gattc_if, esp_bd_addr_t remote_bda, esp_ble_addr_type_t remote_addr_type, bool is_direct);
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BT_BLE_FEAT_PAWR_EN == TRUE)
/**
* @brief Open an auxiliary connection with PAwR synced parameters
*
* @param[in] gattc_if GATT Client access interface
* @param[in] pawr_conn_params PAwR connection parameters
*
* @note
* 1. This function is used to establish a connection with a device that is synchronized to a PAwR advertiser.
* 2. The function always triggers `ESP_GATTC_CONNECT_EVT` and `ESP_GATTC_OPEN_EVT`.
*
* @return
* - ESP_OK: Success
* - ESP_ERR_INVALID_ARG: Invalid argument
* - ESP_FAIL: Failure
*/
esp_err_t esp_ble_gattc_aux_open_with_pawr_synced(esp_gatt_if_t gattc_if, esp_ble_gatt_pawr_conn_params_t *pawr_conn_params);
#endif // #if (BT_BLE_FEAT_PAWR_EN == TRUE)
/**
* @brief Close the virtual GATT Client connection
*
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -1334,7 +1334,7 @@ void btc_ble_5_gap_callback(tBTA_DM_BLE_5_GAP_EVENT event,
#if (BT_BLE_FEAT_CHANNEL_SOUNDING == TRUE)
case BTA_BLE_GAP_CS_READ_LOCAL_SUPP_CAPS_EVT:
msg.act = ESP_GAP_BLE_CS_READ_LOCAL_SUPP_CAPS_EVT;
param.cs_read_local_supp_caps.status = params->cs_read_local_supp_caps.status;
param.cs_read_local_supp_caps.status = btc_btm_status_to_esp_status(params->cs_read_local_supp_caps.status);
param.cs_read_local_supp_caps.conn_handle = params->cs_read_local_supp_caps.conn_handle;
param.cs_read_local_supp_caps.num_config_supported = params->cs_read_local_supp_caps.num_config_supported;
param.cs_read_local_supp_caps.max_consecutive_proc_supported = params->cs_read_local_supp_caps.max_consecutive_proc_supported;
@@ -1359,22 +1359,22 @@ void btc_ble_5_gap_callback(tBTA_DM_BLE_5_GAP_EVENT event,
break;
case BTA_BLE_GAP_CS_WRITE_CACHED_REMOTE_SUPP_CAPS_EVT:
msg.act = ESP_GAP_BLE_CS_WRITE_CACHED_REMOTE_SUPP_CAPS_EVT;
param.cs_write_cached_remote_supp_caps.status = params->cs_write_cached_remote_supp_caps.status;
param.cs_write_cached_remote_supp_caps.status = btc_btm_status_to_esp_status(params->cs_write_cached_remote_supp_caps.status);
param.cs_write_cached_remote_supp_caps.conn_handle = params->cs_write_cached_remote_supp_caps.conn_handle;
break;
case BTA_BLE_GAP_CS_SET_DEFAULT_SETTINGS_EVT:
msg.act = ESP_GAP_BLE_CS_SET_DEFAULT_SETTINGS_EVT;
param.cs_set_default_settings.status = params->cs_set_default_settings.status;
param.cs_set_default_settings.status = btc_btm_status_to_esp_status(params->cs_set_default_settings.status);
param.cs_set_default_settings.conn_handle = params->cs_set_default_settings.conn_handle;
break;
case BTA_BLE_GAP_CS_WRITE_CACHED_REMOTE_FAE_TAB_EVT:
msg.act = ESP_GAP_BLE_CS_WRITE_CACHED_REMOTE_FAE_TABLE_EVT;
param.cs_write_cached_remote_fae_tab.status = params->cs_write_cached_remote_fae_tab.status;
param.cs_write_cached_remote_fae_tab.status = btc_btm_status_to_esp_status(params->cs_write_cached_remote_fae_tab.status);
param.cs_write_cached_remote_fae_tab.conn_handle = params->cs_write_cached_remote_fae_tab.conn_handle;
break;
case BTA_BLE_GAP_CS_READ_REMOTE_SUPP_CAPS_CMPL_EVT:
msg.act = ESP_GAP_BLE_CS_READ_REMOTE_SUPP_CAPS_CMPL_EVT;
param.cs_read_remote_supp_caps.status = params->cs_read_remote_supp_caps.status;
param.cs_read_remote_supp_caps.status = btc_btm_status_to_esp_status(params->cs_read_remote_supp_caps.status);
param.cs_read_remote_supp_caps.conn_handle = params->cs_read_remote_supp_caps.conn_handle;
param.cs_read_remote_supp_caps.num_config_supported = params->cs_read_remote_supp_caps.num_config_supported;
param.cs_read_remote_supp_caps.max_consecutive_proc_supported = params->cs_read_remote_supp_caps.max_consecutive_proc_supported;
@@ -1399,16 +1399,16 @@ void btc_ble_5_gap_callback(tBTA_DM_BLE_5_GAP_EVENT event,
break;
case BTA_BLE_GAP_CS_SET_CHANNEL_CLASS_CMPL_EVT:
msg.act = ESP_GAP_BLE_CS_SET_CHANNEL_CLASS_CMPL_EVT;
param.cs_set_channel_class.status = params->status;
param.cs_set_channel_class.status = btc_btm_status_to_esp_status(params->status);
break;
case BTA_BLE_GAP_CS_PROC_PARAMS_CMPL_EVT:
msg.act = ESP_GAP_BLE_CS_SET_PROC_PARAMS_CMPL_EVT;
param.cs_set_proc_params.status = params->cs_set_proc_params.status;
param.cs_set_proc_params.status = btc_btm_status_to_esp_status(params->cs_set_proc_params.status);
param.cs_set_proc_params.conn_handle = params->cs_set_proc_params.conn_handle;
break;
case BTA_BLE_GAP_CS_PROC_ENABLE_CMPL_EVT:
msg.act = ESP_GAP_BLE_CS_PROC_ENABLE_CMPL_EVT;
param.cs_proc_enable.status = params->cs_proc_en.status;
param.cs_proc_enable.status = btc_btm_status_to_esp_status(params->cs_proc_en.status);
param.cs_proc_enable.conn_handle = params->cs_proc_en.conn_handle;
param.cs_proc_enable.config_id = params->cs_proc_en.config_id;
param.cs_proc_enable.state = params->cs_proc_en.state;
@@ -1424,18 +1424,18 @@ void btc_ble_5_gap_callback(tBTA_DM_BLE_5_GAP_EVENT event,
break;
case BTA_BLE_GAP_CS_READ_REMOTE_FAE_TABLE_CMPL_EVT:
msg.act = ESP_GAP_BLE_CS_READ_REMOTE_FAE_TABLE_CMPL_EVT;
param.cs_read_remote_fae_tab.status = params->cs_read_remote_fae_tab.status;
param.cs_read_remote_fae_tab.status = btc_btm_status_to_esp_status(params->cs_read_remote_fae_tab.status);
param.cs_read_remote_fae_tab.conn_handle = params->cs_read_remote_fae_tab.conn_handle;
memcpy(param.cs_read_remote_fae_tab.remote_fae_table, params->cs_read_remote_fae_tab.remote_fae_table, 72);
break;
case BTA_BLE_GAP_CS_SECURITY_ENABLE_CMPL_EVT:
msg.act = ESP_GAP_BLE_CS_SECURITY_ENABLE_CMPL_EVT;
param.cs_security_enable.status = params->cs_security_enable.status;
param.cs_security_enable.status = btc_btm_status_to_esp_status(params->cs_security_enable.status);
param.cs_security_enable.conn_handle = params->cs_security_enable.conn_handle;
break;
case BTA_BLE_GAP_CS_CONFIG_CMPL_EVT:
msg.act = ESP_GAP_BLE_CS_CONFIG_CMPL_EVT;
param.cs_config_update.status = params->cs_config_update.status;
param.cs_config_update.status = btc_btm_status_to_esp_status(params->cs_config_update.status);
param.cs_config_update.conn_handle = params->cs_config_update.conn_handle;
param.cs_config_update.config_id = params->cs_config_update.config_id;
param.cs_config_update.action = params->cs_config_update.action;
@@ -1838,7 +1838,7 @@ void BTM_BleSetPaSubeventData(UINT8 adv_handle, UINT8 num_subevents_with_data, u
tBTM_BLE_5_GAP_CB_PARAMS cb_params = {0};
if ((err = btsnd_hcic_ble_set_periodic_adv_subevt_data(adv_handle, num_subevents_with_data, (ble_subevent_params *)subevent_params)) != HCI_SUCCESS) {
BTM_TRACE_ERROR("%s cmd err = 0x%x", __func__, err);
BTM_TRACE_WARNING("%s cmd err = 0x%x", __func__, err);
status = BTM_HCI_ERROR | err;
}
@@ -194,6 +194,7 @@ void gatt_free(void)
fixed_queue_free(p_tcb->sr_cmd.multi_rsp_q, NULL);
p_tcb->sr_cmd.multi_rsp_q = NULL;
#endif /* #if (GATTS_INCLUDED == TRUE) */
UNUSED(p_tcb);
}
list_free(gatt_cb.p_tcb_list);
list_free(gatt_cb.p_clcb_list);
@@ -1001,7 +1002,9 @@ void gatt_data_process (tGATT_TCB *p_tcb, BT_HDR *p_buf)
pseudo_op_code = op_code & (~GATT_WRITE_CMD_MASK);
if (pseudo_op_code < GATT_OP_CODE_MAX) {
#if (GATTS_INCLUDED == TRUE) || (GATTC_INCLUDED == TRUE)
GATT_TRACE_DEBUG("%s opcode=%x msg_len=%u", __func__, op_code, msg_len);
#endif ///(GATTS_INCLUDED == TRUE) || (GATTC_INCLUDED == TRUE)
if (op_code == GATT_SIGN_CMD_WRITE) {
#if (SMP_INCLUDED == TRUE)
gatt_verify_signature(p_tcb, p_buf);
@@ -1298,32 +1298,28 @@ typedef struct {
UINT8 phy;
INT8 cur_tx_pwr_level;
INT8 max_tx_pwr_level;
} __attribute__((packed)) tBTM_BLE_ENH_TRANS_PWR_LEVEL_CMPL;
} tBTM_BLE_ENH_TRANS_PWR_LEVEL_CMPL;
typedef struct {
UINT8 status;
} __attribute__((packed)) tBTM_BLE_REMOTE_TRANS_PWR_LEVEL_CMPL;
} tBTM_BLE_REMOTE_TRANS_PWR_LEVEL_CMPL;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_SET_PATH_LOSS_RPTING_PARAMS;
} tBTM_BLE_SET_PATH_LOSS_RPTING_PARAMS;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_SET_PATH_LOSS_RPTING_ENABLE;
} tBTM_BLE_SET_PATH_LOSS_RPTING_ENABLE;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_SET_TRANS_POWER_RPTING_ENABLE;
} tBTM_BLE_SET_TRANS_POWER_RPTING_ENABLE;
typedef struct {
UINT16 conn_handle;
UINT8 cur_path_loss;
UINT8 zone_entered;
} __attribute__((packed)) tBTM_BLE_PATH_LOSS_THRESHOLD_EVT;
} tBTM_BLE_PATH_LOSS_THRESHOLD_EVT;
typedef struct {
UINT8 status;
@@ -1333,7 +1329,7 @@ typedef struct {
INT8 tx_power_level;
UINT8 tx_power_level_flag;
INT8 delta;
} __attribute__((packed)) tBTM_BLE_TRANS_POWER_REPORT_EVT;
} tBTM_BLE_TRANS_POWER_REPORT_EVT;
#endif // #if (BLE_FEAT_POWER_CONTROL_EN == TRUE)
#if (BLE_FEAT_CONN_SUBRATING == TRUE)
@@ -1344,27 +1340,27 @@ typedef struct {
UINT16 peripheral_latency;
UINT16 continuation_number;
UINT16 supervision_timeout;
} __attribute__((packed)) tBTM_BLE_SUBRATE_CHANGE_EVT;
} tBTM_BLE_SUBRATE_CHANGE_EVT;
#endif // #if (BLE_FEAT_CONN_SUBRATING == TRUE)
#if (BT_BLE_FEAT_PAWR_EN == TRUE)
typedef struct {
UINT8 status;
UINT8 adv_handle;
} __attribute__((packed)) tBTM_BLE_PA_SUBEVT_DATA_EVT;
} tBTM_BLE_PA_SUBEVT_DATA_EVT;
typedef struct {
UINT8 status;
UINT16 sync_handle;
} __attribute__((packed)) tBTM_BLE_PA_RSP_DATA_EVT;
} tBTM_BLE_PA_RSP_DATA_EVT;
typedef struct {
UINT8 status;
UINT16 sync_handle;
} __attribute__((packed)) tBTM_BLE_PA_SYNC_SUBEVT_DATA_EVT;
} tBTM_BLE_PA_SYNC_SUBEVT_DATA_EVT;
typedef struct {
UINT8 adv_handle;
UINT8 subevt_start;
UINT8 subevt_data_count;
} __attribute__((packed)) tBTM_BLE_PA_SUBEVT_DATA_REQ_EVT;
} tBTM_BLE_PA_SUBEVT_DATA_REQ_EVT;
typedef struct {
INT8 tx_power;
@@ -1374,7 +1370,7 @@ typedef struct {
UINT8 data_status;
UINT8 data_len;
UINT8 *data;
} __attribute__((packed)) tBTM_BLE_PA_RSP_DATA_INFO;
} tBTM_BLE_PA_RSP_DATA_INFO;
typedef struct {
UINT8 adv_handle;
@@ -1382,26 +1378,26 @@ typedef struct {
UINT8 tx_status;
UINT8 num_rsp;
tBTM_BLE_PA_RSP_DATA_INFO *rsp_data_info;
} __attribute__((packed)) tBTM_BLE_PA_RSP_REPORT_EVT;
} tBTM_BLE_PA_RSP_REPORT_EVT;
#endif // #if (BT_BLE_FEAT_PAWR_EN == TRUE)
#if (BT_BLE_FEAT_CHANNEL_SOUNDING == TRUE)
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CS_WRITE_CACHED_SUPPORT_CAPS_EVT;
} tBTM_BLE_CS_WRITE_CACHED_SUPPORT_CAPS_EVT;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CS_SET_DEFAULT_SETTINGS_EVT;
} tBTM_BLE_CS_SET_DEFAULT_SETTINGS_EVT;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CS_WRITE_CACHED_REMOTE_FAE_TAB_EVT;
} tBTM_BLE_CS_WRITE_CACHED_REMOTE_FAE_TAB_EVT;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CS_SET_PAROC_PARAMS_EVT;
} tBTM_BLE_CS_SET_PAROC_PARAMS_EVT;
typedef struct {
UINT8 status;
UINT16 conn_handle;
@@ -1425,18 +1421,18 @@ typedef struct {
UINT16 T_PM_times_supported;
UINT8 T_SW_times_supported;
UINT8 TX_SNR_capability;
} __attribute__((packed)) tBTM_BLE_CS_READ_REMOTE_SUPP_CAPS_CMPL_EVT;
} tBTM_BLE_CS_READ_REMOTE_SUPP_CAPS_CMPL_EVT;
typedef struct {
UINT8 status;
UINT16 conn_handle;
UINT8 remote_fae_table[72];
} __attribute__((packed)) tBTM_BLE_CS_READ_REMOTE_FAE_TAB_CMPL_EVT;
} tBTM_BLE_CS_READ_REMOTE_FAE_TAB_CMPL_EVT;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CS_SEC_ENABLE_CMPL_EVT;
} tBTM_BLE_CS_SEC_ENABLE_CMPL_EVT;
typedef struct {
UINT8 status;
@@ -1462,7 +1458,7 @@ typedef struct {
UINT8 t_ip2_time;
UINT8 t_fcs_time;
UINT8 t_pm_time;
}__attribute__((packed)) tBTM_BLE_CS_CONFIG_CMPL_EVT;
} tBTM_BLE_CS_CONFIG_CMPL_EVT;
typedef struct {
UINT8 status;
@@ -1478,14 +1474,14 @@ typedef struct {
UINT16 procedure_interval;
UINT16 procedure_count;
UINT16 max_procedure_len;
}__attribute__((packed)) tBTM_BLE_CS_PROC_ENABLE_CMPL_EVT;
} tBTM_BLE_CS_PROC_ENABLE_CMPL_EVT;
typedef struct {
UINT8 step_mode;
UINT8 step_channel;
UINT8 step_data_len;
UINT8 *data;
} __attribute__((packed)) tBTM_BLE_CS_STEP_INFO;
} tBTM_BLE_CS_STEP_INFO;
typedef struct {
UINT16 conn_handle;
@@ -1500,7 +1496,7 @@ typedef struct {
UINT8 num_ant_paths;
UINT8 num_steps_reported;
tBTM_BLE_CS_STEP_INFO *step_info;
}__attribute__((packed)) tBTM_BLE_CS_SUBEVT_RESULT_CMPL_EVT;
} tBTM_BLE_CS_SUBEVT_RESULT_CMPL_EVT;
typedef struct {
UINT16 conn_handle;
@@ -1511,7 +1507,7 @@ typedef struct {
UINT8 num_ant_paths;
UINT8 num_steps_reported;
tBTM_BLE_CS_STEP_INFO *step_info;
}__attribute__((packed)) tBTM_BLE_CS_SUBEVT_RESULT_CONTINUE_EVT;
} tBTM_BLE_CS_SUBEVT_RESULT_CONTINUE_EVT;
typedef struct {
UINT8 status;
@@ -1536,7 +1532,7 @@ typedef struct {
UINT16 T_PM_times_supported;
UINT8 T_SW_times_supported;
UINT8 TX_SNR_capability;
} __attribute__((packed)) tBTM_BLE_CS_READ_LOCAL_SUPP_CAPS_CMPL_EVT;
} tBTM_BLE_CS_READ_LOCAL_SUPP_CAPS_CMPL_EVT;
#endif // (BT_BLE_FEAT_CHANNEL_SOUNDING == TRUE)
@@ -1741,44 +1737,38 @@ typedef void (*tBTM_BLE_ISO_CBACK)(tBTM_BLE_ISO_EVENT event, tBTM_BLE_ISO_CB_PAR
#if (BLE_FEAT_CTE_EN == TRUE)
typedef struct {
UINT8 status;
} __attribute__((packed)) tBTM_BLE_CTE_SET_TRANS_PARAMS_CMPL;
} tBTM_BLE_CTE_SET_TRANS_PARAMS_CMPL;
typedef struct {
UINT8 status;
} __attribute__((packed)) tBTM_BLE_CTE_SET_TRANS_EN_CMPL;
} tBTM_BLE_CTE_SET_TRANS_EN_CMPL;
typedef struct {
UINT8 status;
UINT16 sync_handle;
} __attribute__((packed)) tBTM_BLE_CTE_IQ_SAMP_EN_CMPL;
} tBTM_BLE_CTE_IQ_SAMP_EN_CMPL;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CTE_CONN_RECV_PARAMS_CMPL;
} tBTM_BLE_CTE_CONN_RECV_PARAMS_CMPL;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CTE_CONN_TRANS_PARAMS_CMPL;
} tBTM_BLE_CTE_CONN_TRANS_PARAMS_CMPL;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CTE_CONN_REQ_ENABLE_CMPL;
} tBTM_BLE_CTE_CONN_REQ_ENABLE_CMPL;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CTE_CONN_RSP_ENABLE_CMPL;
} tBTM_BLE_CTE_CONN_RSP_ENABLE_CMPL;
typedef struct {
UINT8 status;
UINT8 supported_switching_sampling_rates;
UINT8 num_ant;
UINT8 max_switching_pattern_len;
UINT8 max_cte_len;
} __attribute__((packed)) tBTM_BLE_CTE_READ_ANT_INFOR_CMPL;
} tBTM_BLE_CTE_READ_ANT_INFOR_CMPL;
typedef struct {
UINT16 sync_handle;
@@ -1792,7 +1782,7 @@ typedef struct {
UINT8 sample_count;
UINT8 i_sample[0x52];
UINT8 q_sample[0x52];
} __attribute__((packed)) tBTM_BLE_CTE_CONNLESS_IQ_REPORT_EVT;
} tBTM_BLE_CTE_CONNLESS_IQ_REPORT_EVT;
typedef struct {
UINT16 conn_handle;
@@ -1807,12 +1797,12 @@ typedef struct {
UINT8 sample_count;
UINT8 i_sample[0x52];
UINT8 q_sample[0x52];
} __attribute__((packed)) tBTM_BLE_CTE_CONN_IQ_REPORT_EVT;
} tBTM_BLE_CTE_CONN_IQ_REPORT_EVT;
typedef struct {
UINT8 status;
UINT16 conn_handle;
} __attribute__((packed)) tBTM_BLE_CTE_REQ_FAILED_EVT;
} tBTM_BLE_CTE_REQ_FAILED_EVT;
typedef union {
UINT8 status;
@@ -1295,7 +1295,7 @@ UINT8 btsnd_hcic_ble_set_ext_adv_params_v2(UINT8 adv_handle, UINT16 properties,
#define HCIC_PARAM_SIZE_CREATE_CONFIG_PARAMS_LEN 28
#define HCIC_PARAM_SIZE_REMOVE_CONFIG_PARAMS_LEN 3
#define HCIC_PARAM_SIZE_SET_CHANNEL_CLASS_PARAMS_LEN 10
#define HCIC_PARAM_SIZE_SET_PROCEDURE_PARAMS_LEN 21
#define HCIC_PARAM_SIZE_SET_PROCEDURE_PARAMS_LEN 23
#define HCIC_PARAM_SIZE_SET_PROCEDURE_ENABLE_PARAMS_LEN 4
UINT8 btsnd_hcic_ble_cs_read_local_supported_caps(void);
@@ -287,7 +287,7 @@ typedef struct {
.ignore_wl_for_direct_adv = 0, \
.enable_pcl = DEFAULT_BT_LE_POWER_CONTROL_ENABLED, \
.csa2_select = DEFAULT_BT_LE_50_FEATURE_SUPPORT, \
.enable_csr = 0, \
.enable_csr = DEFAULT_BT_LE_SUBRATE_ENABLED, \
.ble_aa_check = DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS, \
.ble_llcp_disc_flag = BT_LE_CTRL_LLCP_DISC_FLAG, \
.scan_backoff_upperlimitmax = BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \
@@ -357,7 +357,7 @@ typedef struct {
.ignore_wl_for_direct_adv = 0, \
.enable_pcl = DEFAULT_BT_LE_POWER_CONTROL_ENABLED, \
.csa2_select = DEFAULT_BT_LE_50_FEATURE_SUPPORT, \
.enable_csr = 0, \
.enable_csr = DEFAULT_BT_LE_SUBRATE_ENABLED, \
.ble_aa_check = DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS, \
.ble_llcp_disc_flag = BT_LE_CTRL_LLCP_DISC_FLAG, \
.scan_backoff_upperlimitmax = BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \
@@ -290,7 +290,7 @@ typedef struct {
.ignore_wl_for_direct_adv = 0, \
.enable_pcl = DEFAULT_BT_LE_POWER_CONTROL_ENABLED, \
.csa2_select = DEFAULT_BT_LE_50_FEATURE_SUPPORT, \
.enable_csr = 0, \
.enable_csr = DEFAULT_BT_LE_SUBRATE_ENABLED, \
.ble_aa_check = DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS, \
.ble_llcp_disc_flag = BT_LE_CTRL_LLCP_DISC_FLAG, \
.scan_backoff_upperlimitmax = BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \
@@ -1883,6 +1883,10 @@ config SOC_BLE_CTE_SUPPORTED
bool
default y
config SOC_BLE_SUBRATE_SUPPORTED
bool
default y
config SOC_BLE_PERIODIC_ADV_WITH_RESPONSE
bool
default y
@@ -718,6 +718,7 @@
#define SOC_BLE_MULTI_CONN_OPTIMIZATION (1) /*!< Support multiple connections optimization */
#define SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED (1) /*!< Support For BLE Periodic Adv Enhancements */
#define SOC_BLE_CTE_SUPPORTED (1) /*!< Support Bluetooth LE Constant Tone Extension (CTE) */
#define SOC_BLE_SUBRATE_SUPPORTED (1) /*!< Support Bluetooth LE Connection Subrating */
#define SOC_BLE_PERIODIC_ADV_WITH_RESPONSE (1) /*!< Support Bluetooth LE Periodic Advertising with Response (PAwR) */
/*------------------------------------- PHY CAPS -------------------------------------*/
@@ -1655,6 +1655,10 @@ config SOC_BLE_MULTI_CONN_OPTIMIZATION
bool
default y
config SOC_BLE_SUBRATE_SUPPORTED
bool
default y
config SOC_BLE_PERIODIC_ADV_WITH_RESPONSE
bool
default y
@@ -638,6 +638,7 @@
#define SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED (1) /*!< Support For BLE Periodic Adv Enhancements */
#define SOC_BLUFI_SUPPORTED (1) /*!< Support BLUFI */
#define SOC_BLE_MULTI_CONN_OPTIMIZATION (1) /*!< Support multiple connections optimization */
#define SOC_BLE_SUBRATE_SUPPORTED (1) /*!< Support Bluetooth LE Connection Subrating */
#define SOC_BLE_PERIODIC_ADV_WITH_RESPONSE (1) /*!< Support Bluetooth LE Periodic Advertising with Response (PAwR) */
#define SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND (1)
@@ -1363,6 +1363,10 @@ config SOC_BLE_CTE_SUPPORTED
bool
default y
config SOC_BLE_SUBRATE_SUPPORTED
bool
default y
config SOC_BLE_PERIODIC_ADV_WITH_RESPONSE
bool
default y
@@ -537,6 +537,7 @@
#define SOC_BLUFI_SUPPORTED (1) /*!< Support BLUFI */
#define SOC_BLE_MULTI_CONN_OPTIMIZATION (1) /*!< Support multiple connections optimization */
#define SOC_BLE_CTE_SUPPORTED (1) /*!< Support Bluetooth LE Constant Tone Extension (CTE) */
#define SOC_BLE_SUBRATE_SUPPORTED (1) /*!< Support Bluetooth LE Connection Subrating */
#define SOC_BLE_PERIODIC_ADV_WITH_RESPONSE (1) /*!< Support Bluetooth LE Periodic Advertising with Response (PAwR) */
/*------------------------------------- PHY CAPS -------------------------------------*/
@@ -1599,6 +1599,10 @@ config SOC_BLE_CTE_SUPPORTED
bool
default y
config SOC_BLE_SUBRATE_SUPPORTED
bool
default y
config SOC_BLE_PERIODIC_ADV_WITH_RESPONSE
bool
default y
@@ -633,6 +633,7 @@
#define SOC_BLE_MULTI_CONN_OPTIMIZATION (1) /*!< Support multiple connections optimization */
#define SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED (1) /*!< Support For BLE Periodic Adv Enhancements */
#define SOC_BLE_CTE_SUPPORTED (1) /*!< Support Bluetooth LE Constant Tone Extension (CTE) */
#define SOC_BLE_SUBRATE_SUPPORTED (1) /*!< Support Bluetooth LE Connection Subrating */
#define SOC_BLE_PERIODIC_ADV_WITH_RESPONSE (1) /*!< Support Bluetooth LE Periodic Advertising with Response (PAwR) */
/*------------------------------------- DEBUG CAPS -------------------------------------*/