99 lines
3.2 KiB
C
99 lines
3.2 KiB
C
|
// 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_BLE_H__
|
||
|
#define __BTC_GAP_BLE_H__
|
||
|
|
||
|
#include "esp_bt_defs.h"
|
||
|
#include "esp_gap_ble_api.h"
|
||
|
|
||
|
#define BLE_ISVALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) || ((x) == ESP_BLE_CONN_PARAM_UNDEF))
|
||
|
|
||
|
typedef enum {
|
||
|
BTC_GAP_BLE_ACT_CFG_ADV_DATA = 0,
|
||
|
BTC_GAP_BLE_ACT_SET_SCAN_PARAM,
|
||
|
BTC_GAP_BLE_ACT_START_SCAN,
|
||
|
BTC_GAP_BLE_ACT_STOP_SCAN,
|
||
|
BTC_GAP_BLE_ACT_START_ADV,
|
||
|
BTC_GAP_BLE_ACT_STOP_ADV,
|
||
|
BTC_GAP_BLE_ACT_UPDATE_CONN_PARAM,
|
||
|
BTC_GAP_BLE_ACT_SET_PKT_DATA_LEN,
|
||
|
BTC_GAP_BLE_ACT_SET_RAND_ADDRESS,
|
||
|
BTC_GAP_BLE_ACT_CONFIG_LOCAL_PRIVACY,
|
||
|
BTC_GAP_BLE_ACT_SET_DEV_NAME,
|
||
|
BTC_GAP_BLE_ACT_CFG_ADV_DATA_RAW,
|
||
|
BTC_GAP_BLE_ACT_CFG_SCAN_RSP_DATA_RAW,
|
||
|
} btc_gap_ble_act_t;
|
||
|
|
||
|
/* btc_ble_gap_args_t */
|
||
|
typedef union {
|
||
|
//BTC_GAP_BLE_ACT_CFG_ADV_DATA = 0,
|
||
|
struct config_adv_data_args {
|
||
|
esp_ble_adv_data_t adv_data;
|
||
|
} cfg_adv_data;
|
||
|
//BTC_GAP_BLE_ACT_SET_SCAN_PARAM,
|
||
|
struct set_scan_params_args {
|
||
|
esp_ble_scan_params_t scan_params;
|
||
|
} set_scan_param;
|
||
|
//BTC_GAP_BLE_ACT_START_SCAN,
|
||
|
struct start_scan_args {
|
||
|
uint32_t duration;
|
||
|
} start_scan;
|
||
|
//BTC_GAP_BLE_ACT_STOP_SCAN, no args
|
||
|
//BTC_GAP_BLE_ACT_START_ADV,
|
||
|
struct start_adv_args {
|
||
|
esp_ble_adv_params_t adv_params;
|
||
|
} start_adv;
|
||
|
//BTC_GAP_BLE_ACT_STOP_ADV, no args
|
||
|
//BTC_GAP_BLE_ACT_UPDATE_CONN_PARAM,
|
||
|
struct conn_update_params_args {
|
||
|
esp_ble_conn_update_params_t conn_params;
|
||
|
} conn_update_params;
|
||
|
//BTC_GAP_BLE_ACT_SET_PKT_DATA_LEN
|
||
|
struct set_pkt_data_len_args {
|
||
|
esp_bd_addr_t remote_device;
|
||
|
uint16_t tx_data_length;
|
||
|
} set_pkt_data_len;
|
||
|
//BTC_GAP_BLE_ACT_SET_RAND_ADDRESS,
|
||
|
struct set_rand_addr_args {
|
||
|
esp_bd_addr_t rand_addr;
|
||
|
} set_rand_addr;
|
||
|
//BTC_GAP_BLE_ACT_CONFIG_LOCAL_PRIVACY,
|
||
|
struct cfg_local_privacy_args {
|
||
|
bool privacy_enable;
|
||
|
} cfg_local_privacy;
|
||
|
//BTC_GAP_BLE_ACT_SET_DEV_NAME,
|
||
|
struct set_dev_name_args {
|
||
|
#define ESP_GAP_DEVICE_NAME_MAX (32)
|
||
|
char device_name[ESP_GAP_DEVICE_NAME_MAX + 1];
|
||
|
} set_dev_name;
|
||
|
//BTC_GAP_BLE_ACT_CFG_ADV_DATA_RAW,
|
||
|
struct config_adv_data_raw_args {
|
||
|
uint8_t *raw_adv;
|
||
|
uint32_t raw_adv_len;
|
||
|
} cfg_adv_data_raw;
|
||
|
//BTC_GAP_BLE_ACT_CFG_SCAN_RSP_DATA_RAW,
|
||
|
struct config_scan_rsp_data_raw_args {
|
||
|
uint8_t *raw_scan_rsp;
|
||
|
uint32_t raw_scan_rsp_len;
|
||
|
} cfg_scan_rsp_data_raw;
|
||
|
} btc_ble_gap_args_t;
|
||
|
|
||
|
void btc_gap_ble_call_handler(btc_msg_t *msg);
|
||
|
void btc_gap_ble_cb_handler(btc_msg_t *msg);
|
||
|
|
||
|
void btc_gap_ble_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
|
||
|
|
||
|
#endif /* __BTC_GAP_BLE_H__ */
|