如何使TXPOPETH计算与RSSI的距离

how to get txPower to calculate distance from RSSI

本文关键字:RSSI 距离 计算 何使 TXPOPETH      更新时间:2023-10-16

我从Google代码中获得了此代码:

void QBluetoothDeviceDiscoveryAgent::deviceDiscovered(const QBluetoothDeviceInfo &info)
QBluetoothDeviceInfo::rssi().

但是如何获得rssi距离'qbluetoothservicediscoveryagent的距离?我尝试了qbluetoothservicediscoveryagent ServiceInfo;Quint I = ServiceInfo.device()。rssi();

在这里i = -43

如何将其转换为距离?我得到了链接了解IBEACON距离但是如何获得发射器功率呢?根据公式计算距离?

确保您了解qbluetoothdeviceinfo :: rssi()的含义。调用此功能将立即使用最后一个存储的值返回,当设备被扫描最后一个时。如果您只收到一个广告包,则恰好在E.X.-90dB,然后立即连接,此功能将继续返回-90,直到您断开连接并再次扫描。连接的设备通常不会发送广告包装,因此您可以通过QT阅读的RSSI在连接期间不会更新。

至于接近度,获得良好的值并不容易。要准确地从RSSI转换为几何距离,您必须知道发件人的原始/预期信号 - 强度(或1M距离)。设备之间的值将有所不同。更糟糕的是,在实践中,它也可能因巨大的利润而有所不同,具体取决于发件人的电池级,发件人/接收器的物理方向,彼此质量,各个零件的质量,来自其他RF设备的随机干扰....

BLE-Folk有一个博客,解释了您应该如何做到这一点。您可以在这里阅读。链接的文章不读取或假设发件人的理论最大RSSI,而是倾向于随着时间的推移收集多个RSSI-VALUE( 做一些均值/模式过滤),并使用与先前的当前均值值价值以确定您是否正在接近或远离发件人。再加上您必须收集的现实世界数据,再加上文档阅读和常识性的微调,您可能可以为许多甚至大多数发件人设备开发一个接近计算紧邻。最后,这是您要"校准"的数量的数量与较高或更低的TX功率级别变化的设备之间的权衡。

缺点 - 您无法为市场上的所有可能设备测试,正如我之前所说,不同的设备具有不同的TX功率级别。通过这种方法,您可以开发一种算法,以对具有相等的信号配置的设备进行相当不错的测量,但其他设备似乎远远不远。该文章的作者谈到了为不同供应商创建不同的配置文件,但这并不是真的会有所帮助(考虑两个相同的信标("大/小"),一个是大型供应商,一个是针对小型室内地点 - 仅用RSSI,您就无法可靠地确定是否可以可靠地确定除非他们通过差距或以其他方式识别自己,否则您靠近小型信标或中等范围(如果您打算在MacOS或iOS上部署)。

此外,为Android Ble开发的Joyride做好准备。一些供应商知道,他们的实施情况非常糟糕和破碎,他们甚至在所有rom上都禁用了HCI-Logging-feature,以将其隐藏起来。其他人可能会像以太网一样被吹入Win98。