2017-02-06 14:17:11 +01:00
|
|
|
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
|
|
|
|
#ifndef __BTC_GAP_BT_H__
|
|
|
|
#define __BTC_GAP_BT_H__
|
|
|
|
|
2018-06-27 09:01:06 +02:00
|
|
|
#include "common/bt_target.h"
|
2017-05-06 19:29:12 +02:00
|
|
|
#include "esp_bt_defs.h"
|
|
|
|
#include "esp_gap_bt_api.h"
|
2018-06-27 09:01:06 +02:00
|
|
|
#include "btc/btc_task.h"
|
|
|
|
#include "bta/utl.h"
|
2017-02-06 14:17:11 +01:00
|
|
|
|
2018-01-17 23:56:58 +01:00
|
|
|
#if (BTC_GAP_BT_INCLUDED == TRUE)
|
2018-06-27 09:01:06 +02:00
|
|
|
typedef enum {
|
|
|
|
BTC_GAP_BT_SEARCH_DEVICES_EVT = 0,
|
|
|
|
BTC_GAP_BT_SEARCH_SERVICES_EVT,
|
|
|
|
BTC_GAP_BT_SEARCH_SERVICE_RECORD_EVT,
|
|
|
|
BTC_GAP_BT_AUTH_CMPL_EVT,
|
2018-09-21 08:39:36 +02:00
|
|
|
BTC_GAP_BT_PIN_REQ_EVT,
|
|
|
|
BTC_GAP_BT_CFM_REQ_EVT,
|
|
|
|
BTC_GAP_BT_KEY_NOTIF_EVT,
|
|
|
|
BTC_GAP_BT_KEY_REQ_EVT,
|
|
|
|
BTC_GAP_BT_READ_RSSI_DELTA_EVT,
|
2018-06-27 09:01:06 +02:00
|
|
|
}btc_gap_bt_evt_t;
|
2018-01-17 23:56:58 +01:00
|
|
|
|
2017-05-06 19:29:12 +02:00
|
|
|
typedef enum {
|
|
|
|
BTC_GAP_BT_ACT_SET_SCAN_MODE = 0,
|
2018-01-17 23:56:58 +01:00
|
|
|
BTC_GAP_BT_ACT_START_DISCOVERY,
|
|
|
|
BTC_GAP_BT_ACT_CANCEL_DISCOVERY,
|
|
|
|
BTC_GAP_BT_ACT_GET_REMOTE_SERVICES,
|
|
|
|
BTC_GAP_BT_ACT_GET_REMOTE_SERVICE_RECORD,
|
2018-06-27 09:01:06 +02:00
|
|
|
BTC_GAP_BT_ACT_SET_COD,
|
|
|
|
BTC_GAP_BT_ACT_READ_RSSI_DELTA,
|
|
|
|
BTC_GAP_BT_ACT_REMOVE_BOND_DEVICE,
|
2018-09-21 08:39:36 +02:00
|
|
|
BTC_GAP_BT_ACT_SET_PIN_TYPE,
|
|
|
|
BTC_GAP_BT_ACT_PIN_REPLY,
|
|
|
|
BTC_GAP_BT_ACT_SET_SECURITY_PARAM,
|
|
|
|
BTC_GAP_BT_ACT_PASSKEY_REPLY,
|
|
|
|
BTC_GAP_BT_ACT_CONFIRM_REPLY,
|
2017-05-06 19:29:12 +02:00
|
|
|
} btc_gap_bt_act_t;
|
2017-02-06 14:17:11 +01:00
|
|
|
|
2017-05-06 19:29:12 +02:00
|
|
|
/* btc_bt_gap_args_t */
|
|
|
|
typedef union {
|
|
|
|
// BTC_BT_GAP_ACT_SET_SCAN_MODE,
|
|
|
|
struct set_bt_scan_mode_args {
|
|
|
|
esp_bt_scan_mode_t mode;
|
|
|
|
} set_scan_mode;
|
2018-01-17 23:56:58 +01:00
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_START_DISCOVERY
|
|
|
|
struct start_disc_args {
|
|
|
|
esp_bt_inq_mode_t mode;
|
|
|
|
uint8_t inq_len;
|
|
|
|
uint8_t num_rsps;
|
|
|
|
} start_disc;
|
|
|
|
|
2018-06-27 09:01:06 +02:00
|
|
|
// BTC_GAP_BT_ACT_GET_REMOTE_SERVICES
|
2018-01-17 23:56:58 +01:00
|
|
|
bt_bdaddr_t bda;
|
|
|
|
|
2018-06-27 09:01:06 +02:00
|
|
|
// BTC_GAP_BT_ACT_GET_REMOTE_SERVICE_RECORD
|
2018-01-17 23:56:58 +01:00
|
|
|
struct get_rmt_srv_rcd_args {
|
|
|
|
bt_bdaddr_t bda;
|
|
|
|
esp_bt_uuid_t uuid;
|
|
|
|
} get_rmt_srv_rcd;
|
2018-06-27 09:01:06 +02:00
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_SET_COD
|
|
|
|
struct set_cod_args {
|
|
|
|
esp_bt_cod_t cod;
|
|
|
|
esp_bt_cod_mode_t mode;
|
|
|
|
} set_cod;
|
|
|
|
|
|
|
|
//BTC_GAP_BT_ACT_READ_RSSI_DELTA,
|
|
|
|
struct bt_read_rssi_delta_args {
|
|
|
|
bt_bdaddr_t bda;
|
|
|
|
} read_rssi_delta;
|
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_REMOVE_BOND_DEVICE
|
|
|
|
struct rm_bond_device_args {
|
|
|
|
bt_bdaddr_t bda;
|
|
|
|
} rm_bond_device;
|
2018-09-21 08:39:36 +02:00
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_SET_PIN_TYPE
|
|
|
|
struct set_pin_type_args {
|
|
|
|
esp_bt_pin_type_t pin_type;
|
|
|
|
uint8_t pin_code_len;
|
|
|
|
esp_bt_pin_code_t pin_code;
|
|
|
|
} set_pin_type;
|
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_PIN_REPLY
|
|
|
|
struct pin_reply_args {
|
|
|
|
bt_bdaddr_t bda;
|
|
|
|
bool accept;
|
|
|
|
uint8_t pin_code_len;
|
|
|
|
esp_bt_pin_code_t pin_code;
|
|
|
|
} pin_reply;
|
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_SET_SECURITY_PARAM
|
|
|
|
struct set_sec_param_args {
|
|
|
|
esp_bt_sp_param_t param_type;
|
|
|
|
uint8_t len;
|
|
|
|
uint8_t *value;
|
|
|
|
} set_security_param;
|
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_PASSKEY_REPLY
|
|
|
|
struct passkey_reply_args {
|
|
|
|
bt_bdaddr_t bda;
|
|
|
|
bool accept;
|
|
|
|
uint32_t passkey;
|
|
|
|
} passkey_reply;
|
|
|
|
|
|
|
|
// BTC_GAP_BT_ACT_CONFIRM_REPLY
|
|
|
|
struct confirm_reply_args {
|
|
|
|
bt_bdaddr_t bda;
|
|
|
|
bool accept;
|
|
|
|
} confirm_reply;
|
2017-05-06 19:29:12 +02:00
|
|
|
} btc_gap_bt_args_t;
|
2017-02-06 14:17:11 +01:00
|
|
|
|
2017-05-06 19:29:12 +02:00
|
|
|
void btc_gap_bt_call_handler(btc_msg_t *msg);
|
2018-06-27 09:01:06 +02:00
|
|
|
void btc_gap_bt_cb_handler(btc_msg_t *msg);
|
2018-09-21 08:39:36 +02:00
|
|
|
void btc_gap_bt_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
|
2018-01-17 23:56:58 +01:00
|
|
|
void btc_gap_bt_busy_level_updated(uint8_t bl_flags);
|
|
|
|
|
2018-06-27 09:01:06 +02:00
|
|
|
esp_err_t btc_gap_bt_get_cod(esp_bt_cod_t *cod);
|
2018-01-17 23:56:58 +01:00
|
|
|
#endif /* #if BTC_GAP_BT_INCLUDED */
|
2017-05-06 19:29:12 +02:00
|
|
|
|
|
|
|
#endif /* __BTC_GAP_BT_H__ */
|