我在这方面非常努力,所以任何帮助/指针将不胜感激。
我一直在尝试使用pyblueZ从 RSSI 获取精确值
我得到了一些好的结果,但下面是我不想要的东西(来自 blueZ doc):
对于 BR/EDR 控制器,Connection_Handle 用作 Handle 命令参数和返回参数。RSSI 参数返回测量的接收信号强度指示 (RSSI) 与连接到另一个 BR/EDR 控制器的 Connection_Handle 的黄金接收功率范围限制之间的差异。Connection_Handle 应该是 ACL 连接的 Connection_Handle。控制器返回的任何正 RSSI 值表示 RSSI 高于上限多少 dB,任何负值表示 RSSI 低于下限多少 dB。零值表示 RSSI 在黄金接收功率范围内。
换句话说,当接收器稍微靠近发生器时,RSSI 值仍然为 0(可能是 2/3 米范围),这真的很困扰我。
我使用的方法是来自 BlueZ 的命令HCI_Read_RSSI,这里有一个示例:https ://github.com/ewenchou/bluetooth-proximity
获取RSSI值的另一种方法是使用事件获取它:HCI_Inquiry_Result_with_RSSI,这里我得到RSSI的真实值,但是,它是发现模式,它有点慢,并返回所有设备的mac地址。我也不想要。
以我的知识和我无法让谷歌找到我想要的事实,我到了一个我似乎被困住的地步。
所以我的问题是:
无论如何要深入研究 blueZ 提供的蓝牙 API 吗?我似乎在任何地方都找不到它!并且不要开始和我谈论他们的文档,它几乎不存在!
有没有办法让HCI_Inquiry_Result_with_RSSI与单个 mac 地址一起工作?
有没有其他方法可以获取 RSSI 值?我尝试了 hcitool(出现同样的问题?),l2ping(我在 4/5 成功后得到 100% 的 ping 丢失,我没有深入研究)
会不会是我的加密狗有点被操纵了?
如果我尝试从 BLE 设备检测 RSSI,会有所不同吗?
(我现在想坚持使用蓝牙,但是如果您想到我可以使用的任何其他射频信号,只需提及它,我会牢记在心,以便以后使用。)
感谢任何到达那里并阅读我的问题的人。
对不起我的英语,这是……漫长的一天。
和平
编辑:使用 Bluez,我可以发现 BT 经典,或要求特定地址的 RSSI(但获取超出黄金范围的值)。我也可以发现 BLE,但我找不到任何要求 RSSI 获取特定地址(用于 BLE)的东西……