你好,
我们每100ms一次从对话框中检索RSSI值,同时连接到中央并在应用程序中记录它。当我们设置链接以使用每个连接事件2个以上的数据包时,我们将获得一些意外的RSSI值(我们的应用程序可以控制每个连接事件的数据包数)。我们使用的是512个字节的MTU(尽管MTU尺寸似乎并不重要),并且我们正在执行以下各种尺寸到MTU尺寸的BLE的书面请求和指示 - 其中许多都超过20个字节。
我附上了一个电子表格,该电子表格显示了我们从对话框中收到的单个RSSI读数的顺序。该测试在对话框和中央之间运行相同的数据集。您可以看到我们每个连接间隔3或4个数据包时,我们会获得几个读数<-100dB。当我们将每个连接间隔的数据包减少到2或1时,所有的RSSI读数均为预期。
我还注意到,如果我们仅发送带有<20个字节数据的写入请求和指示(即数据拟合一个数据包),并且从上面的测试中运行相同的命令集也消失了 - 所有RSSI值 - 所有RSSI值如预期的。
关于为什么我们看到意外的RSSI值的想法吗?
谢谢
关键字:
设备:
嗨,rparkinson,
当您尝试发送的数据包超过中心可以在连接事件上接受的数据包时,您将在空中脱颖而出,而不会与主人通信。主人不会出现在最后一个事件中。关于您的Excel表,您的主人将在第三个数据包上脱颖而出,因此这就是为什么您会从第三个数据包中获得意外的RSSI的原因。每当我们有同步错误时,RSSI值都会是-112,因为我们不“过滤”案例,而在更新RSSI值时我们没有看到主。
谢谢,pm_dialog
感谢您提供的信息和导致-112的同步错误是有道理的。我的数据还具有-104&-109之间的读数,这些原因可能是什么原因?同样,如果我每次连接事件保持2或1个数据包,则不会发生这些读数。
谢谢
嗨,rparkinson,
获得这些值的最大原因是将噪声添加到您的信号中。
谢谢,pm_dialog
谢谢,这很有意义。对于最佳的DB截止,您是否有任何指导,可以将读数与刚刚返回环境噪声级别相对于实际接收到的RSSI值的同步错误区分读数?
嗨,rparkinson,
我建议您从SDK主机应用程序中查看来自proximity Monitor应用程序的GAPC_CON_RSSI_IND_HANDLER()。另外,我建议您检查SDK的MESE_ERRORS_RECEIVER()函数,以查找当您获得无效测量时触发哪些标志。为了使用此功能,请从da1458x_config_advanced.h头文件定义cfg_ble_metrics
谢谢,pm_dialog