mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
add remove bond device complete event
This commit is contained in:
@@ -221,6 +221,7 @@ typedef enum {
|
|||||||
ESP_BT_GAP_SET_AFH_CHANNELS_EVT, /*!< set AFH channels event */
|
ESP_BT_GAP_SET_AFH_CHANNELS_EVT, /*!< set AFH channels event */
|
||||||
ESP_BT_GAP_READ_REMOTE_NAME_EVT, /*!< read Remote Name event */
|
ESP_BT_GAP_READ_REMOTE_NAME_EVT, /*!< read Remote Name event */
|
||||||
ESP_BT_GAP_MODE_CHG_EVT,
|
ESP_BT_GAP_MODE_CHG_EVT,
|
||||||
|
ESP_BT_GAP_REMOVE_BOND_DEV_COMPLETE_EVT, /*!< remove bond device complete event */
|
||||||
ESP_BT_GAP_EVT_MAX,
|
ESP_BT_GAP_EVT_MAX,
|
||||||
} esp_bt_gap_cb_event_t;
|
} esp_bt_gap_cb_event_t;
|
||||||
|
|
||||||
@@ -355,6 +356,14 @@ typedef union {
|
|||||||
esp_bt_pm_mode_t mode; /*!< PM mode*/
|
esp_bt_pm_mode_t mode; /*!< PM mode*/
|
||||||
} mode_chg; /*!< mode change event parameter struct */
|
} mode_chg; /*!< mode change event parameter struct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief ESP_BT_GAP_REMOVE_BOND_DEV_COMPLETE_EVT
|
||||||
|
*/
|
||||||
|
struct bt_remove_bond_dev_cmpl_evt_param {
|
||||||
|
esp_bd_addr_t bda; /*!< remote bluetooth device address*/
|
||||||
|
esp_bt_status_t status; /*!< Indicate the remove bond device operation success status */
|
||||||
|
}remove_bond_dev_cmpl; /*!< Event parameter of ESP_BT_GAP_REMOVE_BOND_DEV_COMPLETE_EVT */
|
||||||
|
|
||||||
} esp_bt_gap_cb_param_t;
|
} esp_bt_gap_cb_param_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -955,7 +955,7 @@ typedef union {
|
|||||||
tBTA_DM_PIN_REQ pin_req; /* PIN request. */
|
tBTA_DM_PIN_REQ pin_req; /* PIN request. */
|
||||||
tBTA_DM_AUTH_CMPL auth_cmpl; /* Authentication complete indication. */
|
tBTA_DM_AUTH_CMPL auth_cmpl; /* Authentication complete indication. */
|
||||||
tBTA_DM_AUTHORIZE authorize; /* Authorization request. */
|
tBTA_DM_AUTHORIZE authorize; /* Authorization request. */
|
||||||
tBTA_DM_LINK_UP link_up; /* ACL connection down event */
|
tBTA_DM_LINK_UP link_up; /* ACL connection up event */
|
||||||
tBTA_DM_LINK_DOWN link_down; /* ACL connection down event */
|
tBTA_DM_LINK_DOWN link_down; /* ACL connection down event */
|
||||||
tBTA_DM_BUSY_LEVEL busy_level; /* System busy level */
|
tBTA_DM_BUSY_LEVEL busy_level; /* System busy level */
|
||||||
tBTA_DM_SP_CFM_REQ cfm_req; /* user confirm request */
|
tBTA_DM_SP_CFM_REQ cfm_req; /* user confirm request */
|
||||||
|
@@ -510,6 +510,37 @@ static void btc_dm_sp_key_req_evt(tBTA_DM_SP_KEY_REQ *p_key_req)
|
|||||||
}
|
}
|
||||||
#endif /// BT_SSP_INCLUDED == TRUE
|
#endif /// BT_SSP_INCLUDED == TRUE
|
||||||
|
|
||||||
|
#if (SMP_INCLUDED == TRUE)
|
||||||
|
static void btc_dm_dev_unpaired_evt(tBTA_DM_LINK_DOWN *p_link_down)
|
||||||
|
{
|
||||||
|
esp_bt_gap_cb_param_t param;
|
||||||
|
BTC_TRACE_DEBUG("%s",__func__);
|
||||||
|
memcpy(param.remove_bond_dev_cmpl.bda, p_link_down->bd_addr, ESP_BD_ADDR_LEN);
|
||||||
|
btm_set_bond_type_dev(p_link_down->bd_addr, BOND_TYPE_UNKNOWN);
|
||||||
|
if (p_link_down->status == HCI_SUCCESS) {
|
||||||
|
//remove the bonded key in the config and nvs flash.
|
||||||
|
param.remove_bond_dev_cmpl.status = btc_storage_remove_bonded_device((bt_bdaddr_t *)param.remove_bond_dev_cmpl.bda);
|
||||||
|
} else {
|
||||||
|
param.remove_bond_dev_cmpl.status = ESP_BT_STATUS_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (BTC_GAP_BT_INCLUDED == TRUE)
|
||||||
|
bt_status_t ret;
|
||||||
|
btc_msg_t msg;
|
||||||
|
msg.sig = BTC_SIG_API_CB;
|
||||||
|
msg.pid = BTC_PID_GAP_BT;
|
||||||
|
msg.act = BTC_GAP_BT_REMOVE_BOND_DEV_COMPLETE_EVT;
|
||||||
|
|
||||||
|
ret = btc_transfer_context(&msg, ¶m,
|
||||||
|
sizeof(esp_bt_gap_cb_param_t), NULL);
|
||||||
|
|
||||||
|
if (ret != BT_STATUS_SUCCESS) {
|
||||||
|
BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__);
|
||||||
|
}
|
||||||
|
#endif /// BTC_GAP_BT_INCLUDED == TRUE
|
||||||
|
}
|
||||||
|
#endif /* #if (SMP_INCLUDED == TRUE) */
|
||||||
|
|
||||||
#if (BTC_DM_PM_INCLUDED == TRUE)
|
#if (BTC_DM_PM_INCLUDED == TRUE)
|
||||||
static void btc_dm_pm_mode_chg_evt(tBTA_DM_MODE_CHG *p_mode_chg)
|
static void btc_dm_pm_mode_chg_evt(tBTA_DM_MODE_CHG *p_mode_chg)
|
||||||
{
|
{
|
||||||
@@ -676,14 +707,7 @@ void btc_dm_sec_cb_handler(btc_msg_t *msg)
|
|||||||
|
|
||||||
case BTA_DM_DEV_UNPAIRED_EVT: {
|
case BTA_DM_DEV_UNPAIRED_EVT: {
|
||||||
#if (SMP_INCLUDED == TRUE)
|
#if (SMP_INCLUDED == TRUE)
|
||||||
bt_bdaddr_t bd_addr;
|
btc_dm_dev_unpaired_evt(&p_data->link_down);
|
||||||
BTC_TRACE_DEBUG("BTA_DM_DEV_UNPAIRED_EVT");
|
|
||||||
memcpy(bd_addr.address, p_data->link_down.bd_addr, sizeof(BD_ADDR));
|
|
||||||
btm_set_bond_type_dev(p_data->link_down.bd_addr, BOND_TYPE_UNKNOWN);
|
|
||||||
if (p_data->link_down.status == HCI_SUCCESS) {
|
|
||||||
//remove the bonded key in the config and nvs flash.
|
|
||||||
btc_storage_remove_bonded_device(&bd_addr);
|
|
||||||
}
|
|
||||||
#endif /* #if (SMP_INCLUDED == TRUE) */
|
#endif /* #if (SMP_INCLUDED == TRUE) */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -975,6 +975,7 @@ void btc_gap_bt_cb_deep_free(btc_msg_t *msg)
|
|||||||
case BTC_GAP_BT_PIN_REQ_EVT:
|
case BTC_GAP_BT_PIN_REQ_EVT:
|
||||||
case BTC_GAP_BT_SET_AFH_CHANNELS_EVT:
|
case BTC_GAP_BT_SET_AFH_CHANNELS_EVT:
|
||||||
case BTC_GAP_BT_READ_REMOTE_NAME_EVT:
|
case BTC_GAP_BT_READ_REMOTE_NAME_EVT:
|
||||||
|
case BTC_GAP_BT_REMOVE_BOND_DEV_COMPLETE_EVT:
|
||||||
#if (BT_SSP_INCLUDED == TRUE)
|
#if (BT_SSP_INCLUDED == TRUE)
|
||||||
case BTC_GAP_BT_CFM_REQ_EVT:
|
case BTC_GAP_BT_CFM_REQ_EVT:
|
||||||
case BTC_GAP_BT_KEY_NOTIF_EVT:
|
case BTC_GAP_BT_KEY_NOTIF_EVT:
|
||||||
@@ -1051,6 +1052,10 @@ void btc_gap_bt_cb_handler(btc_msg_t *msg)
|
|||||||
btc_gap_bt_cb_to_app(ESP_BT_GAP_MODE_CHG_EVT,(esp_bt_gap_cb_param_t *)msg->arg);
|
btc_gap_bt_cb_to_app(ESP_BT_GAP_MODE_CHG_EVT,(esp_bt_gap_cb_param_t *)msg->arg);
|
||||||
break;
|
break;
|
||||||
#endif /// BTC_DM_PM_INCLUDED == TRUE
|
#endif /// BTC_DM_PM_INCLUDED == TRUE
|
||||||
|
case BTC_GAP_BT_REMOVE_BOND_DEV_COMPLETE_EVT:{
|
||||||
|
btc_gap_bt_cb_to_app(ESP_BT_GAP_REMOVE_BOND_DEV_COMPLETE_EVT,(esp_bt_gap_cb_param_t *)msg->arg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
BTC_TRACE_ERROR("%s: Unhandled event (%d)!\n", __FUNCTION__, msg->act);
|
BTC_TRACE_ERROR("%s: Unhandled event (%d)!\n", __FUNCTION__, msg->act);
|
||||||
break;
|
break;
|
||||||
|
@@ -37,6 +37,7 @@ typedef enum {
|
|||||||
BTC_GAP_BT_SET_AFH_CHANNELS_EVT,
|
BTC_GAP_BT_SET_AFH_CHANNELS_EVT,
|
||||||
BTC_GAP_BT_READ_REMOTE_NAME_EVT,
|
BTC_GAP_BT_READ_REMOTE_NAME_EVT,
|
||||||
BTC_GAP_BT_MODE_CHG_EVT,
|
BTC_GAP_BT_MODE_CHG_EVT,
|
||||||
|
BTC_GAP_BT_REMOVE_BOND_DEV_COMPLETE_EVT,
|
||||||
}btc_gap_bt_evt_t;
|
}btc_gap_bt_evt_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
Reference in New Issue
Block a user