前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全志XR806芯片 Xradio Skylark 中的无线网络回调事件含义

全志XR806芯片 Xradio Skylark 中的无线网络回调事件含义

作者头像
阿志小管家
发布2024-02-02 16:07:51
1120
发布2024-02-02 16:07:51
举报
文章被收录于专栏:全志嵌入式那些事

1. 问题背景 部分客户在使用 WLAN 时,不清楚各回调事件的含义,不利于上层应用逻辑开发。

2. 问题描述 无线网络各个事件的代表的含义是什么?

3. 问题分析 首先看一下无线网卡处于 Station 模式下连接 AP 的过程:

  • Station 发起扫描,扫描附近的 AP
  • Station 选中指定的 AP,发起认证(Authentication)、关联(Association)
  • (可选) 如果是 WPA/WPA2 加密方式,则 AP 发起四次握手协商密钥
  • Station 发起 DHCP 获取 IP 地址

到这里网络通路已经可以正常运行,上层应用数据包可以发出去了。

Station 模式断开连接过程:

  • Station 向 AP 发送断开连接请求 (Disassociation)

以上是正常断开连接过程。除此之外的异常断开连接还有 Station 掉电、重启、发送 DHCP 释放报文等。

4. 解决办法 使用 sys_callback_observer_create 创建类型为 CTRL_MSG_TYPE_NETWORK 的事件观察器后,当网络状态发生变化或底层完成相应的任务后,会触发对应的事件回调。创建方法如下:

代码语言:javascript
复制
observer_base *ob = sys_callback_observer_create(
       CTRL_MSG_TYPE_NETWORK,
       NET_CTRL_MSG_ALL,
       net_ctrl_msg_process,
       NULL
   );

CTRL_MSG_TYPE_NETWORK 类型的事件目前有以下几种:

代码语言:javascript
复制
NET_CTRL_MSG_WLAN_CONNECTED  /* 连接成功事件。代表 Station 关联或四次握手完成后(如果 WPA/WPA2 加密,则是四次握手完成后) */
NET_CTRL_MSG_WLAN_DISCONNECTED  /* 断开连接事件。代表 Station 请求断开连接成功后 */
NET_CTRL_MSG_WLAN_SCAN_SUCCESS  /* 扫描完成事件。代表 Station 完成一次扫描 */
NET_CTRL_MSG_WLAN_SCAN_FAILED  /* 扫描失败事件。代表 Station 扫描操作失败 */
NET_CTRL_MSG_WLAN_4WAY_HANDSHAKE_FAILED  /* 四次握手失败事件。代表 WPA/WPA2 四次握手过程失败 */
NET_CTRL_MSG_WLAN_CONNECT_FAILED  /* 连接失败时间。代表 Station 在认证/关联阶段失败 */
NET_CTRL_MSG_CONNECTION_LOSS  /* 连接丢失事件。代表 Station 当前连接丢失,可能是 AP 修改了配置重启、掉电之类的,导致 Station 无法扫描到 */
NET_CTRL_MSG_NETWORK_UP  /* 网络启动完成事件。代表已经获取到 IP 地址(DHCP 完成),网卡已经可以正常工作,通过协议栈收发网络中的数据包 */
NET_CTRL_MSG_NETWORK_DOWN  /* 网络关闭事件。代表已经发送 DHCP 释放报文,而且网卡已经关闭 */
NET_CTRL_MSG_NETWORK_IPV6_STATE  /* IPv6 地址状态事件。代表 IPv6 地址状态发生了变化 */
NET_CTRL_MSG_ALL = ALL_SUBTYPE
};

原贴链接:https://bbs.aw-ol.com/topic/738

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档