nclude_lib/net/wifi/wifi_connect.h 描述了所有的 WIFI_EVENT ,每个事件会统一发送到用户注册的回调函数 wifi_set_event_callback ,下面具体说明每个事件的具体意义以及用户代码需要作出的响应
WIFI_EVENT_MODULE_INIT
Wi-Fi驱动初始化前配置,接收到此事件后用户需要配置Wi-Fi工作模式,例如STA模式连接的SSID和密码, AP模式SSID,IP网关地址等
WIFI_EVENT_MODULE_START
Wi-Fi驱动启动成功后的事件,通常不需做任何响应
WIFI_EVENT_MODULE_STOP
Wi-Fi驱动关闭成功后的事件,通常不需做任何响应
WIFI_EVENT_STA_START
Wi-Fi驱动STA模式启动成功后的事件,通常不需做任何响应
WIFI_EVENT_STA_STOP
Wi-Fi驱动STA模式停止后的事件,通常不需做任何响应
WIFI_EVENT_STA_SCAN_COMPLETED
扫描完成事件,通常由STA模式连接过程中扫描空中所有信道完成或者用户调用wifi_sta_scan_once请求扫描触发的事件,接收到此事件后,应用程序的事件回调函数可以调用wifi_get_scan_result获取扫描结果
WIFI_EVENT_STA_CONNECT_SUCC
STA 已成功连接目标 AP的事件,接收到此事件后,Wi-Fi 驱动程序根据应用程序响应返回结果决定是否启动 DHCP 客户端服务并开始获取 IP 地址,还是说使用静态IP地址
WIFI_EVENT_STA_CONNECT_TIMEOUT_NOT_FOUND_SSID
连接目标 AP超时事件,原因是超时时间内扫描不到指定SSID,超时时间应用程序可以通过wifi_set_sta_connect_timeout接口配置
WIFI_EVENT_STA_CONNECT_TIMEOUT_ASSOCIAT_FAIL
连接目标 AP超时失败事件,原因是超时时间内关联失败,通常原因是密码错误,或者距离太远/干扰太多导致通信失败
WIFI_EVENT_STA_DISCONNECT
STA模式下与AP断开事件,此事件将在以下情况下产生:
Wi-Fi station 已成功连接至 AP的情况下调用了wifi_enter_ap_mode,wifi_enter_sta_mode,wifi_enter_smp_cfg_mode,wifi_off函数触发
Wi-Fi 连接因为某些原因而中断,例如:由于信号太差,station 连续多次丢失 太多 beacon帧、AP 脱离 station 连接、AP 验证模式改变等
接收到此事件后,通常需要通知针对基于套接字编写的客户端应用程序关闭套接字.如果此事件不是用户期待的,可以调用wifi_enter_sta_mode进行重新连接
WIFI_EVENT_STA_NETWORK_STACK_DHCP_SUCC
当 DHCP 客户端成功从 DHCP 服务器获取 IP 地址,将引发此事件, 意味着应用程序可以获取到设备IP地址,并且可以创建套接字连接服务器
WIFI_EVENT_STA_NETWORK_STACK_DHCP_TIMEOUT
当 Wi-Fi station 已成功连接至 AP, 但是DHCP 客户端在指定超时时间内未能够从 DHCP 服务器获取 IP地址,将引发此事件, 通常情况下是由于距离远信号不好,空间干扰大导致的,应用程序可以调用lwip_set_dhcp_timeout设定超时时间,默认不指定为15秒. 引发事件后lwip协议栈内部会不断重试获取 IP地址
WIFI_EVENT_AP_START
Wi-Fi驱动AP模式启动成功后的事件,通常不需做任何响应
WIFI_EVENT_AP_STOP
Wi-Fi驱动AP模式停止后的事件,通常不需做任何响应
WIFI_EVENT_AP_ON_ASSOC
在AP模式下,每当有一个 station 成功连接时,将引发此事件,接收到此事件后,应用程序的回调函数可以直接获取已连接 STA 的MAC地址,和通过wifi_get_sta_entry_rssi获取已连接 STA 的RSSI等。
WIFI_EVENT_AP_ON_DISCONNECTED
AP模式下与 station离开事件,此事件将在以下情况下产生:
Wi-Fi station 已成功连接至 AC79 AP的情况下调用了wifi_enter_ap_mode,wifi_enter_sta_mode,wifi_enter_smp_cfg_mode,wifi_off函数,或者调用wifi_disconnect_station仅断开指定mac地址的station端
Wi-Fi 连接因为某些原因而中断,例如:由于信号太差,AP太长时间没有接收到station的数据包
station 主动断开与 AP79 AP 之间的连接
发生此事件时,应用程序的事件回调函数通常需执行一些操作,例如通过dhcps_get_ipaddr获取到离开的station 并且关闭与此 station 相关的套接字等
WIFI_EVENT_SMP_CFG_START
Wi-Fi驱动混杂模式启动成功后的事件,通常不需做任何响应,此事件也是意味着,AirKiss配网功能的启动
WIFI_EVENT_SMP_CFG_STOP
Wi-Fi驱动混杂模式停止后的事件,通常不需做任何响应
WIFI_EVENT_SMP_CFG_TIMEOUT
Wi-Fi驱动混杂模式模式下在指定超时时间内获取不到配网信息的事件,应用程序可以通过wifi_set_smp_cfg_timeout配置超时时间,默认为无限超时时间
WIFI_EVENT_SMP_CFG_COMPLETED
Wi-Fi驱动混杂模式下AirKiss配网功能获取到结果引发的事件,通常用户在配网情况下触发此事件,应用程序可以在此事件后获取配网结果信息
WIFI_FORCE_MODE_TIMEOUT
若应用程序在WIFI_EVENT_MODULE_INIT事件下配置wifi_set_default_mode的force参数为3-200以内,并且默认配置STA模式下启动,那么在force参数代表的超时时间内未连接上AP,将引发此事件.通常用于给用户配置一个默认连接的SSID,方便客户调试使用, 发生此事件时,一般需要切换到配网模式或者连接其他AP
WIFI_EVENT_P2P_XXX
Wi-Fi驱动P2P模式暂时不做说明