Android 蓝牙协议与四设备定位系统的实现

Android 蓝牙协议与四设备定位系统的实现,android,c++,linux,bluetooth,core-bluetooth,Android,C++,Linux,Bluetooth,Core Bluetooth,我正在研究蓝牙协议并实现一个位置系统,从一些设备读取dBm中的RSSI。该系统将由3个已知纬度和经度的固定站和一个移动站实施。定位将在移动台上进行,以dBm为单位从每个固定站接收功率,并使用典型的定位算法 为了提高系统的效率,需要更改蓝牙设备的一些参数。这些参数可以是: 扫描固定站点的时间,以减少响应查询的时间 查询访问代码以获得仅来自所选设备的查询的答复我们的3个固定站点 还有一些 根据所使用的技术,有一些场景可用于实现此目的,其中一些场景是有限的: 安装Linux OSS的固定站修改参数没有

我正在研究蓝牙协议并实现一个位置系统,从一些设备读取dBm中的RSSI。该系统将由3个已知纬度和经度的固定站和一个移动站实施。定位将在移动台上进行,以dBm为单位从每个固定站接收功率,并使用典型的定位算法

为了提高系统的效率,需要更改蓝牙设备的一些参数。这些参数可以是:

扫描固定站点的时间,以减少响应查询的时间

查询访问代码以获得仅来自所选设备的查询的答复我们的3个固定站点

还有一些

根据所使用的技术,有一些场景可用于实现此目的,其中一些场景是有限的:

安装Linux OSS的固定站修改参数没有问题,安装Android的移动站在其蓝牙库中似乎只有典型的功能,但蓝牙设置很难或不可能修改。 见:

<> P> Linux操作系统上的所有站和移动站上的C++都很容易从Shell脚本HCIOOL运行,用于固定的工作站修改我们的设置,但是在C++上实现源代码似乎很难,我们需要在移动站上的固定站的DBM上的需要值。 肮脏的方式。所有运行Linux操作系统和shell脚本的站,在移动站上运行shell脚本解析来自RSSI的值,并在午餐查询后重定向hcidump的输出

似乎很难找到与此场景相关的有用信息。也许你们中的一些人可以帮助选择最佳方案,并描述应该如何实现

对不起,如果没有更好的解释。。我的英语很糟糕


谢谢。

很抱歉,我没有按照你写的所有内容进行操作,但我认为第一步是进入固定电台的HCI层。这是相当直截了当的事情,并且给了你相当多的控制权

正如您所提到的,hcitool非常有用,但不管您使用什么工具或语言。您可以从任何语言访问HCI命令

例如,我在ALIX盒子上做了类似的事情。Voyage是基于debian的,所以现在加载BlueZ、PyBluez和Python是个问题。Python使你可以很容易地快速地生成一个解决方案,如果需要的话,你可以稍后转换为C++。更多

但这只是一个例子——只要在HCI层可以使用任何您喜欢的堆栈。通过HCI层需要使用特定的芯片组,并将代码直接加载到蓝牙芯片组中

在移动设备上,您可能会受到严重限制:如果您正在尝试潜在的现实世界实现。如果这只是为了实验室,那么您应该获得使用标准Bluez堆栈的根安卓设备,然后,像在固定设备上一样,您可以在HCI接口上获得。毕竟,Android只是Linux,所以如果你有根,你可以做你想做的事情