1
6
7
8
9
10
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
44
45
47
48
49
54
55
61
62
65
66
73
74
77
78
83
84
85
86
87
88
89
90
91
92
93
94
/* ... */
#ifndef __BTC_SPP_H__
#define __BTC_SPP_H__
#include "btc/btc_task.h"
#include "esp_bt_defs.h"
#include "esp_spp_api.h"
#include "common/bt_target.h"
#include "bta/bta_jv_api.h"5 includes
#if (defined BTC_SPP_INCLUDED && BTC_SPP_INCLUDED == TRUE)
#define ESP_SPP_MAX_SESSION BTA_JV_MAX_RFC_SR_SESSION
#define ESP_SPP_SERVER_NAME_MAX 32
#define BTC_SPP_INVALID_SCN 0x00
typedef enum {
BTC_SPP_ACT_INIT = 0,
BTC_SPP_ACT_UNINIT,
BTC_SPP_ACT_START_DISCOVERY,
BTC_SPP_ACT_CONNECT,
BTC_SPP_ACT_DISCONNECT,
BTC_SPP_ACT_START_SRV,
BTC_SPP_ACT_STOP_SRV,
BTC_SPP_ACT_WRITE,
BTC_SPP_ACT_VFS_REGISTER,
BTC_SPP_ACT_VFS_UNREGISTER,
}{...} btc_spp_act_t;
typedef union {
struct init_arg {
esp_spp_mode_t mode;
bool enable_l2cap_ertm;
UINT16 tx_buffer_size;
}{...} init;
struct uninit_arg {
}{...} uninit;
struct start_discovery_arg {
BD_ADDR bd_addr;
UINT16 num_uuid;
tSDP_UUID *p_uuid_list;
}{...} start_discovery;
struct conn_arg {
esp_spp_sec_t sec_mask;
esp_spp_role_t role;
UINT8 remote_scn;
esp_bd_addr_t peer_bd_addr;
}{...} connect;
struct disconn_arg {
UINT32 handle;
}{...} disconnect;
struct start_srv_arg {
esp_spp_sec_t sec_mask;
esp_spp_role_t role;
UINT8 local_scn;
UINT8 max_session;
char name[ESP_SPP_SERVER_NAME_MAX + 1];
}{...} start_srv;
struct stop_srv_arg {
UINT8 scn;
}{...} stop_srv;
struct write_arg {
UINT32 handle;
int len;
UINT8 *p_data;
}{...} write;
}{...} btc_spp_args_t;
void btc_spp_call_handler(btc_msg_t *msg);
void btc_spp_cb_handler(btc_msg_t *msg);
void btc_spp_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_spp_arg_deep_free(btc_msg_t *msg);
esp_err_t spp_send_data_to_btc(uint32_t handle, int len, uint8_t *p_data, esp_spp_mode_t spp_mode);/* ... */
#endif /* ... */
#endif