WLAN 指令
对应源码:
components/airlink/include/luat_airlink_drv_wlan.h,components/airlink/src/luat_airlink_cmds.c启用宏:
LUAT_USE_AIRLINK_EXEC_WIFI或LUAT_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