wwwaa 发表于 2025-4-17 10:46 上述代码是标签汇总,可以直接用printf函数打印看标签是否将各个距离准确放到angle 数据包 另外,基站收到这个angle_msg后通过串口发送给上位机,检查下发送上位机时数据长度是否有调整,如果没有调整按照修改后的数据包长度修改基站串口发送函数 |
蓝点无限 发表于 2025-4-16 08:50 打印了一下发现frame[12] frame[13] frame[14] frame[15]都是0好像没有识别到,但是我在硬件中加过了uint8 len = 0; angle_msg[LOCATION_FLAG_IDX] = 1; angle_msg[LOCATION_INFO_START_IDX + (len++)] = 'm'; angle_msg[LOCATION_INFO_START_IDX + (len++)] = 'r'; angle_msg[LOCATION_INFO_START_IDX + (len++)] = 0x02; angle_msg[LOCATION_INFO_START_IDX + (len++)] = TAG_ID;//TAG ID angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)(framenum&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((framenum>>8)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance1/10)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance1/10 >>8)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance2/10)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance2/10 >>8)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance3/10)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance3/10 >>8)&0xFF); if(ANCHOR_MAX_NUM > 3) { angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance4/10)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance4/10 >>8)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance5/10)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance5/10 >>8)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance6/10)&0xFF); angle_msg[LOCATION_INFO_START_IDX + (len++)] = (uint8)((distance6/10 >>8)&0xFF); }#define ALL_MSG_SN_IDX 2 #define ALL_MSG_TAG_IDX 3 #define FINAL_MSG_POLL_TX_TS_IDX 10 #define FINAL_MSG_RESP_RX_TS_IDX 14 #define FINAL_MSG_FINAL_TX_TS_IDX 18 #define FINAL_MSG_TS_LEN 4 #define ANGLE_MSG_IDX 10 #define LOCATION_FLAG_IDX 11 #define LOCATION_INFO_LEN_IDX 12 #define LOCATION_INFO_START_IDX 13 #define ANGLE_MSG_MAX_LEN 40把最后一个延长可以正常在硬件看到距离但是不知道为什么45的距离信息发送不到上位机 |
蓝点无限 发表于 2025-4-16 08:50 找到问题了,六基站导致有个值位数超出了,但是还想问一下导入到上位机的时候,以及改过对应的值,但还是只有四个基站测距的距离,56都没有 else if(frame_type == 2) { range[0]=frame[4]|frame[5]<<8; range[1]=frame[6]|frame[7]<<8; range[2]=frame[8]|frame[9]<<8; range[3]=frame[10]|frame[11]<<8; range[4]=frame[12]|frame[13]<<8; range[5]=frame[14]|frame[15]<<8; ra[0] = range[0]*10; ra[1] = range[1]*10; ra[2] = range[2]*10; ra[3] = range[3]*10; ra[4] = range[4]*10; ra[5] = range[5]*10; processTagRangeReport(0, TAG_ID, range[0]*10, lnum, seq); processTagRangeReport(1, TAG_ID, range[1]*10, lnum, seq); processTagRangeReport(2, TAG_ID, range[2]*10, lnum, seq); processTagRangeReport(3, TAG_ID, range[3]*10, lnum, seq); processTagRangeReport(4, TAG_ID, range[4]*10, lnum, seq); processTagRangeReport(5, TAG_ID, range[5]*10, lnum, seq); trilaterateTag(TAG_ID, seq);,打印的range信息没有56距离。硬件上可以已经显示56测距的距离信息,不知道为什么 |
wwwaa 发表于 2025-4-14 09:52 分析了代码,没有看出太多问题。你们五基站测试有问题吗? |
蓝点无限 发表于 2025-4-14 08:50 改的是6基站,不加后面测试的也没有测距的显示,会出现问题,主要改的就是通过网盘分享的文件:修改图片.zip 链接: https://pan.baidu.com/s/1zB0GiyXg0Bnj3XM8Nh-ovg?pwd=573c 提取码: 573c |
wwwaa 发表于 2025-4-13 22:44 标题是6基站,内容是6标签。实际你是要改那个? 在UWB测距过程中,不要加OLED显示,不然模块时间信息不满足,无法完成测距。 请详细提供你的需求,以及你具体改动了哪里,以及对应的现象(现在什么现象以及预期的现象是什么) |
通过网盘分享的文件:sdkalman6.zip 链接: https://pan.baidu.com/s/1Lpy58NV6Sd-ppJelpMNBNQ?pwd=7762 提取码: 7762这个是我的代码,不知道是什么情况 |
GMT+8, 2025-4-26 02:05 , Processed in 0.015627 second(s), 8 queries , File On.
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】