Microsoft蓝牙堆栈RSSI解决方法

时间:2012-04-30 09:41:47

标签: c# bluetooth rssi

我完成了一个机器人蓝牙应用程序的实现。服务器端我使用Windows 7作为操作系统与MS-BT-Stack以及C#作为语言与“手中” - 蓝牙库。
目标是当它在范围内时通过蓝牙连接机器人。

就像扩展一样,我试图读取信号强度来确定机器人的距离(估计值)。好的,当谷歌搜索(并在stackoverflow上搜索^^)时,我发现你不能用我用过的BT-stack那样做。因为我试图找出一种解决方法来计算或估计信号强度(或距离) 比如通过蓝牙发送一个字节,看看答案时间有多长。虽然由于时间不够而没有实施,但有人认为这是个好主意吗?或者对这个问题有其他想法?

我真的很感激任何意见。

谢谢!

1 个答案:

答案 0 :(得分:4)

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

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

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

2)蓝牙具有功率控制反馈,双方不断调整Tx功率,使其处于固定的黄金范围内。所以你离开了,RSSI瞬间下降,然后功率控制环路提升Tx功率,使RSSI保持固定水平。

3)蓝牙硬件通常具有低精度RSSI测量,这意味着您只能获得粗略的测量,而不是您可以准确依赖的东西来获得良好的距离度量。