最近使用我們的多基站多標簽框架發現某些標簽的距離信息在上位機顯示有問題。
實際有3個基站,Anc 0 和 Anc3 的距離信息應該一樣。目前Anc 0 和 Anc 1 距離信息明顯有問題。
固件代碼配置:
//#define RX_NODE #define TX_NODE #ifdef RX_NODE #define SHORT_ADDR 0x0003 //#define LCD_ENABLE // #endif #ifdef TX_NODE #define SHORT_ADDR 0x0023 #endif
在上位機配置打印信息
void RTLSClient::processTagRangeReport(int aid, int tid, int range, int lnum, int seq) { int range_corrected = range + (_ancArray[aid].tagRangeCorection[tid] * 10); //range correction is in cm (range is in mm) int idx = 0; qDebug() <<aid << tid << range <<range_corrected;
明顯是 range_corrected 這個數組有問題了。
追下去發現是標簽數量太少了
#define MAX_NUM_TAGS (8) #define MAX_NUM_ANCS (4)
默認只有8個,把這個8改成256,重新編譯,上位機顯示異常的問題解決。
如果標簽節點少,只有3個基站,標簽的地址可以選擇0x0004 0x005 0x006 0x0007(基站占用了0x0001 --0x0003),數據不越界。 如果標簽多余4個,建議修改上位機。
更多內容請關注51uwb.cn 專業UWB論壇