TuyaOS
tuya_hal_bt.h
浏览该文件的文档.
1
10#ifndef TUYA_HAL_BT_H__
11#define TUYA_HAL_BT_H__
12
13#include "tuya_os_adapter.h"
14
15#if defined(TY_BT_MOD) && (TY_BT_MOD==1)
16
17#include <stdbool.h>
18#include <stdint.h>
19#include "tuya_cloud_types.h"
20#include "tal_bluetooth_def.h"
21
22#define DEVICE_NAME_LEN 16
23
24typedef INT_T BT_ABILITY;
25#define BT_ABI_NEED_RESET_STACK (1<<0)
26//#define BT_ABI_OTHER (1<<1)
27
28typedef enum {
29 TY_BT_SCAN_BY_NAME = 0x01,
30 TY_BT_SCAN_BY_MAC = 0x02,
31 TY_BT_SCAN_BY_ADV = 0x03, //接收蓝牙广播
32}ty_bt_scan_type_t;
33
34typedef enum {
35 TY_BT_EVENT_DISCONNECTED, /* APP断开连接 */
36 TY_BT_EVENT_CONNECTED, /* APP连接上设备 */
37 TY_BT_EVENT_RX_DATA, /* 接收到APP数据*/
38 TY_BT_EVENT_ADV_READY, /* start adv. */
39}ty_bt_cb_event_t;
40
41typedef enum {
42 TY_BT_MODE_PERIPHERAL,
43 TY_BT_MODE_CENTRAL,
44}ty_bt_mode_t;
45
46typedef struct{
47 unsigned int len;
48 unsigned char *data;
49}tuya_ble_data_buf_t;
50
51typedef VOID (*TY_BT_MSG_CB)(INT_T id, ty_bt_cb_event_t e, tuya_ble_data_buf_t *buf);
52
53typedef struct {
54 CHAR_T name[DEVICE_NAME_LEN];
55 TAL_BLE_ROLE_E mode;
56 UCHAR_T link_num;
57 TY_BT_MSG_CB cb;
58 tuya_ble_data_buf_t adv;
59 tuya_ble_data_buf_t scan_rsp;
60}ty_bt_param_t;
61
62typedef VOID (*TY_BT_SCAN_ADV_CB)(CHAR_T *data, UINT_T len, UCHAR_T* mac, UINT8_T type);
63typedef struct {
64 CHAR_T scan_type; /* ref ty_bt_scan_type_t. */
65 CHAR_T name[DEVICE_NAME_LEN];
66 CHAR_T bd_addr[6];
67 SCHAR_T rssi;
68 UCHAR_T channel;
69 UCHAR_T timeout_s; /* second. */
70 TY_BT_SCAN_ADV_CB scan_adv_cb;
71}ty_bt_scan_info_t;
81OPERATE_RET tuya_hal_bt_port_init(ty_bt_param_t *p);
82
92OPERATE_RET tuya_hal_bt_port_deinit(void);
93
103OPERATE_RET tuya_hal_bt_gap_disconnect(void);
104
115OPERATE_RET tuya_hal_bt_send(BYTE_T *data, UINT8_T len);
116
127OPERATE_RET tuya_hal_bt_reset_adv(tuya_ble_data_buf_t *adv, tuya_ble_data_buf_t *scan_resp);
128
138OPERATE_RET tuya_hal_bt_get_rssi(SCHAR_T *rssi);
139
149OPERATE_RET tuya_hal_bt_start_adv(void);
150
160OPERATE_RET tuya_hal_bt_stop_adv(void);
161
171OPERATE_RET tuya_hal_bt_assign_scan(INOUT ty_bt_scan_info_t *info);
172
182OPERATE_RET tuya_hal_bt_get_ability(VOID_T);
183
184
195OPERATE_RET tuya_hal_bt_scan_init(IN TY_BT_SCAN_ADV_CB scan_adv_cb);
196
206OPERATE_RET tuya_hal_bt_start_scan(VOID_T);
207
217OPERATE_RET tuya_hal_bt_stop_scan(VOID_T);
218
219// OPERATE_RET tuya_hal_bt_central_init(ty_ble_central_param_t *p);
220
221// OPERATE_RET tuya_hal_bt_central_deinit(VOID_T);
222
223// OPERATE_RET tuya_hal_bt_master_connect(UINT8_T mac[6], ty_ble_addr_type_t type, UINT_T timeout_ms, ty_ble_gap_conn_params_t *params);
224
225// OPERATE_RET tuya_hal_bt_master_disconnect(UINT8_T mac[6], ty_ble_addr_type_t type);
226
227// OPERATE_RET tuya_hal_bt_master_scan(BOOL_T enable);
228
229// OPERATE_RET tuya_hal_bt_master_get_max_slave_num(UINT16_T *num);
230
231// OPERATE_RET tuya_hal_bt_gattc_send_data(UINT8_T mac[6], UINT8_T *data, UINT_T length);
232
233// OPERATE_RET tuya_hal_bt_gattc_start_discovery(UINT8_T mac[6], ty_bt_uuid_t *uuid);
234
235
245VOID_T tuya_os_bt_intf_init(VOID_T);
246
247
255OPERATE_RET tuya_hal_bt_get_mac(NW_MAC_S *mac);
256
264OPERATE_RET tuya_hal_bt_set_mac(CONST NW_MAC_S *mac);
265#endif
266
267#endif
268
269
Definition: tuya_cloud_types.h:208
Common process - Initialization