feat(ble/bluedroid): report cte_type in periodic adv report if CTE feature is enabled

This commit is contained in:
zhiweijian
2025-03-27 20:22:06 +08:00
parent 94ada16554
commit 2fd56b7ed8
4 changed files with 17 additions and 3 deletions

View File

@ -1025,6 +1025,13 @@ typedef struct {
uint16_t sync_handle; /*!< periodic advertising train handle */
uint8_t tx_power; /*!< periodic advertising tx power*/
int8_t rssi; /*!< periodic advertising rssi */
#if (CONFIG_BT_BLE_FEAT_CTE_EN) // #if (BLE_FEAT_CTE_EN == TRUE)
uint8_t cte_type; /*!< The type of Constant Tone Extension
0x00: AoA Constant Tone Extension
0x01: AoD Constant Tone Extension with 1 μs slots
0x02: AoD Constant Tone Extension with 2 μs slots
0xFF: No Constant Tone Extension */
#endif // BT_BLE_FEAT_CTE_EN
esp_ble_gap_ext_adv_data_status_t data_status; /*!< periodic advertising data type*/
uint8_t data_length; /*!< periodic advertising data length */
uint8_t data[251]; /*!< periodic advertising data */

View File

@ -1144,8 +1144,14 @@ static void btc_ble_5_gap_callback(tBTA_DM_BLE_5_GAP_EVENT event,
#if (BLE_50_EXTEND_SYNC_EN == TRUE)
case BTA_DM_BLE_5_GAP_PERIODIC_ADV_REPORT_EVT: {
msg.act = ESP_GAP_BLE_PERIODIC_ADV_REPORT_EVT;
memcpy(&param.period_adv_report, &params->period_adv_report,
sizeof(esp_ble_gap_periodic_adv_report_t));
param.period_adv_report.params.sync_handle = params->period_adv_report.sync_handle;
param.period_adv_report.params.tx_power = params->period_adv_report.tx_power;
param.period_adv_report.params.rssi = params->period_adv_report.rssi;
#if (BLE_FEAT_CTE_EN == TRUE)
param.period_adv_report.params.cte_type = params->period_adv_report.cte_type;
#endif // #if (BLE_FEAT_CTE_EN == TRUE)
param.period_adv_report.params.data_status = params->period_adv_report.data_status;
param.period_adv_report.params.data_length = params->period_adv_report.data_length;
if (params->period_adv_report.data) {
memcpy(param.period_adv_report.params.data, params->period_adv_report.data,
params->period_adv_report.data_length);

View File

@ -2576,7 +2576,7 @@ static void btu_ble_periodic_adv_report_evt(UINT8 *p, UINT8 evt_len)
STREAM_TO_UINT16(adv_report.sync_handle, p);
STREAM_TO_UINT8(adv_report.tx_power, p);
STREAM_TO_UINT8(adv_report.rssi, p);
STREAM_TO_UINT8(unused, p);
STREAM_TO_UINT8(adv_report.cte_type, p);
STREAM_TO_UINT8(adv_report.data_status, p);
STREAM_TO_UINT8(adv_report.data_length, p);

View File

@ -1330,6 +1330,7 @@ typedef struct {
UINT16 sync_handle;
UINT8 tx_power;
INT8 rssi;
UINT8 cte_type;
tBTM_BLE_EXT_ADV_DATA_STATUS data_status;
UINT8 data_length;
UINT8 *data;