| | |
| | | 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) |
| | | { |
| | | |
| | |
| | | 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) |