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

标签 c# bluetooth rssi

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

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

我非常感谢任何意见。

谢谢!

最佳答案

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

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

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

2) 蓝牙具有功率控制反馈,两侧不断调整 Tx 功率以位于固定的黄金范围内。所以你离开,RSSI 瞬间下降,然后功率控制回路提高 Tx 功率以将 RSSI 保持在固定水平。

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

关于c# - Microsoft 蓝牙堆栈 RSSI 解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10381503/

相关文章:

c# - SQLite-Net Extensions如何正确地递归更新对象

c# - .NET 中是否有与 WinAPI GetColorDirectory 等效的函数?

安卓蓝牙触摸板仿真

ios - 如何降低广告 RSSI 值?

android - 基于 RSSI 估计信标接近/距离 - 蓝牙 LE

c# - 如何在 gridview 中格式化数字字符串?

linux - Gatttool : Limited to 5 connections?

Android BLE 数值比较配对实现

math - 来自rssi的AT+CSQ网络百分比公式

c# - 遍历 List<List<>> 在 F# 中查找值