TuyaOS
tkl_data_transceiver.h
浏览该文件的文档.
1
11#ifndef __TKL_DATA_TRANSCEIVER_H__
12#define __TKL_DATA_TRANSCEIVER_H__
13
14
15#ifdef __cplusplus
16 extern "C" {
17#endif
18
19#include "tuya_zigbee_stack.h"
20#include "tuya_cloud_types.h"
21
22/*
23 * Zigbee data receive handle mode
24*/
25typedef enum {
26 // handling process to TAL, no need to participate in SDK
27 HANDLE_TUYA_SDK_MODE = 0,
28 // just notify the tuya TAL that the data is received,
29 // and the processing process is handed over to the SDK
30 HANDLE_NATIVE_SDK_MODE = 1
31} TKL_HANDLE_MODE_E;
32
33
34/*
35 * Zigbee zcl head structure
36*/
37typedef struct {
38 UINT8_T frame_type;
39 UINT8_T manu_spec;
40 UINT8_T direction;
41 UINT8_T disable_rsp;
42 UINT16_T manu_code;
43 UINT8_T seq_number;
44 UINT8_T command_id;
46
47/*
48 * Zigbee zcl frame structure
49*/
50typedef struct {
52 UINT8_T payload_len;
53 UINT8_T *payload;
55
56/*
57 * Zigbee zcl write attribute record format
58*/
59typedef struct {
60 UINT16_T attr_id;
61 UINT8_T data_type;
62 UINT8_T data_len;
63 UINT8_T *attr_data;
65
66/*
67 * Zigbee zdp frame structure
68*/
69typedef struct {
70 UINT8_T zdo_len;
71 CONST UINT8_T *zdo_buffer;
73
74/*
75 * Zigbee data receive address structure
76*/
77typedef struct {
78 UINT16_T src_addr;
79 UINT16_T group_addr;
81
82/*
83 * Zigbee data send address structure
84*/
85typedef union {
86 UINT16_T dst_addr;
87 UINT16_T group_addr;
89
90/*
91 * Zigbee auxiliary info structure
92*/
93typedef struct {
95 UINT8_T src_ep;
96 UINT8_T dst_ep;
97 UINT16_T profile;
98 UINT16_T cluster;
99 union {
100 TKL_SEND_ADDR_T send;
101 TKL_RECV_ADDR_T recv;
102 } addr;
104
105typedef VOID_T (*TKL_PRE_SEND_CB)(UINT8_T seq_num);
106
107typedef VOID_T (*TKL_POST_SEND_CB)(INT_T state, UINT8_T seq_num);
108
109/*
110 * Zigbee data send callback collection
111*/
112typedef struct {
113 TKL_PRE_SEND_CB pre_send_cb;
114 TKL_POST_SEND_CB post_send_cb;
116
117/*
118 * Zigbee zcl layer command receive callback
119*/
120typedef ZG_CMD_STATUS_E (*TKL_ZCL_CMD_CB)(TKL_ZG_AUX_T *auxiliary,
121 TKL_ZCL_FRAME_T *frame,
122 TKL_HANDLE_MODE_E *mode);
123/*
124 * Zigbee zdp layer command receive callback
125*/
126typedef ZG_CMD_STATUS_E (*TKL_ZDP_CMD_CB)(TKL_ZG_AUX_T *auxiliary,
127 TKL_ZDP_FRAME_T *frame,
128 TKL_HANDLE_MODE_E *mode);
129/*
130 Zigbee zcl write attribute callback
131*/
132typedef ZG_CMD_STATUS_E (*TKL_WRITE_ATTR_CB)(UINT8_T ep_id,
133 UINT16_T cluster_id,
134 TKL_ATTR_REC_T *attr_rec);
135/*
136 * Zigbee data receive callback collection
137*/
138typedef struct {
139 // pre remote write attribute callback
140 TKL_WRITE_ATTR_CB pre_write_attr_cb;
141 // post remote write attribute callback
142 TKL_WRITE_ATTR_CB post_write_attr_cb;
143 // zdp message receive callback
144 TKL_ZDP_CMD_CB recv_zdp_cmd_cb;
145 // zcl general message receive callback
146 TKL_ZCL_CMD_CB recv_zcl_cmd_general_cb;
147 // zcl specific to a cluster message receive callback,
148 // include not register cluster message
149 TKL_ZCL_CMD_CB recv_zcl_cmd_specific_cb;
151
158UINT8_T tkl_zcl_seq_num_get(VOID_T);
159
167
175
183OPERATE_RET tkl_zg_aps_send(TKL_ZG_AUX_T *auxiliary, TKL_ZCL_FRAME_T *zcl_data);
184
185
186#ifdef __cplusplus
187}
188#endif
189
190#endif
Definition: tkl_data_transceiver.h:59
UINT16_T attr_id
attribute id
Definition: tkl_data_transceiver.h:60
UINT8_T * attr_data
attribute data
Definition: tkl_data_transceiver.h:63
UINT8_T data_len
atttribute data len
Definition: tkl_data_transceiver.h:62
UINT8_T data_type
attribute data type
Definition: tkl_data_transceiver.h:61
Definition: tkl_data_transceiver.h:77
UINT16_T src_addr
nwk source address
Definition: tkl_data_transceiver.h:78
UINT16_T group_addr
group id,if not ZG_MULTICAST_MODE setting 0
Definition: tkl_data_transceiver.h:79
Definition: tkl_data_transceiver.h:50
TKL_ZCL_HDR_T zcl_hdr
ZCL layer heade
Definition: tkl_data_transceiver.h:51
UINT8_T * payload
ZCL layer payload
Definition: tkl_data_transceiver.h:53
UINT8_T payload_len
ZCL layer payload length
Definition: tkl_data_transceiver.h:52
Definition: tkl_data_transceiver.h:37
UINT8_T disable_rsp
disable default response
Definition: tkl_data_transceiver.h:41
UINT8_T seq_number
ZCL transaction sequence number
Definition: tkl_data_transceiver.h:43
UINT16_T manu_code
manufacturer code if manu_spec set 1
Definition: tkl_data_transceiver.h:42
UINT8_T command_id
ZCL command id
Definition: tkl_data_transceiver.h:44
UINT8_T direction
data transmission direction
Definition: tkl_data_transceiver.h:40
UINT8_T frame_type
ZCL frame type
Definition: tkl_data_transceiver.h:38
UINT8_T manu_spec
manufacturer specific
Definition: tkl_data_transceiver.h:39
Definition: tkl_data_transceiver.h:69
UINT8_T zdo_len
ZDO layer data length
Definition: tkl_data_transceiver.h:70
CONST UINT8_T * zdo_buffer
ZDO layer data buffer
Definition: tkl_data_transceiver.h:71
Definition: tkl_data_transceiver.h:93
UINT8_T src_ep
source endpoint
Definition: tkl_data_transceiver.h:95
UINT8_T dst_ep
destination endpoint
Definition: tkl_data_transceiver.h:96
UINT16_T profile
profile of message
Definition: tkl_data_transceiver.h:97
ZG_DELIVERY_MODE_E mode
delivery mode
Definition: tkl_data_transceiver.h:94
UINT16_T cluster
cluster of message
Definition: tkl_data_transceiver.h:98
Definition: tkl_data_transceiver.h:138
Definition: tkl_data_transceiver.h:112
OPERATE_RET tkl_zg_aps_send(TKL_ZG_AUX_T *auxiliary, TKL_ZCL_FRAME_T *zcl_data)
sending data in APS layer
OPERATE_RET tkl_zg_register_send_cb(TKL_ZG_SEND_CB *send_cb)
register data send callback
UINT8_T tkl_zcl_seq_num_get(VOID_T)
get zcl transaction sequence number
OPERATE_RET tkl_zg_register_recv_cb(TKL_ZG_RECV_CB *recv_cb)
register data receive callback
Common process - zigbee stack
ZG_DELIVERY_MODE_E
Definition: tuya_zigbee_stack.h:93
Definition: tkl_data_transceiver.h:85
UINT16_T group_addr
group id,if not ZG_MULTICAST_MODE setting 0
Definition: tkl_data_transceiver.h:87
UINT16_T dst_addr
nwk destination address
Definition: tkl_data_transceiver.h:86