TuyaOS
tkl_wifi.h
浏览该文件的文档.
1
10#ifndef __TKL_WIFI_H__
11#define __TKL_WIFI_H__
12
13#include "tuya_cloud_types.h"
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19/* tuya sdk definition of wifi ap info */
20#define WIFI_SSID_LEN 32 // tuya sdk definition WIFI SSID MAX LEN
21#define WIFI_PASSWD_LEN 64 // tuya sdk definition WIFI PASSWD MAX LEN
22
23typedef struct
24{
25 UCHAR_T channel;
26 SCHAR_T rssi;
27 UCHAR_T bssid[6];
28 UCHAR_T ssid[WIFI_SSID_LEN+1];
29 UCHAR_T s_len;
30 UCHAR_T security; //refer to WF_AP_AUTH_MODE_E
31 UCHAR_T resv1;
32 UINT8_T data_len;
33 UINT8_T data[0];
34}AP_IF_S;
35
36typedef enum {
37 COUNTRY_CODE_CN,
38 COUNTRY_CODE_US,
39 COUNTRY_CODE_JP,
40 COUNTRY_CODE_EU
41} COUNTRY_CODE_E;
42
43/* tuya sdk definition of wifi function type */
44typedef enum
45{
48}WF_IF_E;
49
50/* tuya sdk definition of wifi encryption type */
51typedef enum
52{
58 WAAM_WPA_WPA3_SAE,
59 WAAM_UNKNOWN, //unknown
61
62
63/* tuya sdk definition of wifi work mode */
64typedef enum
65{
73
74/* tuya sdk definition of ap config info */
75typedef struct {
76 UCHAR_T ssid[WIFI_SSID_LEN+1];
77 UCHAR_T s_len;
78 UCHAR_T passwd[WIFI_PASSWD_LEN+1];
79 UCHAR_T p_len;
80 UCHAR_T chan;
82 UCHAR_T ssid_hidden;
83 UCHAR_T max_conn;
84 USHORT_T ms_interval;
87
88/* tuya sdk definition of wifi station work status */
89typedef enum {
99
100/* for fast connect*/
101typedef struct {
102 UINT_T len;
103 UCHAR_T data[0];
105
106/* tuya sdk definition of wifi event notify */
107typedef enum
108{
109 WFE_CONNECTED,
110 WFE_CONNECT_FAILED,
111 WFE_DISCONNECTED,
112}WF_EVENT_E;
113
114/* tuya sdk definition of wifi disconnect reason */
115typedef enum {
116 TUYA_WLAN_REASON_NONE,
138 TUYA_WLAN_REASON_MAX,
140
141/* tuya sdk definition of wifi ioctl cmd */
142typedef enum {
143 WFI_BEACON_CMD,
146
147typedef struct {
148 UCHAR_T ssid[WIFI_SSID_LEN + 1];
149 UCHAR_T channel;
150 NW_MAC_S mac;
151 UINT_T vsie_data_len;
152 BYTE_T *vsie_data;
154
162typedef VOID_T (*SNIFFER_CALLBACK)(CONST UINT8_T *buf, CONST UINT16_T len, CONST INT8_T rssi);
163
171typedef VOID_T (*WIFI_REV_MGNT_CB)(UCHAR_T *buf, UINT_T len);
172
179typedef VOID_T (*WIFI_EVENT_CB)(WF_EVENT_E event, VOID_T *arg);
180
181
189
190
203OPERATE_RET tkl_wifi_scan_ap(CONST SCHAR_T *ssid, AP_IF_S **ap_ary, UINT_T *num);
204
214
221OPERATE_RET tkl_wifi_start_ap(CONST WF_AP_CFG_IF_S *cfg);
222
228OPERATE_RET tkl_wifi_stop_ap(VOID_T);
229
236OPERATE_RET tkl_wifi_set_cur_channel(CONST UCHAR_T chan);
237
244OPERATE_RET tkl_wifi_get_cur_channel(UCHAR_T *chan);
245
256OPERATE_RET tkl_wifi_set_sniffer(CONST BOOL_T en, CONST SNIFFER_CALLBACK cb);
257
266OPERATE_RET tkl_wifi_get_ip(CONST WF_IF_E wf, NW_IP_S *ip);
267
276OPERATE_RET tkl_wifi_set_mac(CONST WF_IF_E wf, CONST NW_MAC_S *mac);
277
286OPERATE_RET tkl_wifi_get_mac(CONST WF_IF_E wf, NW_MAC_S *mac);
287
294OPERATE_RET tkl_wifi_set_work_mode(CONST WF_WK_MD_E mode);
295
303
310
317OPERATE_RET tkl_wifi_get_bssid(UCHAR_T *mac);
318
325OPERATE_RET tkl_wifi_set_country_code(CONST COUNTRY_CODE_E ccode);
326
334OPERATE_RET tkl_wifi_set_rf_calibrated(VOID_T);
335
343OPERATE_RET tkl_wifi_set_lp_mode(CONST BOOL_T enable, CONST UCHAR_T dtim);
344
351
359OPERATE_RET tkl_wifi_station_connect(CONST SCHAR_T *ssid, CONST SCHAR_T *passwd);
360
366OPERATE_RET tkl_wifi_station_disconnect(VOID_T);
367
374OPERATE_RET tkl_wifi_station_get_conn_ap_rssi(SCHAR_T *rssi);
375
376
384
385
393OPERATE_RET tkl_wifi_send_mgnt(CONST UCHAR_T *buf, CONST UINT_T len);
394
402OPERATE_RET tkl_wifi_register_recv_mgnt_callback(CONST BOOL_T enable, CONST WIFI_REV_MGNT_CB recv_cb);
403
404
412OPERATE_RET tkl_wifi_ioctl(WF_IOCTL_CMD_E cmd, VOID *args);
413
414
415#ifdef __cplusplus
416}
417#endif /* __cplusplus */
418
419#endif
420
421
422
Definition: tkl_wifi.h:24
UCHAR_T s_len
AP ssid len
Definition: tkl_wifi.h:29
UCHAR_T channel
AP channel
Definition: tkl_wifi.h:25
SCHAR_T rssi
AP rssi
Definition: tkl_wifi.h:26
Definition: tkl_wifi.h:101
UINT_T len
data len
Definition: tkl_wifi.h:102
Definition: tuya_cloud_types.h:201
Definition: tuya_cloud_types.h:208
Definition: tkl_wifi.h:75
UCHAR_T s_len
len of ssid
Definition: tkl_wifi.h:77
NW_IP_S ip
ip info for ap mode
Definition: tkl_wifi.h:85
UCHAR_T ssid_hidden
ssid hidden default:0
Definition: tkl_wifi.h:82
WF_AP_AUTH_MODE_E md
encryption type
Definition: tkl_wifi.h:81
USHORT_T ms_interval
broadcast interval default:100
Definition: tkl_wifi.h:84
UCHAR_T chan
channel. default:6
Definition: tkl_wifi.h:80
UCHAR_T p_len
len of passwd
Definition: tkl_wifi.h:79
UCHAR_T max_conn
max sta connect nums default:1
Definition: tkl_wifi.h:83
Definition: tkl_wifi.h:147
OPERATE_RET tkl_wifi_set_lp_mode(CONST BOOL_T enable, CONST UCHAR_T dtim)
set wifi lowpower mode
OPERATE_RET tkl_wifi_station_disconnect(VOID_T)
disconnect wifi from connect ap
OPERATE_RET tkl_wifi_station_connect(CONST SCHAR_T *ssid, CONST SCHAR_T *passwd)
connect wifi with ssid and passwd
VOID_T(* WIFI_REV_MGNT_CB)(UCHAR_T *buf, UINT_T len)
callback function: WIFI_REV_MGNT_CB when receive wifi management frame, notify tuyaos with this callb...
Definition: tkl_wifi.h:171
WF_AP_AUTH_MODE_E
Definition: tkl_wifi.h:52
@ WAAM_OPEN
open
Definition: tkl_wifi.h:53
@ WAAM_WPA2_PSK
WPA2—PSK
Definition: tkl_wifi.h:56
@ WAAM_WPA_WPA2_PSK
WPA/WPA2
Definition: tkl_wifi.h:57
@ WAAM_WPA_PSK
WPA—PSK
Definition: tkl_wifi.h:55
@ WAAM_WEP
WEP
Definition: tkl_wifi.h:54
VOID_T(* WIFI_EVENT_CB)(WF_EVENT_E event, VOID_T *arg)
callback function: WIFI_STATUS_CHANGE_CB when wifi connect status changed, notify tuyaos with this ca...
Definition: tkl_wifi.h:179
WF_IOCTL_CMD_E
Definition: tkl_wifi.h:142
@ WFI_GET_LAST_DISCONN_REASON
Get WiFi last disconnect reason
Definition: tkl_wifi.h:144
OPERATE_RET tkl_wifi_set_rf_calibrated(VOID_T)
do wifi calibration
OPERATE_RET tkl_wifi_station_get_conn_ap_rssi(SCHAR_T *rssi)
get wifi connect rssi
OPERATE_RET tkl_wifi_get_connected_ap_info(FAST_WF_CONNECTED_AP_INFO_T **fast_ap_info)
: get ap info for fast connect
OPERATE_RET tkl_wifi_init(WIFI_EVENT_CB cb)
set wifi station work status changed callback
OPERATE_RET tkl_wifi_ioctl(WF_IOCTL_CMD_E cmd, VOID *args)
wifi ioctl
WF_IF_E
Definition: tkl_wifi.h:45
@ WF_AP
ap type
Definition: tkl_wifi.h:47
@ WF_STATION
station type
Definition: tkl_wifi.h:46
OPERATE_RET tkl_wifi_stop_ap(VOID_T)
stop a soft ap
OPERATE_RET tkl_wifi_get_mac(CONST WF_IF_E wf, NW_MAC_S *mac)
get wifi mac info.when wifi works in ap+station mode, wifi has two macs.
WF_DISCONN_REASON_E
Definition: tkl_wifi.h:115
@ TUYA_WLAN_REASON_SSID_NOT_FOUND
Cannot found the ssid for wlan scan
Definition: tkl_wifi.h:118
@ TUYA_WLAN_REASON_NOT_ASSOCED
Station tried to 4-way handshake before associate
Definition: tkl_wifi.h:131
@ TUYA_WLAN_REASON_ASSOC_REJECTED_TEMPORARILY
Station has already been associated with MFP and SA Query timeout has not been reached....
Definition: tkl_wifi.h:120
@ TUYA_WLAN_REASON_NOT_AUTHED
Station tried to associate before authentication
Definition: tkl_wifi.h:121
@ TUYA_WLAN_REASON_DEAUTH_LEAVING
Deauth the station because it was left
Definition: tkl_wifi.h:137
@ TUYA_WLAN_REASON_GROUP_CIPHER_INVALID
Group cipher invalid of WPA/RSN IE in in association request
Definition: tkl_wifi.h:123
@ TUYA_WLAN_REASON_INVALID_RSN_IE
No WPA/RSN IE in association request
Definition: tkl_wifi.h:122
@ TUYA_WLAN_REASON_AKMP_INVALID
WPA/RSN information element rejected because of invalid auth key management
Definition: tkl_wifi.h:126
@ TUYA_WLAN_REASON_SAE_AUTH_FAILED
WPA3 SAE auth failed
Definition: tkl_wifi.h:119
@ TUYA_WLAN_REASON_PMF_REQUIRED
Rejected because of invalid PMF required
Definition: tkl_wifi.h:129
@ TUYA_WLAN_REASON_UNSPECIFIED
Unspecified reason
Definition: tkl_wifi.h:117
@ TUYA_WLAN_REASON_UNSPPORTED_RSN_IE_VERSION
Invalid WPA/RSN IE version
Definition: tkl_wifi.h:125
@ TUYA_WLAN_REASON_MIC_FAILURE
Michael check failed
Definition: tkl_wifi.h:133
@ TUYA_WLAN_REASON_PAIRWISE_CIPHER_INVALID
Pairwise cipher invalid of WPA/RSN IE in association request
Definition: tkl_wifi.h:124
@ TUYA_WLAN_REASON_CIPHER_REJECTED_PER_POLICY
Station tried to use TKIP with HT association
Definition: tkl_wifi.h:128
@ TUYA_WLAN_REASON_PREV_AUTH_INVALID
SA Query timed out
Definition: tkl_wifi.h:130
@ TUYA_WLAN_REASON_4WAYS_HANDSHAKE_TIMEOUT
Timeout of 4-way handshake
Definition: tkl_wifi.h:135
@ TUYA_WLAN_REASON_INACTIVITY_DISCONNECT
Station disconnected to AP beacause of in activity
Definition: tkl_wifi.h:136
@ TUYA_WLAN_REASON_WRONG_PASSWORD
Wrong password for 4-way handshake
Definition: tkl_wifi.h:132
@ TUYA_WLAN_REASON_RSN_IE_IN_4WAYS_MISMATCH
RSN IE mismatch between AP and station of 4-way handshake
Definition: tkl_wifi.h:134
@ TUYA_WLAN_REASON_INVALID_RSN_IE_CAP
Invalid RSN Capabilities
Definition: tkl_wifi.h:127
OPERATE_RET tkl_wifi_station_fast_connect(CONST FAST_WF_CONNECTED_AP_INFO_T *fast_ap_info)
: fast connect
OPERATE_RET tkl_wifi_scan_ap(CONST SCHAR_T *ssid, AP_IF_S **ap_ary, UINT_T *num)
scan current environment and obtain the ap infos in current environment
OPERATE_RET tkl_wifi_set_mac(CONST WF_IF_E wf, CONST NW_MAC_S *mac)
set wifi mac info.when wifi works in ap+station mode, wifi has two macs.
OPERATE_RET tkl_wifi_start_ap(CONST WF_AP_CFG_IF_S *cfg)
start a soft ap
VOID_T(* SNIFFER_CALLBACK)(CONST UINT8_T *buf, CONST UINT16_T len, CONST INT8_T rssi)
callback function: SNIFFER_CALLBACK when wifi sniffers package from air, notify tuyaos with this call...
Definition: tkl_wifi.h:162
OPERATE_RET tkl_wifi_station_get_status(WF_STATION_STAT_E *stat)
get wifi station work status
OPERATE_RET tkl_wifi_set_country_code(CONST COUNTRY_CODE_E ccode)
set wifi country code
OPERATE_RET tkl_wifi_set_cur_channel(CONST UCHAR_T chan)
set wifi interface work channel
OPERATE_RET tkl_wifi_set_sniffer(CONST BOOL_T en, CONST SNIFFER_CALLBACK cb)
enable / disable wifi sniffer mode. if wifi sniffer mode is enabled, wifi recv from packages from the...
OPERATE_RET tkl_wifi_send_mgnt(CONST UCHAR_T *buf, CONST UINT_T len)
send wifi management
OPERATE_RET tkl_wifi_get_ip(CONST WF_IF_E wf, NW_IP_S *ip)
get wifi ip info.when wifi works in ap+station mode, wifi has two ips.
WF_WK_MD_E
Definition: tkl_wifi.h:65
@ WWM_STATIONAP
wifi work in station+ap mode
Definition: tkl_wifi.h:70
@ WWM_POWERDOWN
wifi work in powerdown mode
Definition: tkl_wifi.h:66
@ WWM_STATION
wifi work in station mode
Definition: tkl_wifi.h:68
@ WWM_SNIFFER
wifi work in sniffer mode
Definition: tkl_wifi.h:67
@ WWM_UNKNOWN
wifi work in unknown mode
Definition: tkl_wifi.h:71
@ WWM_SOFTAP
wifi work in ap mode
Definition: tkl_wifi.h:69
OPERATE_RET tkl_wifi_release_ap(AP_IF_S *ap)
release the memory malloced in <tkl_wifi_ap_scan> if needed. tuyaos will call this function when the ...
OPERATE_RET tkl_wifi_set_work_mode(CONST WF_WK_MD_E mode)
set wifi work mode
OPERATE_RET tkl_wifi_get_work_mode(WF_WK_MD_E *mode)
get wifi work mode
OPERATE_RET tkl_wifi_register_recv_mgnt_callback(CONST BOOL_T enable, CONST WIFI_REV_MGNT_CB recv_cb)
register receive wifi management callback
WF_STATION_STAT_E
Definition: tkl_wifi.h:89
@ WSS_IDLE
not connected
Definition: tkl_wifi.h:90
@ WSS_DHCP_FAIL
dhcp fail
Definition: tkl_wifi.h:97
@ WSS_PASSWD_WRONG
passwd not match
Definition: tkl_wifi.h:92
@ WSS_NO_AP_FOUND
ap is not found
Definition: tkl_wifi.h:93
@ WSS_CONN_SUCCESS
connect wifi success
Definition: tkl_wifi.h:95
@ WSS_CONNECTING
connecting wifi
Definition: tkl_wifi.h:91
@ WSS_CONN_FAIL
connect fail
Definition: tkl_wifi.h:94
@ WSS_GOT_IP
get ip success
Definition: tkl_wifi.h:96
OPERATE_RET tkl_wifi_get_cur_channel(UCHAR_T *chan)
get wifi interface work channel
OPERATE_RET tkl_wifi_get_bssid(UCHAR_T *mac)
get wifi bssid