C#-Microsoft蓝牙堆栈RSSI解决方法
作者:互联网
我完成了一个机器人蓝牙应用程序的实现.服务器方面,我使用Windows 7作为带有MS-BT-Stack的操作系统,并使用C#作为带有“在手”蓝牙库的语言.
目标是在范围内时通过蓝牙连接机器人.
正如扩展程序一样,我试图读取信号强度以确定机器人的距离(估计).好的,在进行谷歌搜索(也正在搜索stackoverflow ^^)时,我发现您无法使用二手BT-stack来做到这一点.从那以后,我试图找出一种解决方法来计算或估计信号强度(或距离).
就像通过蓝牙发送一个字节,看看应答时间有多长.尽管由于时间紧迫我没有实现它,但是有人认为这是个好主意吗?还是对此问题有其他想法?
我非常感谢您的投入.
谢谢!
解决方法:
不,我认为这不是一个好主意.您将无法基于响应时间获得有意义的距离估计. MAC层和软件堆栈中有许多因素会引入可变性.
即使使用RSSI也不能很好地工作,因为
1)室内2.4 GHz的RSSI存在严重的多径问题,这意味着您可以移开并看到信号变强
2)蓝牙具有功率控制反馈,在此情况下,双方会不断调整Tx功率,使其处于固定的黄金范围内.因此,您离开时,RSSI会立即下降,然后功率控制循环会提高Tx功率,以将RSSI保持在固定水平.
3)蓝牙硬件通常具有较低的RSSI测量精度,这意味着您只能得到一个粗略的度量,而不能准确地依靠它来获得良好的距离度量.
标签:bluetooth,rssi,c 来源: https://codeday.me/bug/20191101/1983261.html