как измерить силу сигнала RSSI между одноранговыми узлами, используя прямой Wi-Fi?

в Wifi-direct нет возможности измерять расстояние между пирами, так как же между ними RSSIпопасть .RSSI

на самом деле я захожу в API для WIFI, чтобы посмотреть, как они измеряют WIFI RSSI. Итак, я вижу, что они отправляют команду в качестве параметра собственному методу, но я не могу поймать эту команду !!!

в этом методе wifi_send_commandв wifi.c по этой ссылке .

насколько я знаю, Android находится под управлением Linux, команда iwconfigis linux для получения интерфейса беспроводной информации, если бы я ее использовал, могу ли я получить прямую информацию о Wi-Fi? или это просто возврат информации о сети точек доступа?

кто-нибудь знает об этом?

Ответы (3)

Вы можете получить эту информацию внутри wpa_cli . Откройте wpa_cli в интерфейсе прямого доступа к Wi-Fi и выполните сканирование и сканирование_результатов, как показано ниже.

adb shell wpa_cli -i<wifi-direct interface name> -p<socket path> scan
adb shell wpa_cli -i<wifi-direct interface name> -p<socket path> scan_results

Вы получите небольшую информацию о подключенном узле (адрес устройства, канал, rssi и т. д.). Надеюсь, это сработает!

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .

Если вы хотите измерить RSSI между двумя одноранговыми узлами перед подключением, просто попробуйте:

  • В Linux под wpa_supplicant

    sudo wpa_cli p2p_peer 74:da:3f:58:5c:f0
    

    (где 74:da:3f:58:5c:f0 — MAC-адрес второго узла.)

  • В Android это должно быть примерно так (предполагается и не проверено)

    adb shell wpa_cli -i <wifi-direct interface name> -p <socket path> p2p_peer 74:da:3f:58:5c:f0
    

После этого вы получите большую строку. Затем найдите слово «Уровень» (значение RSSI указывается в дБм).

Для нерутированных устройств попробуйте следующее:

Устройство A: Linux Устройство B: Android

  1. Получите имя группы P2P одного устройства. Это можно увидеть, используя wpa_cliна устройстве Linux.<3>P2P-GROUP-STARTED p2p-wlan0-0 GO ssid="DIRECT-Gw" freq=2462 passphrase="Vz4GVojX" go_dev_addr=02:04:4b:e0:80:73

  2. Откройте оболочку adb для устройства Android.

  3. Тип: dumpsys | grep "DIRECT-Gw"

  4. Посмотрите на результат:

 - SSID: DIRECT-Gw, BSSID: 02:04:4b:e0:00:73, capabilities: [WPA2-PSK-CCMP][RSN-PSK-CCMP][ESS][WPS], level: -61, frequency: 2462, timestamp: 104993415063, distance: ?(cm), distanceSd: ?(cm), passpoint: no, ChannelBandwidth: 0, cen
terFreq0: 2462, centerFreq1: 0, standard: 11n, 80211mcResponder: is not supported, Radio Chain Infos: []