TuyaOS
ffc_app.h
浏览该文件的文档.
1
11#ifndef __TUYA_FFC_APP_H__
12#define __TUYA_FFC_APP_H__
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18#include <stdint.h>
19
20#define FFC_MASTER 0x01
21#define FFC_SLAVER 0x02
22
23#define FFC_LOWPOWER_EVENT "ffc.lowpower"
24
25typedef enum {
26 FFC_INIT_STATE = 0,
27 FFC_CONTROL_STATE,
28 FFC_BINDING_BEGIN_STATE,
29 FFC_BINDING_SUCCESS_STATE,
30 FFC_BINDING_FINSH_STATE,
31} ffc_cb_state_t;
32
33typedef int (*ffc_status_cb)(ffc_cb_state_t state);
34typedef int (*ffc_recv_cb)(uint8_t *data_cmd, uint16_t data_len);
35
37typedef enum {
38 FFC_MASTER_TYPE_LOCAL = 0,
39 FFC_MASTER_TYPE_FITTINGS = 1,
40 FFC_MASTER_TYPE_DEVICE = 2,
41 FFC_MASTER_TYPE_ONLINE = FFC_MASTER_TYPE_DEVICE,
42 FFC_MASTER_TYPE_MAX,
44
45typedef enum {
46 FFC_FITTINGS_SYNC_EVENT,
47 FFC_FITTINGS_ACTIVE_EVENT,
48} ffc_fittings_event_t;
49
50typedef struct {
51 ffc_fittings_event_t event;
53 uint8_t mac[6];
54 uint8_t key[16];
55 uint16_t seq;
56 uint8_t uuid[25 + 1];
57 uint8_t pid[20 + 1];
59
60typedef int (*ffc_fittings_cb)(ffc_fittings_msg_t *msg);
61
62typedef enum {
63 FFC_GROUP_0 = 0x00,
64 FFC_GROUP_1,
65 FFC_GROUP_2,
66 FFC_GROUP_3,
67 FFC_GROUP_MAX,
68} ffc_group_t;
69
70typedef enum {
71 FFC_CHANNEL_SCAN_FLAG = 0x01,
72 FFC_MASTER_GROUP_SET_FLAG,
73 FFC_MASTER_TYPE_SET_FLAG,
74} ffc_flag_t;
75
79typedef struct {
81 uint8_t uuid[25 + 1];
83 uint8_t pid[20 + 1];
85 uint8_t auzkey[32 + 1];
87 uint8_t mac[6];
89 uint8_t channel[13];
93 uint32_t flag;
94} ffc_cfg_t;
95
99typedef struct {
101 int (*channel_set)(uint8_t new_channel);
103 uint8_t (*channel_get)(void);
105 int (*send_frame)(uint8_t *frame, uint16_t frame_len, uint8_t src_mac[6], uint8_t dst_mac[6]);
106} ffc_ops_t;
107
111typedef struct {
113 ffc_status_cb status_cb;
115 ffc_recv_cb recv_cb;
117 ffc_fittings_cb fittings_cb;
118} ffc_cb_t;
119
120
131int tuya_iot_wifi_ffc_init(uint8_t role, ffc_status_cb *status_cb, ffc_recv_cb *recv_cb);
132
141int tuya_iot_wifi_ffc_bind(uint16_t timeout_s);
142
151int tuya_iot_wifi_ffc_unbind(uint16_t timeout_s);
152
162int tuya_iot_wifi_ffc_send(uint8_t *data, uint16_t len);
163
173int tuya_iot_wifi_ffc_control(int flag, void *data);
174
175
176#define ffc_init tuya_iot_wifi_ffc_init
177#define ffc_bind tuya_iot_wifi_ffc_bind
178#define ffc_unbind tuya_iot_wifi_ffc_unbind
179#define ffc_send tuya_iot_wifi_ffc_send
180#define ffc_control tuya_iot_wifi_ffc_control
181
182
183#ifdef __cplusplus
184}
185#endif
186#endif
187
int tuya_iot_wifi_ffc_init(uint8_t role, ffc_status_cb *status_cb, ffc_recv_cb *recv_cb)
ffc init function,must called first
int tuya_iot_wifi_ffc_control(int flag, void *data)
ffc control
int tuya_iot_wifi_ffc_bind(uint16_t timeout_s)
ffc bind function
int tuya_iot_wifi_ffc_unbind(uint16_t timeout_s)
ffc unbind function
ffc_master_type_t
FFC_MASTER_TYPE_LOCAL -> FFC_MASTER_TYPE_FITTINGS
Definition: ffc_app.h:37
int tuya_iot_wifi_ffc_send(uint8_t *data, uint16_t len)
ffc send
callback define when ffc init
Definition: ffc_app.h:111
ffc configure struct
Definition: ffc_app.h:79
uint8_t channel_count
Definition: ffc_app.h:91
uint32_t flag
Definition: ffc_app.h:93
Definition: ffc_app.h:50
ffc operation struct
Definition: ffc_app.h:99