我需要知道如何使用我的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的所有命令
谢谢;)
答案 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,可以存储和操作以适应。