TuyaOS
tkl_network_manager.h
浏览该文件的文档.
1
11#ifndef __TKL_NETWORK_MANAGER_H__
12#define __TKL_NETWORK_MANAGER_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 secret key type
24*/
25#define CENTRALIZED_GLOBAL_TC_LINK_KEY 0x00
26#define DISTRIBUTED_SECURITY_GLOBAL_LINK_KEY 0x01
27#define CENTRALIZED_INSTALL_CODE_DERIVED_LINK_KEY 0x02
28#define DISTRIBUTED_TOUCHLINK_PRECFG_LINK_KEY 0x03
29
30/*
31 * zigbee network rejoin type
32*/
33typedef enum {
34 // rejoin on current channel
35 TKL_REJOIN_ON_CURRENT_CH = 0,
36 // rejoin on all 802.25.4 channel(11~26)
37 TKL_REJOIN_ON_ALL_ZG_CH,
38} TKL_REJOIN_TYPE_E;
39
40/*
41 * zigbee secret key information structure
42*/
43typedef struct {
44 UINT8_T nwk_key[16];
45 UINT8_T sec_tc_link_key[16];
47
48/*
49 * zigbee install code structure
50*/
51typedef struct {
52 UINT8_T code[16];
54
55/*
56 * zigbee key status
57*/
58typedef enum {
65
66typedef VOID_T (*TKL_TCLINK_KEY_CB)(TKL_KEY_STATUS_E status);
67
68/*
69 * zigbee network basic state
70*/
71typedef enum {
72 // the node is not associated with a network in any way
73 TKL_NODE_NO_NETWORK = 0,
74 // the node is currently attempting to join a network
75 TKL_NODE_JOINING_NETWORK,
76 // the node is joined to a network
77 TKL_NODE_JOINED_NETWORK,
78 // the node is an end device joined to a network but its parent is not responding
79 TKL_NODE_NO_PARENT,
80 // the node is in the process of leaving its current network
81 TKL_NODE_LEAVING_NETWORK
82} TKL_NWK_BASIC_STATE_E;
83
84typedef VOID_T (*TKL_ZGAL_NWK_CHANGE_CB)(TKL_NWK_BASIC_STATE_E state);
85
86/*
87 * zigbee scan type
88*/
89typedef enum {
93
94/*
95 * zigbee scan result
96*/
97typedef enum {
105
106/*
107 * zigbee basic information structure
108*/
109typedef struct {
110 INT8_T radio_power;
112 UINT16_T nwk_addr;
113 UINT16_T panid;
114 UINT8_T mac_addr[8];
115 UINT8_T ext_panid[8];
117
118/*
119 * zigbee scan result structure
120*/
121typedef struct {
122 UINT8_T channel;
126
127/*
128 * zigbee join and rejoin complete callback
129*/
130typedef VOID_T (*TKL_NWK_SCAN_CB)(TKL_SCAN_RESULT_T *result);
131
132/*
133 * zigbee scan policy structure
134*/
135typedef struct {
136 TKL_REJOIN_TYPE_E type;
137 TKL_NWK_SCAN_CB scan_complete_cb;
139
140/*
141 * zigbee scan policy structure
142*/
143typedef struct {
146 UINT32_T channel_mask;
147 TKL_NWK_SCAN_CB scan_complete_cb;
149
150/*
151 * zigbee scan policy structure
152*/
153typedef struct {
154 union {
155 TKL_JOIN_CFG_T join;
156 TKL_REJOIN_CFG_T rejoin;
157 } scan;
159
166TKL_NWK_BASIC_STATE_E tkl_zg_nwk_base_status_get(VOID_T);
167
174OPERATE_RET tkl_zg_nwk_state_change_register(TKL_ZGAL_NWK_CHANGE_CB nwk_change_cb);
175
184
192
200
207OPERATE_RET tkl_zg_start_leave(VOID_T);
208
216
224
232
239OPERATE_RET tkl_zg_register_key_establish_cb(TKL_TCLINK_KEY_CB key_cb);
240
248
256
263VOID_T tkl_zg_radio_channel_set(UINT8_T channel);
264
272
279VOID_T tkl_zg_radio_power_set(INT8_T tx_power);
280
287VOID_T tkl_zg_mac_address_get(UINT8_T *mac);
288
295UINT16_T tkl_zg_nwk_address_get(VOID_T);
296
303UINT16_T tkl_zg_nwk_panid_get(VOID_T);
304
311VOID_T tkl_zg_nwk_extend_panid_get(UINT8_T *extpanid);
312
320
328
336
337
338#ifdef __cplusplus
339}
340#endif
341
342#endif
343
Definition: tkl_network_manager.h:51
Definition: tkl_network_manager.h:143
UINT8_T link_key_mask
the key used for data decryption during scanning
Definition: tkl_network_manager.h:145
UINT32_T channel_mask
channel mask during scanning, specify one channel at a time
Definition: tkl_network_manager.h:146
ZG_SCAN_DURATION_E duration
scan duration for bdb
Definition: tkl_network_manager.h:144
Definition: tkl_network_manager.h:109
INT8_T radio_power
radio power
Definition: tkl_network_manager.h:110
UINT16_T panid
network panid,if not in network will be 0xFFFF
Definition: tkl_network_manager.h:113
UINT16_T nwk_addr
network address,if not in network will be 0xFFFF
Definition: tkl_network_manager.h:112
UINT8_T radio_channel
radio channel
Definition: tkl_network_manager.h:111
Definition: tkl_network_manager.h:135
TKL_REJOIN_TYPE_E type
channel mask during scanning, specify one channel at a time
Definition: tkl_network_manager.h:136
Definition: tkl_network_manager.h:153
Definition: tkl_network_manager.h:121
TKL_SCAN_TYPE_E type
scan type
Definition: tkl_network_manager.h:123
TKL_SCAN_STATUS_E result
scan result
Definition: tkl_network_manager.h:124
UINT8_T channel
scan channel
Definition: tkl_network_manager.h:122
Definition: tkl_network_manager.h:43
VOID_T tkl_zg_node_type_set(ZG_NODE_TYPE_E type)
zigbee node type set
OPERATE_RET tkl_zg_start_leave(VOID_T)
zigbee start leave
OPERATE_RET tkl_zg_register_key_establish_cb(TKL_TCLINK_KEY_CB key_cb)
register key status callback
OPERATE_RET tkl_zg_nwk_state_change_register(TKL_ZGAL_NWK_CHANGE_CB nwk_change_cb)
register network state change callback
UINT16_T tkl_zg_nwk_panid_get(VOID_T)
get zigbee network panid
ZG_NODE_TYPE_E tkl_zg_node_type_get(VOID_T)
zigbee node type get
UINT8_T tkl_zg_radio_channel_get(VOID_T)
get zigbee radio channel
VOID_T tkl_zg_scan_policy_set(TKL_SCAN_TYPE_E type, TKL_SCAN_POLICY_T *policy)
set zigbee scan policy
VOID_T tkl_zg_nwk_base_info_get(TKL_NWK_BASIC_INFO_T *nwk_info)
get zigbee network basic information
TKL_SCAN_TYPE_E
Definition: tkl_network_manager.h:89
@ TKL_SCAN_FOR_REJOIN
scan for re-joining a network
Definition: tkl_network_manager.h:91
@ TKL_SCAN_FOR_JOIN
scan for joining a network
Definition: tkl_network_manager.h:90
UINT16_T tkl_zg_nwk_address_get(VOID_T)
get zigbee network short address
TKL_SCAN_STATUS_E
Definition: tkl_network_manager.h:97
@ TKL_SCAN_SUCESS
scan success
Definition: tkl_network_manager.h:98
@ TKL_SCAN_UNKNOWN_FAIL
scan failed because other reasons
Definition: tkl_network_manager.h:103
@ TKL_SCAN_NO_LINK_KEY
scan failed because no link key
Definition: tkl_network_manager.h:100
@ TKL_SCAN_NO_BEACONS
scan failed because no beacon received
Definition: tkl_network_manager.h:99
@ TKL_SCAN_NOT_PERMITTED
scan failed because remote not permitted
Definition: tkl_network_manager.h:102
@ TKL_SCAN_DECRYPT_FAIL
scan failed because decrypt fail
Definition: tkl_network_manager.h:101
OPERATE_RET tkl_zg_stop_scan(TKL_SCAN_TYPE_E type)
zigbee stop scan
VOID_T tkl_zg_radio_channel_set(UINT8_T channel)
set zigbee radio channel
VOID_T tkl_zg_install_code_get(TKL_INSTALL_CODE_T *insall_code)
get zigbee install code
INT8_T tkl_zg_radio_power_get(VOID_T)
get zigbee radio power
TKL_KEY_STATUS_E
Definition: tkl_network_manager.h:58
@ TKL_TCLINK_KEY_VERIFY_FAILED
verify TcLink key failed
Definition: tkl_network_manager.h:63
@ TKL_TCLINK_KEY_ESTABLISHED
receive TcLink key
Definition: tkl_network_manager.h:60
@ TKL_TCLINK_KEY_ESTABLISHED_FAILED
receive TcLink failed
Definition: tkl_network_manager.h:61
@ TKL_KEY_STATUS_NONE
status none
Definition: tkl_network_manager.h:59
@ TKL_TCLINK_KEY_VERIFY_SUCCESS
verify TcLink key success
Definition: tkl_network_manager.h:62
BOOL_T tkl_zg_nwk_secret_key_info_get(TKL_SECRET_KEY_T *key_info)
get zigbee network secret key struct
OPERATE_RET tkl_zg_start_scan(TKL_SCAN_TYPE_E type)
zigbee start scan
VOID_T tkl_zg_mac_address_get(UINT8_T *mac)
get zigbee mac address
VOID_T tkl_zg_install_code_set(TKL_INSTALL_CODE_T *insall_code)
set zigbee install code
TKL_NWK_BASIC_STATE_E tkl_zg_nwk_base_status_get(VOID_T)
get zigbee basic network information
VOID_T tkl_zg_radio_power_set(INT8_T tx_power)
set zigbee radio power
ZG_NWK_TYPE_E tkl_zg_nwk_type_get(VOID_T)
zigbee network type get
VOID_T tkl_zg_nwk_extend_panid_get(UINT8_T *extpanid)
get zigbee network extend panid
Common process - zigbee stack
ZG_SCAN_DURATION_E
Definition: tuya_zigbee_stack.h:29
ZG_NODE_TYPE_E
Definition: tuya_zigbee_stack.h:67
ZG_NWK_TYPE_E
Definition: tuya_zigbee_stack.h:77