最近使用我们的多基站多标签框架发现某些标签的距离信息在上位机显示有问题。
实际有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论坛