Wi-Fi NAN AT 命令集
备注
NAN AT 命令集默认未启用。
参考 配置工程(menuconfig) ,进入
CONFIG WIFI配置,勾选Enable NAN host control app (km4_tz / WHC host)来启用 NAN AT 命令集(该选项会自动使能Enable NAN)。使能 IPv6 数据面(
AT+NANDPIP=6),进入CONFIG LWIP配置,勾选Enable LWIP IPV6。
AT+NANSTART
功能说明
初始化 NAN 并加入或组建 cluster
备注
NAN 以 auto_accept 模式启动:收到 NDP 请求时由事件上下文自动应答,并在 SETUP 配对后自动进行 NIK 跟进(对 NDP 超时较短的对端,如 iPhone,尤为必要)。
命令格式
AT+NANSTART
响应格式
成功响应:
OK
错误响应:
ERROR: -1
AT+NANSTOP
功能说明
停止 NAN 并释放其资源
命令格式
AT+NANSTOP
响应格式
成功响应:
OK
AT+NANPUB
功能说明
发布 NAN 服务(作为 publisher)
命令格式
AT+NANPUB=name,<service_name>[,<type>,<value>……]
响应格式
成功响应:
OK
错误响应:
ERROR: -1
参数
- <type>:
参数类型,后跟对应 <value>
name:后跟服务名称id:后跟 publish IDsec:后跟安全类型pmk:后跟预共享密钥pw:后跟 passphrasebstrap:后跟 bootstrapping methodnik:后跟 NIK caching 开关gtk:后跟 GTK cipher 开关
- <value>:
对应 <type> 的具体参数
- name:
服务名称字符串(必需)
- id:
publish ID
默认值:1
- sec:
安全类型
0:open(默认值)1:pmk2:passphrase3:pairing
- pmk:
预共享密钥
长度:32 字符
当 sec 为
1时必需
- pw:
passphrase
长度范围:[1,16] 字符
当 sec 为
2时必需
- bstrap:
bootstrapping method(
enum nan_bstrap_method,位掩码,字段为 u8、仅低 8 bit 可设)仅当
sec为3(pairing)时生效,默认1(opportunistic)每个 bit 是一种凭据交换方式,两端须构成 display↔keypad / display↔scan / tag↔reader 的兼容配对,否则静默不发现
常用取值(值 / bit / 含义 / 角色):
1(BIT0):opportunistic(无口令)—— 对称,两端都填12(BIT1):pin-code —— display 侧(展示 PIN)4(BIT2):passphrase —— display 侧(展示口令)6(BIT1|BIT2):display(pin-code + passphrase)—— display 侧,iPhone 场景 publisher 用8(BIT3):QR code —— display 侧(显示二维码)16(BIT4):NFC tag —— 作 NFC 标签32(BIT5):pin-code —— keypad 侧(键盘输入 PIN)64(BIT6):passphrase —— keypad 侧(键盘输入口令)128(BIT7):QR code —— scan 侧(摄像头扫码)
- nik:
NIK caching 开关
0:禁用
1:启用(默认值)
- gtk:
GTK cipher 开关
0:禁用(默认值)
1:启用
备注
<type>、<value> 键值对顺序可任意排列,且必须成对出现(
name及其值必填)。参数缺失、成对关系不满足或包含未知 <type> 时,会先打印命令用法帮助,再返回
ERROR: -1。bstrap常用配对(仅sec为3时生效):opportunistic:两端都填
1,且跳过 NANSETPW;真机 iPhone:publisher 填
6(display),iPhone 为 keypad(用户输 PIN);两板 pin-code 配对:一端填
32(keypad),另一端填2(display)。
AT+NANSUB
功能说明
订阅 NAN 服务(作为 subscriber)
命令格式
AT+NANSUB=name,<service_name>[,<type>,<value>……]
响应格式
成功响应:
OK
错误响应:
ERROR: -1
参数
- <type>:
参数类型,后跟对应 <value>
name:后跟服务名称id:后跟 subscribe IDsec:后跟安全类型pmk:后跟预共享密钥pw:后跟 passphrasebstrap:后跟 bootstrapping methodnik:后跟 NIK caching 开关
- <value>:
对应 <type> 的具体参数
- name:
服务名称字符串(必需)
- id:
subscribe ID
默认值:1
- sec:
安全类型
0:open(默认值)1:pmk2:passphrase3:pairing
- pmk:
预共享密钥
长度:32 字符
当 sec 为
1时必需
- pw:
passphrase
长度范围:[1,16] 字符
当 sec 为
2时必需
- bstrap:
bootstrapping method(
enum nan_bstrap_method,位掩码,字段为 u8、仅低 8 bit 可设)仅当
sec为3(pairing)时生效,默认1(opportunistic)每个 bit 是一种凭据交换方式,两端须构成 display↔keypad / display↔scan / tag↔reader 的兼容配对,否则静默不发现
常用取值(值 / bit / 含义 / 角色):
1(BIT0):opportunistic(无口令)—— 对称,两端都填12(BIT1):pin-code —— display 侧(展示 PIN)4(BIT2):passphrase —— display 侧(展示口令)6(BIT1|BIT2):display(pin-code + passphrase)—— display 侧,iPhone 场景 publisher 用8(BIT3):QR code —— display 侧(显示二维码)16(BIT4):NFC tag —— 作 NFC 标签32(BIT5):pin-code —— keypad 侧(键盘输入 PIN)64(BIT6):passphrase —— keypad 侧(键盘输入口令)128(BIT7):QR code —— scan 侧(摄像头扫码)
- nik:
NIK caching 开关
0:禁用
1:启用(默认值)
备注
<type>、<value> 键值对顺序可任意排列,且必须成对出现(
name及其值必填)。参数缺失、成对关系不满足或包含未知 <type> 时,会先打印命令用法帮助,再返回
ERROR: -1。bstrap常用配对(仅sec为3时生效):opportunistic:两端都填
1,且跳过 NANSETPW;真机 iPhone:publisher 填
6(display),iPhone 为 keypad(用户输 PIN);两板 pin-code 配对:一端填
32(keypad),另一端填2(display)。
AT+NANSETPW
功能说明
设置配对使用的 passphrase。若已发现对端(peer),则作用于该 peer;否则作为全局默认口令。
命令格式
AT+NANSETPW=<passphrase>
响应格式
成功响应:
OK
错误响应:
ERROR: -1
参数
- <passphrase>:
配对使用的 passphrase
备注
AT 层不对 <passphrase> 做长度校验(与 NANPUB/NANSUB 的 pw 不同),长度约束由底层 API 决定。
AT+NANBSTRAPREQ
功能说明
由 subscriber 发起 bootstrapping 握手
命令格式
AT+NANBSTRAPREQ
响应格式
成功响应:
OK
错误响应:
ERROR: -1
AT+NANPAIR
功能说明
由 initiator 发起 NAN 配对(PASN)
命令格式
AT+NANPAIR[=verification]
响应格式
成功响应:
OK
错误响应:
ERROR: -1
参数
- verification:
配对类型
不带参数:setup 配对(默认)
verification:verification(校验)配对
AT+NANDPREQ
功能说明
由 subscriber 向 publisher 发起数据通路(data path)建立
命令格式
AT+NANDPREQ
响应格式
成功响应:
OK
错误响应:
ERROR: -1
AT+NANDPRSP
功能说明
由 publisher 接受数据通路(data path)建立请求
命令格式
AT+NANDPRSP
响应格式
成功响应:
OK
错误响应:
ERROR: -1
备注
使能 auto_accept 时,responder 已在事件上下文中自动应答,本命令为幂等操作。
AT+NANDPEND
功能说明
拆除数据通路(data path)
命令格式
AT+NANDPEND[=<ndp_id>]
响应格式
成功响应:
OK
参数
- <ndp_id>:
待拆除的 NDP ID
默认值:0(最后一个 ndp-id)
AT+NANDPIP
功能说明
在数据通路(data path)上拉起 L3 网络接口
命令格式
AT+NANDPIP[=<4/6>]
响应格式
成功响应:
OK
错误响应:
ERROR: -1
参数
- <4/6>:
IP 版本
4:静态 IPv4 + 静态 ARP(默认值)6:IPv6 link-local(EUI-64)+ 静态邻居
备注
仅
6走 IPv6;缺省或任意非6的取值一律按 IPv4 处理。使用
6需在编译时使能CONFIG_LWIP_IPV6。