Added reporting for ACL link related events to application

This commit is contained in:
jincheng
2022-07-28 12:32:56 +08:00
committed by BOT
parent 1d82bcd125
commit 228bf596dc
11 changed files with 392 additions and 34 deletions
@@ -19,6 +19,7 @@ extern "C" {
return ESP_ERR_INVALID_STATE; \
}
#define ESP_BT_STATUS_BASE_FOR_HCI_ERR 0X0100 /* base for coverting HCI error code to ESP status */
/* relate to BT_STATUS_xxx in bt_def.h */
/// Status Return Value
@@ -45,6 +46,71 @@ typedef enum {
ESP_BT_STATUS_ERR_ILLEGAL_PARAMETER_FMT, /* relate to HCI_ERR_ILLEGAL_PARAMETER_FMT in stack/hcidefs.h */
ESP_BT_STATUS_MEMORY_FULL = 20, /* relate to BT_STATUS_MEMORY_FULL in bt_def.h */
ESP_BT_STATUS_EIR_TOO_LARGE, /* relate to BT_STATUS_EIR_TOO_LARGE in bt_def.h */
ESP_BT_STATUS_HCI_SUCCESS = ESP_BT_STATUS_BASE_FOR_HCI_ERR,
ESP_BT_STATUS_HCI_PENDING,
ESP_BT_STATUS_HCI_ILLEGAL_COMMAND,
ESP_BT_STATUS_HCI_NO_CONNECTION,
ESP_BT_STATUS_HCI_HW_FAILURE,
ESP_BT_STATUS_HCI_PAGE_TIMEOUT,
ESP_BT_STATUS_HCI_AUTH_FAILURE,
ESP_BT_STATUS_HCI_KEY_MISSING,
ESP_BT_STATUS_HCI_MEMORY_FULL,
ESP_BT_STATUS_HCI_CONNECTION_TOUT,
ESP_BT_STATUS_HCI_MAX_NUM_OF_CONNECTIONS,
ESP_BT_STATUS_HCI_MAX_NUM_OF_SCOS,
ESP_BT_STATUS_HCI_CONNECTION_EXISTS,
ESP_BT_STATUS_HCI_COMMAND_DISALLOWED,
ESP_BT_STATUS_HCI_HOST_REJECT_RESOURCES,
ESP_BT_STATUS_HCI_HOST_REJECT_SECURITY,
ESP_BT_STATUS_HCI_HOST_REJECT_DEVICE,
ESP_BT_STATUS_HCI_HOST_TIMEOUT,
ESP_BT_STATUS_HCI_UNSUPPORTED_VALUE,
ESP_BT_STATUS_HCI_ILLEGAL_PARAMETER_FMT,
ESP_BT_STATUS_HCI_PEER_USER,
ESP_BT_STATUS_HCI_PEER_LOW_RESOURCES,
ESP_BT_STATUS_HCI_PEER_POWER_OFF,
ESP_BT_STATUS_HCI_CONN_CAUSE_LOCAL_HOST,
ESP_BT_STATUS_HCI_REPEATED_ATTEMPTS,
ESP_BT_STATUS_HCI_PAIRING_NOT_ALLOWED,
ESP_BT_STATUS_HCI_UNKNOWN_LMP_PDU,
ESP_BT_STATUS_HCI_UNSUPPORTED_REM_FEATURE,
ESP_BT_STATUS_HCI_SCO_OFFSET_REJECTED,
ESP_BT_STATUS_HCI_SCO_INTERVAL_REJECTED,
ESP_BT_STATUS_HCI_SCO_AIR_MODE,
ESP_BT_STATUS_HCI_INVALID_LMP_PARAM,
ESP_BT_STATUS_HCI_UNSPECIFIED,
ESP_BT_STATUS_HCI_UNSUPPORTED_LMP_PARAMETERS,
ESP_BT_STATUS_HCI_ROLE_CHANGE_NOT_ALLOWED,
ESP_BT_STATUS_HCI_LMP_RESPONSE_TIMEOUT,
ESP_BT_STATUS_HCI_LMP_ERR_TRANS_COLLISION,
ESP_BT_STATUS_HCI_LMP_PDU_NOT_ALLOWED,
ESP_BT_STATUS_HCI_ENCRY_MODE_NOT_ACCEPTABLE,
ESP_BT_STATUS_HCI_UNIT_KEY_USED,
ESP_BT_STATUS_HCI_QOS_NOT_SUPPORTED,
ESP_BT_STATUS_HCI_INSTANT_PASSED,
ESP_BT_STATUS_HCI_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED,
ESP_BT_STATUS_HCI_DIFF_TRANSACTION_COLLISION,
ESP_BT_STATUS_HCI_UNDEFINED_0x2B,
ESP_BT_STATUS_HCI_QOS_UNACCEPTABLE_PARAM,
ESP_BT_STATUS_HCI_QOS_REJECTED,
ESP_BT_STATUS_HCI_CHAN_CLASSIF_NOT_SUPPORTED,
ESP_BT_STATUS_HCI_INSUFFCIENT_SECURITY,
ESP_BT_STATUS_HCI_PARAM_OUT_OF_RANGE,
ESP_BT_STATUS_HCI_UNDEFINED_0x31,
ESP_BT_STATUS_HCI_ROLE_SWITCH_PENDING,
ESP_BT_STATUS_HCI_UNDEFINED_0x33,
ESP_BT_STATUS_HCI_RESERVED_SLOT_VIOLATION,
ESP_BT_STATUS_HCI_ROLE_SWITCH_FAILED,
ESP_BT_STATUS_HCI_INQ_RSP_DATA_TOO_LARGE,
ESP_BT_STATUS_HCI_SIMPLE_PAIRING_NOT_SUPPORTED,
ESP_BT_STATUS_HCI_HOST_BUSY_PAIRING,
ESP_BT_STATUS_HCI_REJ_NO_SUITABLE_CHANNEL,
ESP_BT_STATUS_HCI_CONTROLLER_BUSY,
ESP_BT_STATUS_HCI_UNACCEPT_CONN_INTERVAL,
ESP_BT_STATUS_HCI_DIRECTED_ADVERTISING_TIMEOUT,
ESP_BT_STATUS_HCI_CONN_TOUT_DUE_TO_MIC_FAILURE,
ESP_BT_STATUS_HCI_CONN_FAILED_ESTABLISHMENT,
ESP_BT_STATUS_HCI_MAC_CONNECTION_FAILED,
} esp_bt_status_t;
@@ -215,6 +215,8 @@ typedef enum {
ESP_BT_GAP_MODE_CHG_EVT,
ESP_BT_GAP_REMOVE_BOND_DEV_COMPLETE_EVT, /*!< remove bond device complete event */
ESP_BT_GAP_QOS_CMPL_EVT, /*!< QOS complete event */
ESP_BT_GAP_ACL_CONN_CMPL_STAT_EVT, /*!< ACL connection complete status event */
ESP_BT_GAP_ACL_DISCONN_CMPL_STAT_EVT, /*!< ACL disconnection complete status event */
ESP_BT_GAP_EVT_MAX,
} esp_bt_gap_cb_event_t;
@@ -368,6 +370,24 @@ typedef union {
which from the master to a particular slave on the ACL
logical transport. unit is 0.625ms. */
} qos_cmpl; /*!< QoS complete parameter struct */
/**
* @brief ESP_BT_GAP_ACL_CONN_CMPL_STAT_EVT
*/
struct acl_conn_cmpl_stat_param {
esp_bt_status_t stat; /*!< ACL connection status */
uint16_t handle; /*!< ACL connection handle */
esp_bd_addr_t bda; /*!< remote bluetooth device address */
} acl_conn_cmpl_stat; /*!< ACL connection complete status parameter struct */
/**
* @brief ESP_BT_GAP_ACL_DISCONN_CMPL_STAT_EVT
*/
struct acl_disconn_cmpl_stat_param {
esp_bt_status_t reason; /*!< ACL disconnection reason */
uint16_t handle; /*!< ACL connection handle */
esp_bd_addr_t bda; /*!< remote bluetooth device address */
} acl_disconn_cmpl_stat; /*!< ACL disconnection complete status parameter struct */
} esp_bt_gap_cb_param_t;
/**