Linux蓝牙l2ping信号强度(没有连接?)

Tom*_*Tom 5 c linux bluetooth rssi

对于任何Linux BlueZ/BT专家:

我正在寻找一种方法来"ping"已知的BT设备(已知的BDADDR),如果它们在范围内,我想知道近似的信号强度.

我知道我可以先运行l2ping,然后建立与设备的连接,最后检查rssi或链接质量,如果连接工作没有先配对.

然而,我正在寻找的是一种在不连接设备的情况下获得信号强度的方法.完美的是来自l2ping应答包的信号强度测量,但我不知道该信息是否可用并且是否已经通过堆栈传递.

TJD*_*TJD 5

您可以在查询扫描期间获取RSSI,而无需连接到设备.这是使用pybluez的一个例子.你也可以在Linux上使用Bluez直接从C做同样的事情.

inquiry-with-rssi.py


小智 5

我在 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
Run Code Online (Sandbox Code Playgroud)