我正在研究蓝牙协议并实现从某些设备读取以 dBm 为单位的 RSSI 的定位系统。系统将使用 3 个具有已知纬度和经度的固定站和一个移动站来实施。定位将在移动站上完成,从每个固定站接收到的功率(以 dBm 为单位)和典型的定位算法。
为了提高系统的效率,需要更改蓝牙设备的一些参数。这个参数可以是:
修复站上的扫描时间,以减少响应查询的时间。
查询访问代码以获得仅来自选定设备(我们的 3 个固定站)的查询的回答
其他一些。
根据使用的技术,可以使用一些场景来做到这一点(其中一些是有限的):
修复Linux操作系统的站(修改参数没问题),Android的移动站(似乎在它的蓝牙库上只有典型的功能,但蓝牙设置很难或不可能修改)。请参阅:http: //developer.android.com/reference/android/bluetooth/BluetoothAdapter.html
所有在移动站上运行 Linux 操作系统和 C++ 的站(似乎很容易从 shell 脚本运行 hcitool 用于修复站修改我们的设置,但似乎很难在 C++ 上实现源代码来获得我们需要的链路 dBm 值的 RSSI将电台固定在移动台上)。
恶心的方式。所有运行 Linux 操作系统和 shell 脚本的站,在运行在 shell 脚本下的移动站上,在午餐查询后从 hcidump 的输出重定向解析 RSSI 值。
似乎很难找到与此场景相关的有用信息。也许你们中的一些人可以帮助选择最佳方案并描述应该如何实施。
(抱歉,如果没有以更好的方式解释某些事情......我的英语很糟糕......)
谢谢。