xucvai · 2022年01月02日

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

请问全志XR806芯片如何获取ap的rssi值?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2022年01月05日
本回答来源全志XR806芯片 如何获取ap的rssi值?

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

解决办法
(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()函数扫描,并且等待扫描成功后,信号强度信息才会刷新。

你的回答