Linux Bluetooth l2ping с силой сигнала (без подключения?) - PullRequest
5 голосов
/ 02 октября 2011

Для любых экспертов по Linux BlueZ / BT здесь:

Я ищу способ "пинговать" известные устройства BT (известные BDADDR), и если они находятся в диапазоне, я хотел бы знать приблизительныйУровень сигнала.

Я знаю, что сначала могу запустить l2ping, затем установить соединение с устройством и, наконец, проверить качество rssi или соединения, если соединение работало без спаривания.

Однако что яЯ ищу способ получить уровень сигнала без подключения к устройству в первую очередь.Идеальным было бы измерение силы сигнала из пакета ответа l2ping, но я не знаю, доступна ли эта информация вообще и передается ли она по стеку.

Ответы [ 2 ]

5 голосов
/ 03 октября 2011

Вы можете получить RSSI во время сканирования запроса, без подключения к устройствам.Вот пример использования Pybluez.Вы также можете сделать то же самое прямо из C, используя Bluez на Linux.

2 голосов
/ 11 мая 2017

Я использую этот код на своем iPhone 7 и Raspberry Pi, и он отлично работает.

#!/bin/bash

sudo hcitool cc AA:BB:CC:DD:EE:FF 2> /dev/null

while true
do
    bt=$(hcitool rssi AA:BB:CC:DD:EE:FF 2> /dev/null)
    if [ "$bt" == "" ]; then
        sudo hcitool cc AA:BB:CC:DD:EE:FF  2> /dev/null
        bt=$(hcitool rssi AA:BB:CC:DD:EE:FF 2> /dev/null)
    fi

    echo "$bt"
done
...