接下来的章节将介绍如何通过配置文件手动或自动建立 P2P 连接,以及 WPS 连接之前的协商方法。
如Topic Link Label10.3.3所述,根据意图和协商发起方参数启动协商,但需要配置其他参数才能成功完成此步骤。在执行来自主机的手动连接 API 命令期间或在设置自动连接配置文件时提供这些参数,它们会影响协商方法。协商方法由器件完成,无需用户干预。
共有两种 P2P 协商方法来指示协商之后的 WPS 阶段:
- P2P 按钮式连接 – 两端采用 PBC 方法进行协商。定义 SL_SEC_TYPE_P2P_PBC。
- P2P PIN 码连接 – 分为两个选项。PIN_DISPLAY 查找要由其远程 P2P 写入的 PIN。PIN_KEYPAD 向其远程 P2P 发送一个 PIN 码。
- 定义 SL_SEC_TYPE_P2P_PIN_KEYPAD。
- 定义 SL_SEC_TYPE_P2P_ PIN_DISPLAY。
如果没有输入 PIN 码,NWP 会使用以下方法从器件 MAC 自动生成 PIN 码:
- 取器件 MAC 地址中的 7 位 ISB 十进制数字,并将这 7 位数字的校验和添加到 LSB(共 8 位)。例如,如果 MAC 为 03:4A:22:3B:FA:42
- 转换为十进制:….:059:250:066
- 七个 ISB 十进制数字是:9250066
- WPS PIN 校验和位:2
- 此 MAC 的默认 PIN 码:92500662
共有两个选项可以配置协商方法:
- 通过手动连接命令,在 secParams 结构中设置该值并将其作为参数发送。
- 对于按钮式:secParams.Type = SL_SEC_TYPE_P2P_PBC
- 对于 PIN 码键盘:secParams.Type = SL_SEC_TYPE_ PIN_KEYPAD secParams.Key = 12345670
- 对于 PIN 码显示屏:secParams.Type = SL_SEC_TYPE_ PIN_ DISPLAY secParams.Key = 12345670
- 通过 P2P 配置文件配置,将协商方法定义和密钥作为参数发送。