跳过主要内容

接收到故障RSSI值

DA1468x

4年前

发布的肯庄0点 3回复
0的问题

亲爱的先生,
我运行多链接演示,并在连接到手机后每1秒增加定时器触发器。但是我每20~30秒就会收到错误的RSSI值。我能知道如何避免这种情况吗?谢谢。

rssi_tim = OS_TIMER_CREATE("rssi", os_ms_ticks (1000), true, (void *) OS_GET_CURRENT_TASK(), rssi_tim_cb);

static void rssi_tim_cb(OS_TIMER定时器执行操作)

printf (" rssi_tim_cb \ r \ n ");
OS_TASK task = (OS_TASK) OS_TIMER_GET_TIMER_ID(timer);

OS_TASK_NOTIFY(任务、RSSI_TMO_NOTIF OS_NOTIFY_SET_BITS);

静态孔隙rss_update ()

Int8_t rssi = 0;
ble_gap_conn_rssi_get (master_dev_conn_idx &rssi);
printf (" rssi_update rssi: % d \ r \ n”(rssi);

结果:
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
rssi_update rssi: -61
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
rssi_update rssi: -54
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
Rssi_update rssi: -119 <——fault rssi值
rssi错误触发!
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
rssi_update rssi: -56
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
Rssi_update rssi: -117 <——fault rssi值
rssi错误触发!
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
rssi_update rssi: -47
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
rssi_update rssi: -56
PXP_UPDATE_CONN_PARAM_NOTIF
rssi_tim_cb
RSSI_TMO_NOTIF
rssi_update
rssi_update rssi: -52
PXP_UPDATE_CONN_PARAM_NOTIF

4年前

MT_dialog -30点

嗨,肯庄,

我检查了你的报告,我怀疑你提到的问题有手机依赖,所以,我不认为这是68x或代码的问题,你正在实现,但取决于连接到它的设备。我检查了不同的手机,我可以看到较大的偏移,在第一次测试,但与其他手机的RSSI值相当一致,在近距离报告的值之间的偏差小于3dBm。你能试着连接到另一个设备上检查一下吗?

由于MT_dialog

4年前

adrianhwmorgan 0点

在与DA14583设备(Slave)连接的DA14680(中央)上运行嗅闻代码时,我看到过类似的行为。
我有一些生产测试代码,它构建了在连接期间收到的每个包的RSSI值的平均值。接收到的RSSI值相当一致(彼此之间相差1 dbM),但偶尔(大约每20个包),RSSI显示一个非常低的值,顺序为-124 dbM,而不是更典型的-90 dbM。

在这种情况下没有移动电话设备在使用-两端都使用Dialog处理器。

最好的问候,

艾德里安•摩根

4年前

MT_dialog -30点

嗨adrianhwmorgan,

有情况下,中央或外围将报告非常小的RSSI值(在任何情况下是错误的),原因是两个设备的等待接待他们捡起噪声或者没听到对方。在这种情况下,设备将报告如此小的RSSI值,因为在那个特定的时间没有实际的接收。如果你在那个时候请求一个RSSI测量,设备将报告来自最后一次通信的测量,因此报告这个错误的值。这可以通过一个附加条件来处理,该条件将截断这些类型的值,因为这种RSSI测量没有意义。

由于MT_dialog