从蓝牙适配器Raspberry3获取RSSI

时间:2016-04-28 15:31:02

标签: bluetooth bluetooth-lowenergy rssi raspberry-pi3

我需要知道如何使用我的RPi3从非连接的蓝牙设备获取de REAL RSSI。

我知道有一个名为bluetoothctl的程序,我不知道它是如何工作的,我找不到任何关于它如何工作bluetootctl。但是当我使用它时,我只能通过扫描获得所有蓝牙设备的所有真实RSSI。 (扫描)

我这样做。

1)bluetoothctl
2)扫描 (你会得到这样的东西:“设备XX:XX:XX:XX:XX:XX RSSI:-48”)

这很简单,但是,问题是,我需要使用这些数据,我无法在以后处理这些数据。所以我需要一些代码,用c ++(更好)来做到这一点。

我知道hcitool,但你需要连接,他们不会给你数据,直到你在远处。我无法理解它是如何工作的 bluetoothctl

我尝试将输出重定向到日志但是......我无法做到这一点。因为当你穿上temrinal bluetoothctl 时会发生这种情况:

pi @ raspberrypi:〜$ bluetoothctl

[新]控制器B8:27:EB:90:E8:79 raspberrypi [默认]

[蓝牙]#

现在,您可以使用bluetoothctl的所有命令

谢谢;)

3 个答案:

答案 0 :(得分:1)

看看source,凯尔姆说。

您可以在doc文件夹中找到hci和dbus文档。

您还可以使用bluetoothctl源(在文件夹客户端中提供)并根据您的需要制作一个包装器。它使用在gdbus文件夹中开发的dbus库助手。

答案 1 :(得分:1)

您可以使用hcidump [-a]命令查看rssi值,但请务必在后台保持蓝牙功能,这样您就可以像通常在Bluetoothctl中那样开始扫描,然后再扫描,将其留在后台和新命令行使用hcidump命令这可能对你有帮助。参见:http://www.linuxcommand.org/man_pages/hcidump8.html

答案 2 :(得分:1)

您可以从命令行

使用以下内容

sudo btmon |grep RSSI & sudo hcitool scan

或者如果你想使用python,你可以使用pybluez模块中的inquiry with rssi示例。

另一种选择是使用此example中找到的DeviceDiscoverer骨架类,然后根据自己的需要进行调整。设备发现的函数传递给rssi,可以存储和操作以适应。