TuyaOS
tal_wifi.h
浏览该文件的文档.
1
10#ifndef __TAL_WIFI_H__
11#define __TAL_WIFI_H__
12
13#include "tuya_cloud_types.h"
14#include "tkl_wifi.h"
15#include "stdint.h"
16#include "tal_wifi_mgnt.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22#define TAG_SSID_NUMBER 0
23#define TAG_PAYLOAD_NUMBER 221
24
25#define PROBE_REQUEST_TYPE_SUBTYPE 0x0040
26#define PROBE_REQSPONSE_TYPE_SUBTYPE 0x0050
27#define PROBE_REQUEST_DURATION_ID 0x0
28#define PROBE_RESPONSET_DURATION_ID 0x0
29#define PROBE_REQUEST_PAYLOAD_LEN_MAX 255
30#define BROADCAST_MAC_ADDR 0xFFFFFFFF
31
32
37typedef enum {
38 MIMO_TYPE_NORMAL = 0,
39 MIMO_TYPE_HT40,
40 MIMO_TYPE_2X2,
41 MIMO_TYPE_LDPC,
42 MIMO_TYPE_NUM,
43} MIMO_TYPE_E;
44
45typedef struct {
46 signed char rssi;
47 MIMO_TYPE_E type;
48 unsigned short len;
49 unsigned char channel;
50 unsigned char mcs;
51} MIMO_IF_S;
52
53typedef enum {
56 WFT_AUTH = 0xB0,
57 WFT_BEACON = 0x80,
58 WFT_DATA = 0x08,
59 WFT_QOS_DATA = 0x88,
62
63#pragma pack(1)
64typedef struct {
65 //802.11 management
66 unsigned char id;
67 unsigned char len;
68 char data[0];
70
71typedef struct {
72 unsigned char frame_type;
73 unsigned char frame_ctrl_flags;
74 unsigned short duration;
75 unsigned char dest[6];
76 unsigned char src[6];
77 unsigned char bssid[6];
78 unsigned short seq_frag_num;
80
81typedef struct {
82 unsigned char frame_ctrl_flags;
83 unsigned short duration;
84 unsigned char dest[6];
85 unsigned char src[6];
86 unsigned char bssid[6];
87 unsigned short seq_frag_num;
88 unsigned char timestamp[8];
89 unsigned short beacon_interval;
90 unsigned short cap_info;
91 unsigned char ssid_element_id;
92 unsigned char ssid_len;
93 char ssid[0];
95
96#define TO_FROM_DS_MASK 0x03
97#define TFD_IBSS 0x00
98#define TFD_TO_AP 0x01
99#define TFD_FROM_AP 0x02
100#define TFD_WDS 0x03
101
102typedef unsigned char BC_DA_CHAN_T;
103#define BC_TO_AP 0
104#define BC_FROM_AP 1
105#define BC_CHAN_NUM 2
106
107typedef struct {
108 unsigned char addr1[6];
109 unsigned char addr2[6];
110 unsigned char addr3[6];
112
113typedef struct {
114 unsigned char bssid[6];
115 unsigned char src[6];
116 unsigned char dst[6];
118
119typedef struct {
120 unsigned char dst[6];
121 unsigned char bssid[6];
122 unsigned char src[6];
124
125typedef union {
126 WLAN_COM_ADDR_S com;
127 WLAN_TO_AP_ADDR_S to_ap;
128 WLAN_FROM_AP_ADDR_S from_ap;
130
131typedef struct {
132 unsigned char frame_ctrl_flags;
133 unsigned short duration;
135 unsigned short seq_frag_num;
136 unsigned short qos_ctrl;
138
143typedef struct {
144 unsigned char frame_type;
145 union {
149 } frame_data;
151
152typedef struct {
153 unsigned short type_and_subtype;
154 unsigned short duration_id;
155 unsigned char addr1[6];
156 unsigned char addr2[6];
157 unsigned char addr3[6];
158 unsigned short seq_ctrl;
160
161typedef struct {
162 uint16_t type_and_subtype;
163 uint16_t duration_id;
164 uint8_t addr1[6];
165 uint8_t addr2[6];
166 uint8_t addr3[6];
167 uint16_t seq_ctrl;
168 uint8_t timestamp[8]; // Time stamp
169 uint16_t beacon_interval; // Beacon Interval
170 uint16_t cap_info; // Capability Information
172
173
174typedef struct {
175 unsigned char index;
176 unsigned char len;
177 unsigned char ptr[0];
179#pragma pack()
180
181typedef struct {
183 BEACON_TAG_DATA_UNIT_S tag_ssid;
185
186
193OPERATE_RET tal_wifi_init(WIFI_EVENT_CB cb);
194
203OPERATE_RET tal_wifi_all_ap_scan(AP_IF_S **ap_ary, UINT_T *num);
204
213OPERATE_RET tal_wifi_assign_ap_scan(SCHAR_T *ssid, AP_IF_S **ap);
214
223OPERATE_RET tal_wifi_release_ap(AP_IF_S *ap);
224
231OPERATE_RET tal_wifi_set_cur_channel(UCHAR_T chan);
232
239OPERATE_RET tal_wifi_get_cur_channel(UCHAR_T *chan);
240
251OPERATE_RET tal_wifi_sniffer_set(BOOL_T en, SNIFFER_CALLBACK cb);
252
261OPERATE_RET tal_wifi_get_ip(WF_IF_E wf, NW_IP_S *ip);
262OPERATE_RET tal_wifi_get_ipv6(WF_IF_E wf, NW_IP_TYPE type, NW_IP_S *ip);
263
272OPERATE_RET tal_wifi_set_mac(WF_IF_E wf, NW_MAC_S *mac);
273
282OPERATE_RET tal_wifi_get_mac(WF_IF_E wf, NW_MAC_S *mac);
283
290OPERATE_RET tal_wifi_set_work_mode(WF_WK_MD_E mode);
291
298OPERATE_RET tal_wifi_get_work_mode(WF_WK_MD_E *mode);
299
306OPERATE_RET tal_wifi_ap_start(WF_AP_CFG_IF_S *cfg);
307
313OPERATE_RET tal_wifi_ap_stop(VOID_T);
314
320OPERATE_RET tal_wifi_get_connected_ap_info(FAST_CONNECTED_INFO_T **fast_ap_info);
321
327OPERATE_RET tal_fast_station_connect(FAST_CONNECTED_INFO_T *fast_ap_info);
328
336OPERATE_RET tal_wifi_station_connect(SCHAR_T *ssid, SCHAR_T *passwd);
337
346OPERATE_RET tal_wifi_station_connect_with_channel(SCHAR_T *ssid, SCHAR_T *passwd, UINT8_T channel);
347
353OPERATE_RET tal_wifi_station_disconnect(VOID_T);
354
361OPERATE_RET tal_wifi_station_get_conn_ap_rssi(SCHAR_T *rssi);
362
369OPERATE_RET tal_wifi_get_bssid(UCHAR_T *mac);
370
377OPERATE_RET tal_wifi_station_get_status(WF_STATION_STAT_E *stat);
378
385OPERATE_RET tal_wifi_station_get_err_stat(WF_STATION_STAT_E *stat);
386
393OPERATE_RET tal_wifi_set_country_code(CHAR_T *country_code);
394
402OPERATE_RET tal_wifi_send_mgnt(UCHAR_T *buf, UINT_T len);
403
411OPERATE_RET tal_wifi_register_recv_mgnt_callback(BOOL_T enable, WIFI_REV_MGNT_CB recv_cb);
412
419OPERATE_RET tal_wifi_lp_enable(VOID_T);
420
427OPERATE_RET tal_wifi_lp_disable(VOID_T);
428
436VOID_T tal_wifi_set_lps_dtim(UINT_T dtim);
437
446
454OPERATE_RET tal_wifi_ioctl(WF_IOCTL_CMD_E cmd, VOID *args);
455
463OPERATE_RET tal_wifi_get_last_disconnect_reason(WF_IF_E wf, WF_DISCONN_REASON_E *reason);
464
465#ifdef __cplusplus
466} // extern "C"
467#endif
468
469#endif // __TAL_WIFI_H__
470
Definition: tal_wifi.h:174
WIFI芯片探测本地AP信息结构体
Definition: tal_wifi.h:45
unsigned short len
Definition: tal_wifi.h:48
unsigned char channel
Definition: tal_wifi.h:49
signed char rssi
Definition: tal_wifi.h:46
MIMO_TYPE_E type
Definition: tal_wifi.h:47
Definition: tal_wifi.h:181
Definition: tal_wifi.h:152
Definition: tal_wifi.h:161
Definition: tal_wifi.h:81
unsigned char ssid_len
SSID Length
Definition: tal_wifi.h:92
unsigned short seq_frag_num
Sequence and Fragmentation number
Definition: tal_wifi.h:87
unsigned char ssid_element_id
SSID Element ID
Definition: tal_wifi.h:91
unsigned short beacon_interval
Beacon Interval
Definition: tal_wifi.h:89
unsigned char frame_ctrl_flags
Frame Control flags
Definition: tal_wifi.h:82
unsigned short duration
Duration
Definition: tal_wifi.h:83
unsigned short cap_info
Capability Information
Definition: tal_wifi.h:90
Definition: tal_wifi.h:107
Definition: tal_wifi.h:131
unsigned short seq_frag_num
Sequence and Fragmentation number
Definition: tal_wifi.h:135
WLAN_ADDR_U addr
address
Definition: tal_wifi.h:134
unsigned short duration
Duration
Definition: tal_wifi.h:133
unsigned short qos_ctrl
QoS Control bits
Definition: tal_wifi.h:136
unsigned char frame_ctrl_flags
Frame Control flags
Definition: tal_wifi.h:132
WLAN Frame info
Definition: tal_wifi.h:143
MIMO_IF_S mimo_info
mimo info
Definition: tal_wifi.h:148
WLAN_DATA_IF_S data_info
WLAN Data info
Definition: tal_wifi.h:147
unsigned char frame_type
WLAN Frame type
Definition: tal_wifi.h:144
WLAN_BEACON_IF_S beacon_info
WLAN Beacon info
Definition: tal_wifi.h:146
Definition: tal_wifi.h:119
Definition: tal_wifi.h:64
Definition: tal_wifi.h:71
unsigned short duration
Duration
Definition: tal_wifi.h:74
unsigned short seq_frag_num
Sequence and Fragmentation number
Definition: tal_wifi.h:78
unsigned char frame_ctrl_flags
Frame Control flags
Definition: tal_wifi.h:73
unsigned char frame_type
WLAN Frame type
Definition: tal_wifi.h:72
Definition: tal_wifi.h:113
OPERATE_RET tal_wifi_ioctl(WF_IOCTL_CMD_E cmd, VOID *args)
wifi ioctl
OPERATE_RET tal_wifi_all_ap_scan(AP_IF_S **ap_ary, UINT_T *num)
scan current environment and obtain all the ap infos in current environment
OPERATE_RET tal_wifi_get_work_mode(WF_WK_MD_E *mode)
get wifi work mode
OPERATE_RET tal_wifi_set_cur_channel(UCHAR_T chan)
set wifi interface work channel
OPERATE_RET tal_wifi_station_get_err_stat(WF_STATION_STAT_E *stat)
get wifi error station work status
OPERATE_RET tal_wifi_get_connected_ap_info(FAST_CONNECTED_INFO_T **fast_ap_info)
: get ap info for fast connect
OPERATE_RET tal_wifi_ap_start(WF_AP_CFG_IF_S *cfg)
start a soft ap
OPERATE_RET tal_wifi_station_connect(SCHAR_T *ssid, SCHAR_T *passwd)
connect wifi with ssid and passwd
OPERATE_RET tal_wifi_get_ip(WF_IF_E wf, NW_IP_S *ip)
get wifi ip info.when wifi works in ap+station mode, wifi has two ips.
OPERATE_RET tal_wifi_sniffer_set(BOOL_T en, SNIFFER_CALLBACK cb)
enable / disable wifi sniffer mode. if wifi sniffer mode is enabled, wifi recv from packages from the...
OPERATE_RET tal_wifi_station_disconnect(VOID_T)
disconnect wifi from connect ap
OPERATE_RET tal_wifi_ap_stop(VOID_T)
stop a soft ap
OPERATE_RET tal_wifi_get_bssid(UCHAR_T *mac)
get wifi bssid
OPERATE_RET tal_wifi_init(WIFI_EVENT_CB cb)
set wifi station event changed callback
OPERATE_RET tal_wifi_set_work_mode(WF_WK_MD_E mode)
set wifi work mode
OPERATE_RET tal_wifi_station_get_status(WF_STATION_STAT_E *stat)
get wifi station work status
OPERATE_RET tal_wifi_register_recv_mgnt_callback(BOOL_T enable, WIFI_REV_MGNT_CB recv_cb)
register receive wifi management callback
OPERATE_RET tal_wifi_station_get_conn_ap_rssi(SCHAR_T *rssi)
get wifi connect rssi
VOID_T tal_wifi_set_lps_dtim(UINT_T dtim)
set the wifi low power dtim.
OPERATE_RET tal_wifi_assign_ap_scan(SCHAR_T *ssid, AP_IF_S **ap)
scan current environment and obtain the specific ap info.
OPERATE_RET tal_wifi_get_last_disconnect_reason(WF_IF_E wf, WF_DISCONN_REASON_E *reason)
wifi get last disconnect reason
WLAN_FRM_TP_E
Definition: tal_wifi.h:53
@ WFT_PROBE_REQ
Probe request
Definition: tal_wifi.h:54
@ WFT_MIMO_DATA
MIMO Data
Definition: tal_wifi.h:60
@ WFT_PROBE_RSP
Probe response
Definition: tal_wifi.h:55
@ WFT_AUTH
auth
Definition: tal_wifi.h:56
@ WFT_DATA
Data
Definition: tal_wifi.h:58
@ WFT_QOS_DATA
QOS Data
Definition: tal_wifi.h:59
@ WFT_BEACON
Beacon
Definition: tal_wifi.h:57
OPERATE_RET tal_wifi_release_ap(AP_IF_S *ap)
release the memory malloced in <tuya_hal_wifi_all_ap_scan> and <tuya_hal_wifi_assign_ap_scan> if need...
OPERATE_RET tal_wifi_lp_disable(VOID_T)
disable wifi lowpower
BOOL_T tal_wifi_rf_calibrated(VOID_T)
do wifi calibration
OPERATE_RET tal_wifi_send_mgnt(UCHAR_T *buf, UINT_T len)
send wifi management
OPERATE_RET tal_wifi_get_cur_channel(UCHAR_T *chan)
get wifi interface work channel
OPERATE_RET tal_wifi_set_country_code(CHAR_T *country_code)
set wifi country code
OPERATE_RET tal_wifi_get_mac(WF_IF_E wf, NW_MAC_S *mac)
get wifi mac info.when wifi works in ap+station mode, wifi has two macs.
OPERATE_RET tal_wifi_station_connect_with_channel(SCHAR_T *ssid, SCHAR_T *passwd, UINT8_T channel)
connect wifi with ssid,passwd,channel
OPERATE_RET tal_wifi_set_mac(WF_IF_E wf, NW_MAC_S *mac)
set wifi mac info.when wifi works in ap+station mode, wifi has two macs.
OPERATE_RET tal_wifi_lp_enable(VOID_T)
enable wifi lowpower
OPERATE_RET tal_fast_station_connect(FAST_CONNECTED_INFO_T *fast_ap_info)
: fast connect
wifi interface
Definition: tal_wifi.h:125