tkl_wifi | Wi-Fi 驱动
tkl_wifi.c
文件提供了一系列 Wi-Fi 相关的 API,以适配不同的网络接口。这些 API 包括设置/读取模式、信道、MAC 地址、连接等相关操作操作。文件同样是由涂鸦操作系统(TuyaOS)自动生成,并为开发者预留了代码实现的区域。
索引
- tkl_wifi_init
- tkl_wifi_scan_ap
- tkl_wifi_release_ap
- tkl_wifi_start_ap
- tkl_wifi_stop_ap
- tkl_wifi_set_cur_channel
- tkl_wifi_get_cur_channel
- tkl_wifi_set_sniffer
- tkl_wifi_get_ip
- tkl_wifi_set_ip
- tkl_wifi_set_mac
- tkl_wifi_get_mac
- tkl_wifi_set_work_mode
- tkl_wifi_get_work_mode
- tkl_wifi_get_connected_ap_info
- tkl_wifi_get_bssid
- tkl_wifi_set_country_code
- tkl_wifi_set_rf_calibrated
- tkl_wifi_set_lp_mode
- tkl_wifi_station_fast_connect
- tkl_wifi_station_connect
- tkl_wifi_station_disconnect
- tkl_wifi_station_get_conn_ap_rssi
- tkl_wifi_station_get_status
- tkl_wifi_send_mgnt
- tkl_wifi_register_recv_mgnt_callback
API 说明
tkl_wifi_init
OPERATE_RET tkl_wifi_init(WIFI_EVENT_CB cb)
-
功能描述:
设置 Wi-Fi 工作状态
-
参数:
输入/输出 参数名 描述 [in] cb Wi-Fi 工作状态回调 -
返回值:
返回值为 OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考 tuya_error_code.h
获取错误信息。
tkl_wifi_scan_ap
OPERATE_RET tkl_wifi_scan_ap(const int8_t *ssid, AP_IF_S **ap_ary, uint32_t *num)
-
功能描述:
扫描当前环境,获取当前环境中的 ap 信息
-
参数:
输入/输出 参数名 描述 [in] ssid 如果 ssid = NULL 则扫描所有 ap, 其他则扫描指定 ap [out] ap_ary 扫描结果信息 [out] num 扫描 ap 个数 -
返回值:
返回值为 OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考 tuya_error_code.h
获取错误信息。
-
备注
- 阻塞函数
- 只能扫描到当前国家码信道列表里的 ap
- 当环境存在指定 ssid 的 ap,扫描到该 ssid 的成功率要超过 98%
- ap 需要在该 api 内分配内存(扫描到多个 ap,需要分配连续的内存空间)
- 释放该内存由 tuya sdk 主动调用
tkl_wifi_release_ap
释放
tkl_wifi_release_ap
OPERATE_RET tkl_wifi_release_ap(AP_IF_S *ap)
-
功能描述:
释放 ap 信息资源
-
参数:
输入/输出 参数名 描述 [in] ap 需要释放的 ap 信息 -
返回值:
返回值为 OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考 tuya_error_code.h
获取错误信息。
tkl_wifi_start_ap
OPERATE_RET tkl_wifi_start_ap(const WF_AP_CFG_IF_S *cfg)
-
功能描述:
启动 ap 模式
-
参数:
输入/输出 参数名 描述 [in] cfg ap 配置参数 -
返回值: 返回值为
OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考tuya_error_code.h
获取错误信息。 -
备注
- 需要根据 max_conn 来设置 ap 模式下最多允许几个 sta 能连接成功。
- 需要根据 ip 信息来设置 ap 模式下的 ip 信息。
- stationap 模式,如果 ap por t有连接的情况下 staiton port 连接路由器,连接过程以及连接失败后 ap port 不可以有断连情况以及可以收发广播包。
- 配网 ez+ap 共存:4.1. softap 或者 stationap 模式下可以使能 sniffer 功能以及可以切换信道。4.2. 使能 sniffer 功能之后,扔给回调的数据要包括 ap port 的设备连接请求包。
tkl_wifi_stop_ap
OPERATE_RET tkl_wifi_stop_ap(void)
-
功能描述:
停止 ap 模式
-
参数:
无
-
返回值: 返回值为
OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考tuya_error_code.h
获取错误信息。 -
备注
- 需要针对设备当前所处模式 softap 或 stationap 做不同的关闭逻辑
- stationap 模式下,如果 station port 端有连接,关闭 ap port 过程 station port 不能有断连情况
tkl_wifi_set_cur_channel
OPERATE_RET tkl_wifi_set_cur_channel(const uint8_t chan)
-
功能描述:
设置信道
-
参数:
输入/输出 参数名 描述 [in] chan 信道 -
返回值:
返回值为 OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考 tuya_error_code.h
获取错误信息。
-
备注
- 设置当前国家码信道范围之外的信道报失败
- 支持在 sniffer 回调里设置信道
tkl_wifi_get_cur_channel
OPERATE_RET tkl_wifi_get_cur_channel(uint8_t *chan);
-
功能描述:
获取当前信道
-
参数:
输入/输出 参数名 描述 [out] chan 信道 -
返回值:
返回值为
OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考tuya_error_code.h
获取错误信息。
tkl_wifi_set_sniffer
OPERATE_RET tkl_wifi_set_sniffer(const BOOL_T en, const SNIFFER_CALLBACK cb)
-
功能描述:
设置 sniffer 功能开关
-
参数:
输入/输出 参数名 描述 [in] en 开或关sniffer功能 [in] cb 抓包数据回调 -
返回值:
返回值为
OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考tuya_error_code.h
获取错误信息。 -
备注
返给应用的数据要括管理包数据
tkl_wifi_get_ip
OPERATE_RET tkl_wifi_get_ip(const WF_IF_E wf, NW_IP_S *ip)
-
功能描述:
获取 Wi-Fi 的 ip 信息(ip 地址、网关地址、地址掩码)
-
参数:
输入/输出 参数名 描述 [in] wf Wi-Fi 模式 [out] ip ip 信息 -------- -------- WF_STATION station type WF_AP ap type -
返回值:
返回值为
OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考tuya_error_code.h
获取错误信息。 -
备注 需要区分不同模式(依据传参 wf)下的 ip 信息
tkl_wifi_set_ip
OPERATE_RET tkl_wifi_set_ip(const WF_IF_E wf, NW_IP_S *ip)
-
功能描述:
设置 Wi-Fi 的静态 ip 信息(ip地址、网关地址、地址掩码)
-
参数:
输入/输出 参数名 描述 [in] wf wifi模式 [in] ip ip 信息 -------- -------- WF_STATION station type WF_AP ap type -
返回值:
返回值为
OPRT_OK
表示操作成功,其他返回值表示出现错误,请参考tuya_error_code.h
获取错误信息。 -
备注 需要区分不同模式(依据传参 wf)下的 ip 信息
tkl_wifi_set_mac
OPERATE_RET tkl_wifi_set_mac(const WF_IF_E wf, const NW_MAC_S *mac)
-
功能描述:
设置 mac 地址
-
参数:
输入/输出 参数名 描述 [in] wf wifi模式 [in] mac mac地址 -------- -------- WF_STATION station type WF_AP ap type -
返回值:
返回值为
OPRT_OK
表示操作成功,其他返回 值表示出现错误,请参考tuya_error_code.h
获取错误信息。 -
备注
永久生效,断电不丢失
tkl_wifi_get_mac
OPERATE_RET tkl_wifi_get_mac(const WF_IF_E wf, NW_MAC_S *mac);
-
功能描述: