From 7b81c9f59686b683618cf95bd7f51951cdb1afed Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 08 八月 2025 17:46:41 +0800 Subject: [PATCH] 去掉所有调试打印,改为55AA12URT报文输出 --- keil/uwb_app.c | 102 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 86 insertions(+), 16 deletions(-) diff --git a/keil/uwb_app.c b/keil/uwb_app.c index c70881a..da9c81a 100644 --- a/keil/uwb_app.c +++ b/keil/uwb_app.c @@ -116,7 +116,7 @@ uint8_t phy_work_mode; /* PHY_TX / PHY_RX / PHT_TX|PHY_RX */ struct UWB_CONFIG_T phy_cfg; }; - +extern uint8_t uwb_ch; static struct mk_uwb_configure config = { .phy_work_mode = (uint8_t)(PHY_TX | PHY_RX), .phy_cfg.ch_num = 5, /* Channel number. */ @@ -230,6 +230,8 @@ extern uint16_t mubiao_anchor_ID; uint8_t Lora_qingqiu_flag; extern uint16_t Lora_qingqiu_bao; +uint8_t shengji_flag; +extern uint8_t Dtu_shengji_jindu[20]; static void rx_int_callback(struct MAC_HW_REPORT_T *rx_report) { uint8_t valid_sts=0; uint16_t checksum1 = 0,dest_id; @@ -251,7 +253,8 @@ rssi = rx_report->rssi; receive_flag=1; // uart_send(UART_ID0, rx_buf,rx_length, NULL); - if(rx_buf[MESSAGE_TYPE_IDX]==MBX_POLL) + gpio_pin_toggle(IO_PIN_4); + if(rx_buf[MESSAGE_TYPE_IDX]==MBX_POLL&&!shengji_flag) { Anchor_App(); } @@ -264,6 +267,7 @@ { if(!memcmp(&dev_id,&dest_id,2)/*||dest_id==0xffff||(dest_id==0xfffe&&get_channel==5)*/) { + shengji_flag=1; switch(rx_buf[MSG_TYPE_IDX]) { case LORA_MSGTYPE_UPDATE_CONFIRM: @@ -285,8 +289,13 @@ break; case 0x99: - LOG_INFO(TRACE_MODULE_APP, "收到结束升级请求\r\n",Lora_qingqiu_bao); - delay_ms(500); +// LOG_INFO(TRACE_MODULE_APP, "收到结束升级请求\r\n",Lora_qingqiu_bao); + delay_ms(200); + Dtu_shengji_jindu[4]=100; + memcpy(&Dtu_shengji_jindu[5],&mubiao_anchor_ID,2); + uart_send(UART_ID0, Dtu_shengji_jindu,9, NULL); + + delay_ms(1000); // Lora_upanc_flag=0; Lora_qingqiu_flag=0; NVIC_SystemReset(); @@ -317,7 +326,7 @@ // } } } - + #ifdef STS_MODE valid_sts= sts_valid_check(); if (valid_sts) @@ -463,7 +472,7 @@ //void TagListUpdate(void) //{ // uint8_t i,j=0; -// for(i=0; i<anchordata_num; i++) +// for(i=0; i<taglist_num; i++) // { // if(tagofflinetime[i]++<QUIT_SLOT_TIME) // { @@ -471,18 +480,18 @@ // tagofflinetime[j++]=tagofflinetime[i]; // } // } -// anchordata_num=j; +// taglist_num=j; //} void TagListUpdate(void) { uint16_t i,j=0,k=0; for(i=0; i<taglist_num; i++) { - if(tagofflinetime[i]++<TAG_KEEPTIMES) + if(tagofflinetime[i]++<10) { tagid_list[j]=tagid_list[i]; tagdist_list[j] = tagdist_list[i]; - anchordata_bat[j]=anchordata_bat[i];//电量随之更新 + anchordata_bat[j]=anchordata_bat[i];//电量随之更新 anchordata_version[j]=anchordata_version[i]; tagofflinetime[j++]=tagofflinetime[i]; } @@ -642,13 +651,42 @@ if(uwb_losttimer>g_com_map[UWB_RNAGE_TIME]) uwb_losttimer=g_com_map[UWB_RNAGE_TIME]+1;//防止溢出 } -uint8_t uwbsend[200]; - +uint8_t uwbsend[1000]; +static uint8_t usart_send[1024]; +extern uint8_t bat_percent; +uint16_t tagseq=0; void UWBIdleTask(void) { if(HIDO_TimerGetTick()-uwbtasktimer >=1) { + + for(uint16_t i=0;i<taglist_num-1;i++) + { + for(uint16_t j=0;j<taglist_num-1-i;j++) + { + if(tagdist_list[j]>tagdist_list[j+1]) + { + uint16_t id,dist,version; + uint8_t bat; + id = tagid_list[j]; + dist = tagdist_list[j]; + version = anchordata_version[j]; + tagid_list[j] = tagid_list[j+1]; + tagdist_list[j] = tagdist_list[j+1]; + anchordata_version[j] = anchordata_version[j+1]; + tagid_list[j+1] = id; + tagdist_list[j+1] = dist; + anchordata_version[j+1] = version; + } + } + + } + +// if(taglist_num>6) +// { +// taglist_num=6; +// } uwbtasktimer = HIDO_TimerGetTick(); UWBOneSecondTask(); uwbsend[0]=0x55; @@ -658,11 +696,42 @@ 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); - uart_send(UART_ID0, uwbsend,taglist_num*6+4, NULL); - taglist_num=0; -// for(int i=0;i<anchordata_num;i++) + + //新增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[0],tagdist_list[0]); +// LOG_INFO(TRACE_MODULE_APP,"当前测距基站ID:%x,距离:%d.\r\n",tagid_list[i],tagdist_list[i]); // } } } @@ -787,7 +856,7 @@ current_count=phy_timer_count_get(); while(mac_is_busy()) { - Calibration_Time(); +// Calibration_Time(); IdleTask(); current_count=phy_timer_count_get(); if(current_count>end_receive_count&¤t_count<end_receive_count+HALF_SECOND_TIME) @@ -885,6 +954,7 @@ phy_rx_ant_mode_set(RX_ANT_PORTS_COMBINATION); #endif // Set calibration parameters +// config.phy_cfg.ch_num=g_com_map[NEARBASE_ID1]; uwb_calibration_params_set(config.phy_cfg.ch_num); #ifndef STS_MODE // set advanced parameters -- Gitblit v1.9.3