导航

    全志在线开发者论坛

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

    【FAQ】全志XR806芯片 如何获取ap的rssi值?

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

      1.问题背景
      在网络设备上,很多开发者要把当前的网络质量反馈到用户上,以便用户了解当前网络环境,当网速慢或联网失败时做出及时的网络环境调整。

      2.问题描述
      如何获取目标ap的信号强度。

      3.解决办法
      (1)当连接到ap时获取当前ap的信号强度值,通过以下方式来获取rssi和dbm的值:

      ret = wlan_ext_request(g_wlan_netif, WLAN_EXT_CMD_GET_SIGNAL, (int)(&signal));
      	printf("signal = %d! noise = %d!\r\n", (signal.noise + (signal.rssi/2)), signal.noise);
      

      (2)获取附近ap的rssi值和dbm值,可以通过扫描结果来获取,其中获取ap信息结构体wlan_sta_ap里面的rssi成员代表rssi值,level代表dbm值。

      wlan_ssid_t    ssid;
      		uint8_t        bssid[6];
      		uint8_t        channel;
      		uint16_t       beacon_int;
      		int            freq;
      		int            rssi;     /* unit is 0.5db */
      		int            level;    /* signal level, unit is dbm */
      		int            wpa_flags;
      		int            wpa_cipher;
      		int            wpa_key_mgmt;
      		int            wpa2_cipher;
      		int            wpa2_key_mgmt;
      	} wlan_sta_ap_t;
      

      注意:获取的信号强度信息时需要进行一次扫描动作才能刷新缓存结果,所以获取信息之前需要调用wlan_ap_scan_once()函数扫描,并且等待扫描成功后,信号强度信息才会刷新。

      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号

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