导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

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

    其它全志芯片讨论区
    xr806 xr872 faq 网络 技术支持
    1
    1
    1338
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • q1215200171
      budbool LV 9 最后由 编辑

      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 的事件观察器后,当网络状态发生变化或底层完成相应的任务后,会触发对应的事件回调。创建方法如下:

      ```
      

      observer_base *ob = sys_callback_observer_create(
      CTRL_MSG_TYPE_NETWORK,
      NET_CTRL_MSG_ALL,
      net_ctrl_msg_process,
      NULL
      );

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

      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
      };

      1 条回复 最后回复 回复 引用 分享 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策