嗨对话框
我已经进行了距离测试,使用DA14585和一个信标。似乎SDK提供的API与现实不符。
我用
UINT8_T BLE_RF_RSSI_CONVER(UINT8_T RSSI_REG){//注意:对应于以下公式的近似转换:// dBm =(0.474f * rssi) - 112.4f。返回((rssi_reg >> 1u) - 112u);}
我把测试结果放在以下PDF中,请注意表格。谢谢你
设备:
嗨moiify,
您能否分享您所关注的程序,以便获得RSSI并转换为DBM?任何代码片段复制它会非常有用。
谢谢,PM_DIALOG.
我使用上面的开发和测试代码。请看一看。非常感谢你!
嗨moiify,
为了将RSSI转换为真实DBM,您只需要将RSSI值读取为符号值。RSSI由堆栈中的广告结构(GAPM_ADV_REPORT_IND)中作为APP_ON_ADV_REPORT_IND中的参数报告。为此,在广告报告回调中,您应该获取RSSI值(Param-> Report.rssi)并转换为签名值。
例如 :
UINT8_T RSSI = PARAM-> Report.RSSI;
如果rssi = 0xcd,则应将其转换为符号值-51dbm。
当您通过RF_585.c文件中的rf_rssi_convert()从广告报告中获取它时,该值会在DBM中自动转换。该函数在堆栈上传递,堆栈为您执行转换。您无需调用此功能以将RSSI转换为DBM。
谢谢,PM_DIALOG.