From 2ea6286cc6eeb393d57ace3022634a9e86e7e01d Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期一, 16 六月 2025 14:24:45 +0800 Subject: [PATCH] 这个版本专门测试周围基站数量的 通过串口打印 波特率921600 如果要升级读取等功能用上个版本 --- keil/uwb_app.c | 68 ++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 16 deletions(-) diff --git a/keil/uwb_app.c b/keil/uwb_app.c index 1b87047..3e9d378 100644 --- a/keil/uwb_app.c +++ b/keil/uwb_app.c @@ -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; @@ -252,7 +254,7 @@ receive_flag=1; // uart_send(UART_ID0, rx_buf,rx_length, NULL); gpio_pin_toggle(IO_PIN_4); - if(rx_buf[MESSAGE_TYPE_IDX]==MBX_POLL) + if(rx_buf[MESSAGE_TYPE_IDX]==MBX_POLL&&!shengji_flag) { Anchor_App(); } @@ -265,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: @@ -286,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(); @@ -464,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) // { @@ -472,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]; } @@ -643,13 +651,40 @@ 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]; 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; @@ -659,12 +694,13 @@ 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++) -// { -// LOG_INFO(TRACE_MODULE_APP,"当前测距基站ID:%x,距离:%d.\r\n",tagid_list[0],tagdist_list[0]); -// } +// 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]); + } } } int uwb_app_poll(void) @@ -788,7 +824,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) @@ -886,7 +922,7 @@ phy_rx_ant_mode_set(RX_ANT_PORTS_COMBINATION); #endif // Set calibration parameters - config.phy_cfg.ch_num=g_com_map[NEARBASE_ID1]; +// 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