C#-Microsoft蓝牙堆栈RSSI解决方法

我完成了一个机器人蓝牙应用程序的实现.服务器方面,我使用Windows 7作为带有MS-BT-Stack的操作系统,并使用C#作为带有“在手”蓝牙库的语言.
目标是在范围内时通过蓝牙连接机器人.

正如扩展程序一样,我试图读取信号强度以确定机器人的距离(估计).好的,在进行谷歌搜索(也正在搜索* ^^)时,我发现您无法使用二手BT-stack来做到这一点.从那以后,我试图找出一种解决方法来计算或估计信号强度(或距离).
就像通过蓝牙发送一个字节,看看应答时间有多长.尽管由于时间紧迫我没有实现它,但是有人认为这是个好主意吗?还是对此问题有其他想法?

我非常感谢您的投入.

谢谢!

解决方法:

不,我认为这不是一个好主意.您将无法基于响应时间获得有意义的距离估计. MAC层和软件堆栈中有许多因素会引入可变性.

即使使用RSSI也不能很好地工作,因为

1)室内2.4 GHz的RSSI存在严重的多径问题,这意味着您可以移开并看到信号变强

2)蓝牙具有功率控制反馈,在此情况下,双方会不断调整Tx功率,使其处于固定的黄金范围内.因此,您离开时,RSSI会立即下降,然后功率控制循环会提高Tx功率,以将RSSI保持在固定水平.

3)蓝牙硬件通常具有较低的RSSI测量精度,这意味着您只能得到一个粗略的度量,而不能准确地依靠它来获得良好的距离度量.

上一篇:android – WifiManager.calculateSignalLevel(RSSI,5)的问题


下一篇:android-如何查找连接的蓝牙设备的信号强度