TuyaOS
tuya_svc_netmgr_linkage.h
浏览该文件的文档.
1
10#ifndef __TUYA_SVC_NETMGR_LINKAGE_H__
11#define __TUYA_SVC_NETMGR_LINKAGE_H__
12
13
14#include "tuya_cloud_com_defs.h"
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20#define DEFAULT_ACTIVATE_RETRY_CNT (10)
21
22typedef UINT_T LINKAGE_CAP_E;
23#define LINKAGE_CAP_LINK_EVENT BIT(0)
24#define LINKAGE_CAP_ACTIVATE_TOKEN BIT(1)
25#define LINKAGE_CAP_ACTIVATE_META BIT(2)
26#define LINKAGE_CAP_ACTIVATE (LINKAGE_CAP_ACTIVATE_TOKEN | LINKAGE_CAP_ACTIVATE_META)
27
28typedef enum {
29 LINKAGE_TYPE_DEFAULT, // keep it first(current active linkage)
30 LINKAGE_TYPE_WIRED, // Wired
31 LINKAGE_TYPE_WIFI, // Wi-Fi
32 LINKAGE_TYPE_BT, // BLE
33 LINKAGE_TYPE_CAT1, // CN/4G
34 LINKAGE_TYPE_NB, // NB-IoT
35 LINKAGE_TYPE_EXT_MODULE,// 插件
36 LINKAGE_TYPE_EXT2, // reserved
37 LINKAGE_TYPE_EXT3, // reserved
38 LINKAGE_TYPE_VIRTUAL, // keep it last
39
40 LINKAGE_TYPE_MAX
41} LINKAGE_TYPE_E;
42
43typedef enum {
44 LINKAGE_CFG_LOWPOWER, // BOOL_T
45 LINKAGE_CFG_IP, // NW_IP_S
46 LINKAGE_CFG_MAC, // NW_MAC_S
47 LINKAGE_CFG_RSSI, // SCHAR_T
48 LINKAGE_CFG_STATUS, // BYTE_T (linkage customized status)
49 LINKAGE_CFG_IPV6, // NW_IP_S V6
50 LINKAGE_CFG_IPV4, // NW_IP_S
51 LINKAGE_CFG_IPV6_LINK, // NW_IP_S V6
52 LINKAGE_CFG_MAX
53} LINKAGE_CFG_E;
54
55typedef struct {
56 LINKAGE_TYPE_E type;
57 LINKAGE_CAP_E capability;
58 OPERATE_RET(*open)(LINKAGE_CAP_E cap);
59 OPERATE_RET(*close)(VOID);
60 OPERATE_RET(*reset)(IN GW_RESET_TYPE_E reset_type);
61 OPERATE_RET(*set)(IN LINKAGE_CFG_E cfg, IN VOID* data);
62 OPERATE_RET(*get)(IN LINKAGE_CFG_E cfg, OUT VOID* data);
64
68typedef BYTE_T ACTIVATE_STAGE_E;
69#define ACTIVATE_STAGE_START 0 // new activate
70#define ACTIVATE_STAGE_SUCCESS 1 // activate success
71#define ACTIVATE_STAGE_FAIL_URL 2 // activate fail(get url from iot dns)
72#define ACTIVATE_STAGE_FAIL_ACTIVE 3 // activate fail(active error)
73#define ACTIVATE_STAGE_FAIL_RESULT 4 // activate fail(meta invalid)
74#define ACTIVATE_STAGE_FAIL_UNKNOWN 5 // activate fail(unknown reason)
75#define ACTIVATE_STAGE_STOP 0xFF // stop current activate
76
77
81typedef BYTE_T ACTIVATE_TYPE_E;
82#define ACTIVATE_TYPE_TOKEN 0 // activate via token
83#define ACTIVATE_TYPE_META 1 // activate via meta data
84#define ACTIVATE_TYPE_EXT_MODULE 2 // activate via ext module
85#define ACTIVATE_TYPE_3RD 255 // 3rd party cloud
86
90typedef struct {
95
96 //the following items are valid only when stage == ACTIVATE_STAGE_START
97
105 VOID *data;
109 UINT_T len;
113 LINKAGE_TYPE_E linkage;
117 UINT_T retry_cnt;
119
128
136OPERATE_RET tuya_svc_netmgr_linkage_event(IN CONST netmgr_linkage_t *linkage, IN BOOL_T is_link_up);
137
147
156
164OPERATE_RET tuya_svc_netmgr_linkage_set_default(IN LINKAGE_TYPE_E type);
165
174
183OPERATE_RET tuya_svc_netmgr_linkage_set_priority(IN LINKAGE_TYPE_E *types, IN UINT_T count);
184
192BOOL_T tuya_svc_netmgr_linkage_is_up(IN LINKAGE_TYPE_E type);
193
201OPERATE_RET tuya_svc_netmgr_linkage_set_retry_cnt(IN UINT_T count);
202
203#ifdef __cplusplus
204} // extern "C"
205#endif
206
207#endif // __TUYA_SVC_NETMGR_LINKAGE_H__
208
Definition of activate data
Definition: tuya_svc_netmgr_linkage.h:90
UINT_T retry_cnt
Definition: tuya_svc_netmgr_linkage.h:117
ACTIVATE_TYPE_E type
Definition: tuya_svc_netmgr_linkage.h:101
UINT_T len
Definition: tuya_svc_netmgr_linkage.h:109
VOID * data
Definition: tuya_svc_netmgr_linkage.h:105
LINKAGE_TYPE_E linkage
Definition: tuya_svc_netmgr_linkage.h:113
ACTIVATE_STAGE_E stage
Definition: tuya_svc_netmgr_linkage.h:94
Definition: tuya_svc_netmgr_linkage.h:55
OPERATE_RET tuya_svc_netmgr_linkage_register(IN netmgr_linkage_t *linkage)
Register a linkage to network manager
netmgr_linkage_t * tuya_svc_netmgr_linkage_get(IN LINKAGE_TYPE_E type)
Get a linkage with specific type
OPERATE_RET tuya_svc_netmgr_linkage_set_retry_cnt(IN UINT_T count)
Set retry count for activation
OPERATE_RET tuya_svc_netmgr_linkage_set_priority(IN LINKAGE_TYPE_E *types, IN UINT_T count)
Set priority for all linkages
OPERATE_RET tuya_svc_netmgr_linkage_set_default(IN LINKAGE_TYPE_E type)
Set and keep the default linkage
BOOL_T tuya_svc_netmgr_linkage_is_up(IN LINKAGE_TYPE_E type)
Is the linkage link-up or down
BYTE_T ACTIVATE_STAGE_E
Definition of linkage activate stage
Definition: tuya_svc_netmgr_linkage.h:68
OPERATE_RET tuya_svc_netmgr_linkage_switch(VOID)
Switch to next linkage
OPERATE_RET tuya_svc_netmgr_linkage_event(IN CONST netmgr_linkage_t *linkage, IN BOOL_T is_link_up)
Send linkage status to network manager
OPERATE_RET tuya_svc_netmgr_linkage_activate(IN CONST netmgr_linkage_t *linkage, IN activate_info_t *info)
Send linkage activation to network manager
BYTE_T ACTIVATE_TYPE_E
Definition of activate type
Definition: tuya_svc_netmgr_linkage.h:81