你好,
当连接到中央服务器并在应用程序中记录时,我们每100毫秒从Dialog中检索一次RSSI值。当我们设置每个连接事件使用超过2个数据包时,我们会得到一些意想不到的RSSI值(我们的应用程序可以控制每个连接事件的数据包数量)。我们使用了512字节的MTU(尽管MTU大小似乎并不重要),我们正在执行各种大小的BLE上的写请求和指示,最大的MTU大小-许多都超过20字节。
我附上了一个电子表格,其中显示了我们从Dialog收到的单个RSSI读数的顺序。测试在Dialog和central之间运行相同的数据集。您可以看到,当我们在每个连接间隔中使用3或4个包时,我们得到的几个读数< -100dB。当我们将每个连接间隔的数据包减少到2或1时,所有的RSSI读数都是预期的。
我也注意到,如果我们只发送写请求和指示小于20字节的数据(即数据适合在一个包),并运行来自上述测试的相同的命令集,问题也会消失-所有的RSSI值都是预期的。
对于为什么我们会看到意外的RSSI值有什么想法吗?
谢谢
关键词:
设备:
嗨rparkinson,
当您试图在连接事件中发送比中心可以接受的包更多的数据包时,您将出去,而不是与主机通信。大师不会出现在最后一场比赛中。关于你的excel表格,你的主表将在第3个包中发出,所以这就是为什么你从第3个包中得到意想不到的RSSI。每次我们有一个同步错误,最后报告的RSSI值将是-112,因为我们没有“过滤”的情况下,我们没有看到主更新的RSSI值。
谢谢,PM_Dialog
感谢您提供的信息,导致-112的同步错误是有意义的。我的数据读数也在-104和-109之间,这是什么原因呢?同样,如果我保持每个连接事件2或1个包,这些读取不会发生。
谢谢
嗨rparkinson,
得到这些值的最可能的原因是信号中加入了噪声。
谢谢,PM_Dialog
谢谢,这很有道理。你有任何关于最好的dB截止,以区分一个读数从同步错误,只是返回环境噪声水平和一个RSSI值,是一个实际接收帧?
嗨rparkinson,
我建议你看看gapc_con_rssi_ind_handler()从接近监视器应用程序从SDK主机应用程序。另外,我建议您检查SDK中的measure_errors_receiver()函数,以确定当您获得无效度量时触发了哪些标志。为了使用这个函数,请从da1458x_config_advanced.h头文件定义CFG_BLE_METRICS
谢谢,PM_Dialog