chen
2025-08-08 7b81c9f59686b683618cf95bd7f51951cdb1afed
keil/uwb_app.c
@@ -652,7 +652,9 @@
      uwb_losttimer=g_com_map[UWB_RNAGE_TIME]+1;//防止溢出
}
uint8_t uwbsend[1000];
static uint8_t usart_send[1024];
extern uint8_t bat_percent;
uint16_t tagseq=0;
void UWBIdleTask(void)
{
@@ -694,13 +696,43 @@
        memcpy(&uwbsend[4],&tagid_list,taglist_num*2);
        memcpy(&uwbsend[4+taglist_num*2],&tagdist_list,taglist_num*2);
        memcpy(&uwbsend[4+taglist_num*4],&anchordata_version,taglist_num*2);
      //新增URT协议
if(taglist_num>20) //最多上传20个基站数据,距离最近的20个
{taglist_num = 20;
}
usart_send[0] = 0x55;//正常6模式
usart_send[1] = 0xAA;//正常模式
usart_send[2] = 0x12;//正常模式
usart_send[3] = 15+5*(taglist_num);//数据段长度
memcpy(&usart_send[4],&g_com_map[DEV_ID],2);
usart_send[6] = tagseq;
usart_send[7] = (tagseq++)>>8;
usart_send[8] = bat_percent;
//usart_send[9] = userkey_state|stationary_flag<<1|gotosleep_flag<<2|motor_flag<<5|uwb_state<<6;
      usart_send[9]=0;
// memcpy(&usart_send[10],&rec_tagheight,2);
usart_send[12] = 0;
usart_send[13] = 0;
usart_send[14] = 0;
usart_send[15] = 0;
usart_send[16] = taglist_num;
uint16_t checksum;
memcpy(&usart_send[17],&tagid_list,2*taglist_num);
memcpy(&usart_send[17+taglist_num*2],&tagdist_list,2*taglist_num);
memcpy(&usart_send[17+taglist_num*4],&anchordata_bat,taglist_num);
checksum = Checksum_u16(&usart_send[2],15+5*taglist_num);
memcpy(&usart_send[17+5*taglist_num],&checksum,2);
uart_send(UART_ID0, &usart_send,19+5*taglist_num, NULL);
while(uart_tx_in_progress(UART_ID0));
      //URT输出协议
//        uart_send(UART_ID0, uwbsend,taglist_num*6+4, NULL);
      //  taglist_num=0;
        LOG_INFO(TRACE_MODULE_APP,"当前测距基站数量%d.\r\n",taglist_num);
        for(int i=0;i<taglist_num;i++)
        {
        LOG_INFO(TRACE_MODULE_APP,"当前测距基站ID:%x,距离:%d.\r\n",tagid_list[i],tagdist_list[i]);
        }
//        LOG_INFO(TRACE_MODULE_APP,"当前测距基站数量%d.\r\n",taglist_num);
//        for(int i=0;i<taglist_num;i++)
//        {
//        LOG_INFO(TRACE_MODULE_APP,"当前测距基站ID:%x,距离:%d.\r\n",tagid_list[i],tagdist_list[i]);
//        }
   }
}
int uwb_app_poll(void)