mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 06:11:06 +00:00 
			
		
		
		
	bluedroid: add periodic adv sync transfer API and EVT
This commit is contained in:
		@@ -1031,7 +1031,14 @@ typedef void (tBTM_UPDATE_DUPLICATE_EXCEPTIONAL_LIST_CMPL_CBACK) (tBTM_STATUS st
 | 
			
		||||
#define    BTM_BLE_5_GAP_PERIODIC_ADV_REPORT_EVT                   32
 | 
			
		||||
#define    BTM_BLE_5_GAP_PERIODIC_ADV_SYNC_LOST_EVT                33
 | 
			
		||||
#define    BTM_BLE_5_GAP_PERIODIC_ADV_SYNC_ESTAB_EVT               34
 | 
			
		||||
#define    BTM_BLE_5_GAP_UNKNOWN_EVT                               35
 | 
			
		||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
#define    BTM_BLE_GAP_PERIODIC_ADV_RECV_ENABLE_COMPLETE_EVT       35
 | 
			
		||||
#define    BTM_BLE_GAP_PERIODIC_ADV_SYNC_TRANS_COMPLETE_EVT        36
 | 
			
		||||
#define    BTM_BLE_GAP_PERIODIC_ADV_SET_INFO_TRANS_COMPLETE_EVT    37
 | 
			
		||||
#define    BTM_BLE_GAP_SET_PAST_PARAMS_COMPLETE_EVT                38
 | 
			
		||||
#define    BTM_BLE_GAP_PERIODIC_ADV_SYNC_TRANS_RECV_EVT            39
 | 
			
		||||
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
#define    BTM_BLE_5_GAP_UNKNOWN_EVT                               40
 | 
			
		||||
typedef UINT8 tBTM_BLE_5_GAP_EVENT;
 | 
			
		||||
 | 
			
		||||
#define BTM_BLE_EXT_ADV_DATA_COMPLETE          0x00
 | 
			
		||||
@@ -1241,6 +1248,39 @@ typedef struct {
 | 
			
		||||
    UINT16 max_ce_len;
 | 
			
		||||
} tBTM_BLE_CONN_PARAMS;
 | 
			
		||||
 | 
			
		||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
typedef struct {
 | 
			
		||||
    UINT8 status;
 | 
			
		||||
} tBTM_BLE_PERIOD_ADV_RECV_ENABLE_CMPL;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    UINT8 status;
 | 
			
		||||
    BD_ADDR addr;
 | 
			
		||||
} tBTM_BLE_PERIOD_ADV_SYNC_TRANS_CMPL;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    UINT8 status;
 | 
			
		||||
    BD_ADDR addr;
 | 
			
		||||
} tBTM_BLE_PERIOD_ADV_SET_INFO_TRANS_CMPL;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    UINT8 status;
 | 
			
		||||
    BD_ADDR addr;
 | 
			
		||||
} tBTM_BLE_SET_PERIOD_ADV_SYNC_TRANS_PARAMS_CMPL;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    UINT8 status;
 | 
			
		||||
    BD_ADDR addr;
 | 
			
		||||
    UINT16 service_data;
 | 
			
		||||
    UINT16 sync_handle;
 | 
			
		||||
    UINT8 adv_sid;
 | 
			
		||||
    UINT8 adv_addr_type;
 | 
			
		||||
    BD_ADDR adv_addr;
 | 
			
		||||
    UINT8 adv_phy;
 | 
			
		||||
    UINT16 adv_interval;
 | 
			
		||||
    UINT8 adv_clk_accuracy;
 | 
			
		||||
} tBTM_BLE_PERIOD_ADV_SYNC_TRANS_RECV;
 | 
			
		||||
#endif //#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
 | 
			
		||||
typedef union {
 | 
			
		||||
    UINT8 status;
 | 
			
		||||
@@ -1275,6 +1315,13 @@ typedef union {
 | 
			
		||||
    tBTM_PERIOD_ADV_REPORT period_adv_report;
 | 
			
		||||
    tBTM_BLE_PERIOD_ADV_SYNC_LOST sync_lost;
 | 
			
		||||
    tBTM_BLE_PERIOD_ADV_SYNC_ESTAB sync_estab;
 | 
			
		||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
    tBTM_BLE_PERIOD_ADV_RECV_ENABLE_CMPL per_adv_recv_enable;
 | 
			
		||||
    tBTM_BLE_PERIOD_ADV_SYNC_TRANS_CMPL per_adv_sync_trans;
 | 
			
		||||
    tBTM_BLE_PERIOD_ADV_SET_INFO_TRANS_CMPL per_adv_set_info_trans;
 | 
			
		||||
    tBTM_BLE_SET_PERIOD_ADV_SYNC_TRANS_PARAMS_CMPL set_past_params;
 | 
			
		||||
    tBTM_BLE_PERIOD_ADV_SYNC_TRANS_RECV past_recv;
 | 
			
		||||
#endif //#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
} tBTM_BLE_5_GAP_CB_PARAMS;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
@@ -1288,21 +1335,6 @@ typedef void (*tBTM_BLE_5_HCI_CBACK)(tBTM_BLE_5_GAP_EVENT event, tBTM_BLE_5_GAP_
 | 
			
		||||
 | 
			
		||||
#endif //#if (BLE_50_FEATURE_SUPPORT == TRUE)
 | 
			
		||||
 | 
			
		||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
typedef struct {
 | 
			
		||||
    UINT8 status;
 | 
			
		||||
    UINT16 conn_handle;
 | 
			
		||||
    UINT16 service_data;
 | 
			
		||||
    UINT16 sync_handle;
 | 
			
		||||
    UINT8 adv_sid;
 | 
			
		||||
    UINT8 adv_addr_type;
 | 
			
		||||
    BD_ADDR adv_addr;
 | 
			
		||||
    UINT8 adv_phy;
 | 
			
		||||
    UINT16 period_adv_interval;
 | 
			
		||||
    UINT8 adv_clk_accuracy;
 | 
			
		||||
} tBTM_BLE_PERIOD_ADV_SYNC_TRANS_RECV;
 | 
			
		||||
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
**  EXTERNAL FUNCTION DECLARATIONS
 | 
			
		||||
*****************************************************************************/
 | 
			
		||||
@@ -2655,6 +2687,10 @@ void BTM_BleSetPreferExtenedConnParams(BD_ADDR bd_addr, tBTM_EXT_CONN_PARAMS *pa
 | 
			
		||||
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
 | 
			
		||||
 | 
			
		||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
void BTM_BlePeriodicAdvRecvEnable(UINT16 sync_handle, UINT8 enable);
 | 
			
		||||
 | 
			
		||||
void BTM_BlePeriodicAdvSyncTrans(BD_ADDR bd_addr, UINT16 service_data, UINT16 sync_handle);
 | 
			
		||||
 | 
			
		||||
void BTM_BlePeriodicAdvSetInfoTrans(BD_ADDR bd_addr, UINT16 service_data, UINT8 adv_handle);
 | 
			
		||||
 | 
			
		||||
void BTM_BleSetPeriodicAdvSyncTransParams(BD_ADDR bd_addr, UINT8 mode, UINT16 skip, UINT16 sync_timeout, UINT8 cte_type);
 | 
			
		||||
 
 | 
			
		||||
@@ -389,7 +389,8 @@
 | 
			
		||||
#define HCI_BLE_SET_PERIOD_ADV_RECV_ENABLE  (0x0059 | HCI_GRP_BLE_CMDS)
 | 
			
		||||
#define HCI_BLE_PERIOD_ADV_SYNC_TRANS       (0x005A | HCI_GRP_BLE_CMDS)
 | 
			
		||||
#define HCI_BLE_PERIOD_ADV_SET_INFO_TRANS   (0x005B | HCI_GRP_BLE_CMDS)
 | 
			
		||||
#define HCI_BLE_SET_PERIOD_ADV_SYNC_TRANS_PARAMS    (0x005C | HCI_GRP_BLE_CMDS)
 | 
			
		||||
#define HCI_BLE_SET_PAST_PARAMS             (0x005C | HCI_GRP_BLE_CMDS)
 | 
			
		||||
#define HCI_BLE_SET_DEFAULT_PAST_PARAMS     (0x005D | HCI_GRP_BLE_CMDS)
 | 
			
		||||
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
// Vendor OGF define
 | 
			
		||||
#define HCI_VENDOR_OGF          0x3F
 | 
			
		||||
 
 | 
			
		||||
@@ -1033,18 +1033,30 @@ UINT8 btsnd_hcic_ble_read_rf_path_compensation(void);
 | 
			
		||||
UINT8 btsnd_hcic_ble_write_rf_path_compensation(UINT16 rf_tx_path, UINT16 rf_rx_path);
 | 
			
		||||
 | 
			
		||||
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
 | 
			
		||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
UINT8 btsnd_hcic_ble_set_periodic_adv_recv_enable(UINT16 sync_handle, UINT8 enable);
 | 
			
		||||
 | 
			
		||||
UINT8 btsnd_hcic_ble_periodic_adv_sync_trans(UINT16 conn_handle, UINT16 service_data, UINT16 sync_handle);
 | 
			
		||||
 | 
			
		||||
UINT8 btsnd_hcic_ble_periodic_adv_set_info_trans(UINT16 conn_handle, UINT16 service_data, UINT8 adv_handle);
 | 
			
		||||
 | 
			
		||||
UINT8 btsnd_hcic_ble_set_periodic_adv_sync_trans_params(UINT16 conn_handle, UINT8 mode, UINT16 skip, UINT16 sync_timeout, UINT8 cte_type);
 | 
			
		||||
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
#define HCIC_PARAM_SIZE_WRITE_AUTHENT_PAYLOAD_TOUT  4
 | 
			
		||||
 | 
			
		||||
#define HCI__WRITE_AUTHENT_PAYLOAD_TOUT_HANDLE_OFF  0
 | 
			
		||||
#define HCI__WRITE_AUTHENT_PAYLOAD_TOUT_TOUT_OFF    2
 | 
			
		||||
 | 
			
		||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
#define HCIC_PARAM_SIZE_PERIODIC_ADV_RECV_ENABLE                3
 | 
			
		||||
#define HCI_PERIODIC_ADV_RECV_REPORT_EN                         1
 | 
			
		||||
#define HCI_PERIODIC_ADV_RECV_DUP_FILTER_EN                     2
 | 
			
		||||
#define HCIC_PARAM_SIZE_PERIODIC_ADV_SYNC_TRANS                 6
 | 
			
		||||
#define HCIC_PARAM_SIZE_PERIODIC_ADV_SET_INFO_TRANS             5
 | 
			
		||||
#define HCIC_PARAM_SIZE_SET_PAST_PARAMS                         8
 | 
			
		||||
#define HCIC_PARAM_SIZE_SET_DEFAULT_PAST_PARAMS                 6
 | 
			
		||||
 | 
			
		||||
UINT8 btsnd_hcic_ble_set_periodic_adv_recv_enable(UINT16 sync_handle, UINT8 enable);
 | 
			
		||||
 | 
			
		||||
BOOLEAN btsnd_hcic_ble_periodic_adv_sync_trans(UINT16 conn_handle, UINT16 service_data, UINT16 sync_handle);
 | 
			
		||||
 | 
			
		||||
BOOLEAN btsnd_hcic_ble_periodic_adv_set_info_trans(UINT16 conn_handle, UINT16 service_data, UINT8 adv_handle);
 | 
			
		||||
 | 
			
		||||
BOOLEAN btsnd_hcic_ble_set_periodic_adv_sync_trans_params(UINT16 conn_handle, UINT8 mode, UINT16 skip, UINT16 sync_timeout, UINT8 cte_type);
 | 
			
		||||
 | 
			
		||||
UINT8 btsnd_hcic_ble_set_default_periodic_adv_sync_trans_params(UINT8 mode, UINT16 skip, UINT16 sync_timeout, UINT8 cte_type);
 | 
			
		||||
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user