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

时间:2011-10-02 19:46:13

标签: c linux bluetooth rssi

对于任何Linux BlueZ / BT专家:

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

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

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

3 个答案:

答案 0 :(得分:5)

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

inquiry-with-rssi.py

答案 1 :(得分:2)

我在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

答案 2 :(得分:1)

非常老的问题,但是可能有人仍然对此感兴趣。

先前的回答是在查询扫描期间谈论RSSI。是正确的,但并非总是可行的,即无法发现的设备。 对于此类设备,您可以建立连接并最终请求连接RSSI。可以使用BlueZ命令rd = 3499211612 rd = 3499211612 rd = 3499211612 test1 = 0.297901 test2 = 0.297901 test2 = 0.297901 获得连接RSSI。 混合hcitool rssi <MAC:ADDRESS>l2ping可以解决问题。 因此,我创建了这个存储库:[https://github.com/edoardesd/myBluez ] 输出: hcitool rssi

相关问题