1

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

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

我这样做。

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

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

我知道 hcitool,但你必须连接,直到你在远处,他们才会给你数据。我不明白它是如何工作的 bluetoothctl

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


pi@raspberrypi:~ $ bluetoothctl

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

[蓝牙]#


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

谢谢 ;)

4

3 回答 3

1

您可以使用命令查看 rssi 值,hcidump [-a]但请确保在后台保持蓝牙打开,因此您可以像往常一样在 Bluetoothctl 中开始扫描,然后扫描,将其留在后台并在新命令行上使用 hcidump 命令可能对您有所帮助。另请参阅:http ://www.linuxcommand.org/man_pages/hcidump8.html

于 2017-04-26T05:47:36.950 回答
1

正如kaylum所说,查看来源。

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

您还可以获取 bluetoothctl 源(在文件夹客户端中可用)并根据您的需要对其进行包装。它使用在 gdbus 文件夹中开发的 dbus 库助手。

于 2016-04-29T09:02:02.877 回答
1

您可以从命令行使用以下内容

sudo btmon |grep RSSI & sudo hcitool scan

或者,如果您想使用 python,您可以使用pybluez 模块中的rssi示例查询。

另一种选择是使用本示例中的 DeviceDiscoverer 骨架类,然后根据自己的需要进行调整。设备发现功能通过可以存储和操作以适应的 rssi。

于 2018-01-30T20:04:23.333 回答