尊敬的先生,
我运行多链接演示并在连接到手机后每1秒添加下面的计时器触发。但是我每20〜30秒收到错误的RSSI值。我可以知道如何避免这种情况吗?谢谢。
rssi_tim = os_timer_create(“rssi”,os_ms_2_ticks(1000),true,(void *)os_get_current_task(),rssi_tim_cb);
静态void rssi_tim_cb(OS_Timer计时器)
{
printf(“rssi_tim_cb \ r \ n”);
OS_TASK TAFT =(OS_TASK)OS_TIMER_GET_TIMER_ID(计时器);
os_task_notify(任务,rssi_tmo_notif,os_notify_set_bits);
}
静态void 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 < - 故障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 < - 故障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.
嗨肯冲,
我已经检查了你报道的是什么,我怀疑你提到的问题有一个电话依赖,所以我不认为这是你正在实施的68倍或代码的问题,而是取决于连接到的设备它。我通过不同的手机检查了第一个测试的大偏移,而是使用其他电话,RSSI值,其中在近距离报告的值之间的值之间的偏差非常一致。所以你可以尝试连接到另一个设备并检查吗?
谢谢mt_dialog.
在与DA14583设备(从站)的连接中,我已经看到了在DA14680(Central)上运行嗅探代码时的类似行为。
我有一些生产测试代码,该代码构建了在连接期间接收的每个数据包接收的RSSI值的平均值。收到的RSSI值非常一致(彼此的1 dBm内),但是一段时间(大致每20名20个)数据包RSSI显示一个非常低的值,而不是更典型的-90 dBm的量级为-124 dBm。
在这种情况下没有使用移动电话设备 - 两端都使用对话框处理器。
此致,
阿德里安摩根
嗨adrianhwmorgan,
有些情况下,中央或外围设备将报告非常小的RSSI值(在任何情况下是错误的),原因是等待接待的两个设备以及他们要么拾取噪音或他们没有我根本听到另一方面。在这种情况下,设备将报告这种小RSSI值,因为在该特定时间没有实际接收。如果您在此时请求RSSI测量,则设备将从上次报告此错误值的最后通信中报告测量。这可以处理将切断这些值的附加条件,因为这种RSI测量没有意义。
谢谢mt_dialog.