mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-01 10:40:47 +03:00
feat(ble/bluedroid): add Shorter Connection Intervals host support (Core 6.2)
Co-authored-by: Cursor <cursoragent@cursor.com>
(cherry picked from commit 2a8a96d650)
Co-authored-by: zhiweijian <zhiweijian@espressif.com>
This commit is contained in:
@@ -989,6 +989,12 @@ typedef void (tBTM_UPDATE_DUPLICATE_EXCEPTIONAL_LIST_CMPL_CBACK) (tBTM_STATUS st
|
||||
#define BTM_BLE_5_GAP_SET_DECISION_DATA_COMPLETE_EVT 79
|
||||
#define BTM_BLE_5_GAP_SET_DECISION_INSTRUCTIONS_COMPLETE_EVT 80
|
||||
#endif // #if (BLE_FEAT_DBAF == TRUE)
|
||||
#if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
#define BTM_BLE_5_GAP_CONNECTION_RATE_REQUEST_COMPLETE_EVT 81
|
||||
#define BTM_BLE_5_GAP_CONN_RATE_CHANGE_EVT 82
|
||||
#define BTM_BLE_5_GAP_SET_DEFAULT_RATE_PARAMETERS_COMPLETE_EVT 86
|
||||
#define BTM_BLE_5_GAP_READ_MIN_SUPP_CONN_INTERVAL_COMPLETE_EVT 87
|
||||
#endif // #if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
#define BTM_BLE_5_GAP_UNKNOWN_EVT 91
|
||||
typedef UINT8 tBTM_BLE_5_GAP_EVENT;
|
||||
|
||||
@@ -1270,6 +1276,37 @@ typedef struct {
|
||||
} tBTM_BLE_FRAME_SPACE_UPDATE;
|
||||
#endif // #if (BLE_FEAT_FRAME_SPACE_UPDATE == TRUE)
|
||||
|
||||
#if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
typedef struct {
|
||||
tBTM_STATUS status;
|
||||
UINT16 conn_handle;
|
||||
} tBTM_BLE_CONNECTION_RATE_REQUEST_CMPL;
|
||||
|
||||
typedef struct {
|
||||
tBTM_STATUS status;
|
||||
UINT16 conn_handle;
|
||||
UINT16 conn_interval;
|
||||
UINT16 subrate_factor;
|
||||
UINT16 peripheral_latency;
|
||||
UINT16 continuation_number;
|
||||
UINT16 supervision_timeout;
|
||||
} tBTM_BLE_CONN_RATE_CHANGE;
|
||||
|
||||
#define BTM_BLE_MAX_CONN_INTERVAL_GROUPS 41
|
||||
|
||||
typedef struct {
|
||||
UINT16 min_125us;
|
||||
UINT16 max_125us;
|
||||
UINT16 stride_125us;
|
||||
} tBTM_BLE_MIN_CONN_INTERVAL_GROUP;
|
||||
|
||||
typedef struct {
|
||||
tBTM_STATUS status;
|
||||
UINT8 min_supported_conn_interval;
|
||||
UINT8 num_groups;
|
||||
tBTM_BLE_MIN_CONN_INTERVAL_GROUP *groups;
|
||||
} tBTM_BLE_READ_MIN_SUPP_CONN_INTERVAL;
|
||||
#endif // #if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
|
||||
|
||||
typedef struct {
|
||||
@@ -1989,6 +2026,11 @@ typedef union {
|
||||
#if (BLE_FEAT_FRAME_SPACE_UPDATE == TRUE)
|
||||
tBTM_BLE_FRAME_SPACE_UPDATE frame_space_update;
|
||||
#endif // #if (BLE_FEAT_FRAME_SPACE_UPDATE == TRUE)
|
||||
#if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
tBTM_BLE_CONNECTION_RATE_REQUEST_CMPL conn_rate_request;
|
||||
tBTM_BLE_CONN_RATE_CHANGE conn_rate_change;
|
||||
tBTM_BLE_READ_MIN_SUPP_CONN_INTERVAL read_min_supp_conn_interval;
|
||||
#endif // #if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
} tBTM_BLE_5_GAP_CB_PARAMS;
|
||||
|
||||
typedef struct {
|
||||
@@ -3153,6 +3195,18 @@ tBTM_STATUS BTM_BleReadAllLocalSuppFeatures(void);
|
||||
tBTM_STATUS BTM_BleReadAllRemoteFeatures(UINT16 conn_handle, UINT8 page_requested);
|
||||
#endif // #if (BLE_FEAT_LL_EXT_FEAT == TRUE)
|
||||
|
||||
#if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
tBTM_STATUS BTM_BleConnectionRateRequest(UINT16 conn_handle, UINT16 conn_interval_min,
|
||||
UINT16 conn_interval_max, UINT16 subrate_min,
|
||||
UINT16 subrate_max, UINT16 max_latency,
|
||||
UINT16 continuation_number, UINT16 supervision_timeout,
|
||||
UINT16 min_ce_len, UINT16 max_ce_len);
|
||||
void BTM_BleSetDefaultRateParameters(UINT16 conn_interval_min, UINT16 conn_interval_max,
|
||||
UINT16 subrate_min, UINT16 subrate_max, UINT16 max_latency,
|
||||
UINT16 continuation_number, UINT16 supervision_timeout,
|
||||
UINT16 min_ce_len, UINT16 max_ce_len);
|
||||
tBTM_STATUS BTM_BleReadMinSuppConnInterval(void);
|
||||
#endif // #if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
|
||||
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
|
||||
|
||||
|
||||
@@ -495,6 +495,11 @@
|
||||
|
||||
|
||||
|
||||
#if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
#define HCI_BLE_CONNECTION_RATE_REQUEST (0x00A1 | HCI_GRP_BLE_CMDS)
|
||||
#define HCI_BLE_SET_DEFAULT_RATE_PARAMETERS (0x00A2 | HCI_GRP_BLE_CMDS)
|
||||
#define HCI_BLE_READ_MIN_SUPP_CONN_INTERVAL (0x00A3 | HCI_GRP_BLE_CMDS)
|
||||
#endif // #if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
|
||||
// Vendor OGF define
|
||||
#define HCI_VENDOR_OGF 0x3F
|
||||
@@ -1000,6 +1005,9 @@
|
||||
#endif // #if (BLE_FEAT_FRAME_SPACE_UPDATE == TRUE)
|
||||
|
||||
|
||||
#if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
#define HCI_BLE_CONN_RATE_CHANGE_EVT 0x37
|
||||
#endif // #if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
|
||||
#if (BT_BLE_FEAT_CHANNEL_SOUNDING == TRUE)
|
||||
#define HCI_BLE_CS_READ_REMOTE_SUPP_CAPS_CMPL_EVT 0x2C
|
||||
|
||||
@@ -859,6 +859,22 @@ UINT8 btsnd_hcic_ble_read_all_remote_features(UINT16 conn_handle, UINT8 page_req
|
||||
#endif // #if (BLE_FEAT_LL_EXT_FEAT == TRUE)
|
||||
|
||||
|
||||
#if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
#define HCIC_PARAM_SIZE_CONNECTION_RATE_REQUEST 20
|
||||
#define HCIC_PARAM_SIZE_SET_DEFAULT_RATE_PARAMETERS 18
|
||||
|
||||
UINT8 btsnd_hcic_ble_connection_rate_request(UINT16 conn_handle, UINT16 conn_interval_min,
|
||||
UINT16 conn_interval_max, UINT16 subrate_min,
|
||||
UINT16 subrate_max, UINT16 max_latency,
|
||||
UINT16 continuation_number, UINT16 supervision_timeout,
|
||||
UINT16 min_ce_len, UINT16 max_ce_len);
|
||||
UINT8 btsnd_hcic_ble_set_default_rate_parameters(UINT16 conn_interval_min, UINT16 conn_interval_max,
|
||||
UINT16 subrate_min, UINT16 subrate_max,
|
||||
UINT16 max_latency, UINT16 continuation_number,
|
||||
UINT16 supervision_timeout, UINT16 min_ce_len,
|
||||
UINT16 max_ce_len);
|
||||
BOOLEAN btsnd_hcic_ble_read_min_supp_conn_interval(void);
|
||||
#endif // #if (BLE_FEAT_SHORTER_CONN_INTERVALS == TRUE)
|
||||
|
||||
/* ULP HCI command */
|
||||
BOOLEAN btsnd_hcic_ble_set_evt_mask (BT_EVENT_MASK event_mask);
|
||||
|
||||
Reference in New Issue
Block a user