跳转至

WLAN 指令

对应源码: components/airlink/include/luat_airlink_drv_wlan.h, components/airlink/src/luat_airlink_cmds.c

启用宏: LUAT_USE_AIRLINK_EXEC_WIFILUAT_USE_WLAN

WLAN (WiFi) 指令用于主机控制从机的 WiFi 模块. Air8101 (主机) 通过 AirLink 让 Air780EPM (从机, 但本场景是反向) 或者反过来控制 wifi 模组的连接、扫描、AP 创建等.

通用 payload 头

所有 driver 指令的 data 字段前 8 字节是 seq_id (uint64_t, 小端, 单调递增), 用于匹配 cmd 0x08 result 回调. 详见 指令层描述.

指令列表

cmd 名称 方向 说明
0x200 wlan_init 主→从 初始化 WiFi
0x201 wlan_sta_connect 主→从 STA 连接到 AP
0x202 wlan_sta_disconnect 主→从 STA 断开 AP
0x203 wlan_ap_start 主→从 启动 AP (创建热点)
0x204 wlan_ap_stop 主→从 停止 AP
0x205 wlan_scan 主→从 扫描附近 AP
0x206 wlan_scan_result_cb 从→主 扫描结果回调 (启用宏 LUAT_USE_WLAN)
0x207 wlan_set_mac 主→从 设置 MAC 地址
0x208 wlan_set_ps 主→从 设置省电模式

各指令详细定义

wlan_init (0x200)

初始化 WiFi 模块.

字段 长度 含义
seq_id 8B 序列号
conf NB luat_wlan_config_t 结构

引用 include/luat_wlan.h 中的 luat_wlan_config_t.

wlan_sta_connect (0x201)

STA 连接到指定 AP.

字段 长度 含义
seq_id 8B 序列号
info NB luat_wlan_conninfo_t 结构 (SSID + 密码等)

wlan_sta_disconnect (0x202)

STA 断开当前 AP 连接.

字段 长度 含义
seq_id 8B 序列号

wlan_ap_start (0x203)

启动 AP 模式, 创建热点.

字段 长度 含义
seq_id 8B 序列号
apinfo NB luat_wlan_apinfo_t 结构 (SSID/密码/加密方式/通道等)

wlan_ap_stop (0x204)

停止 AP 模式.

字段 长度 含义
seq_id 8B 序列号

wlan_scan (0x205)

触发扫描附近 AP. 扫描结果通过 cmd 0x206 异步回调.

字段 长度 含义
seq_id 8B 序列号

wlan_scan_result_cb (0x206)

扫描结果回调. 从机主动发送.

字段 长度 含义
results NB 多个 luat_wlan_scan_result_t 结构

调用 luat_airlink_drv_wlan_scan_get_result(results, ap_limit) 在主机侧拉取结果.

wlan_set_mac (0x207)

设置 MAC 地址.

字段 长度 含义
seq_id 8B 序列号
id 1B 0 = STA, 1 = AP
mac 6B MAC 地址

wlan_set_ps (0x208)

设置省电模式.

字段 长度 含义
seq_id 8B 序列号
mode 1B 0 = 关闭省电, 1 = 开启省电

事件通知

WiFi 状态变化时, 从机通过 cmd 0x80 notify_sys_pub 发送系统事件, 详见 通知与日志. 典型事件包括:

  • WLAN_STA_INC / CONNECTED / <ssid> / <bssid>
  • WLAN_STA_INC / DISCONNECTED / <reason:int32>
  • WLAN_AP_INC / CONNECTED / <mac:6>
  • WLAN_AP_INC / DISCONNECTED / <mac:6>

来源: components/airlink/src/devinfo/luat_airlink_devinfo_wlan.c:35-140

问一下 AI