From dc89c1d5027dc611af3b838043a34e1c479f2c86 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期三, 04 十二月 2024 15:54:29 +0800 Subject: [PATCH] 不丢包版本,删除多余占用基站接收时间代码,使接收常开,抢占问题未解决 --- keil/uwb_app.c | 31 +++++++++++++++++++------------ 1 files changed, 19 insertions(+), 12 deletions(-) diff --git a/keil/uwb_app.c b/keil/uwb_app.c index 81b5eba..568fbe7 100644 --- a/keil/uwb_app.c +++ b/keil/uwb_app.c @@ -506,17 +506,20 @@ anchordata_num=j; } +int success_num=0; void in_table_log(void) { uint32_t u32LogLen,datalenth; char acReadponse[200]; - u32LogLen = snprintf(acReadponse, sizeof(acReadponse), "车内:%d 人 ID:",get_in_num,get_out_num); + u32LogLen = snprintf(acReadponse, sizeof(acReadponse), "车内:%d 人 测距成功数:%d ID: ",get_in_num,success_num); + for(uint16_t i=0;i<get_in_num;i++) { datalenth = sprintf((char*)&acReadponse[u32LogLen],",%04X",anchor_id_in[i]); u32LogLen += datalenth; } LOG_INFO(TRACE_MODULE_APP,"%s\r\n",acReadponse); + success_num=0; } void TagListUpdate_person_num_car(void) { @@ -674,13 +677,14 @@ } } } + int UwbRange(void) { uint8_t i; uint16_t tempid; // The following peripherals will be initialized in the uwb_open function // phy/mac/aes/lsp/phy timers initialized - uwb_open(); + // // Set calibration parameters // uwb_calibration_params_set(config.phy_cfg.ch_num); @@ -694,7 +698,7 @@ // }; // phy_adv_params_configure(&adv_config); -// // uwb configure +// // uwb configure // uwb_configure(config.phy_work_mode, board_param.tx_power_fcc[CALIB_CH(config.phy_cfg.ch_num)], &config.phy_cfg); // ranging_frame_type_set(config.phy_cfg.sts_pkt_cfg); @@ -722,7 +726,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) @@ -775,23 +779,25 @@ } recev_error_num=0; //range_timeout_us=5000;//恢复为5000进入range后 - //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 包序%d\r\n",g_com_receive_id,distance,frame_seq_nb2); + LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 包序%d\r\n",g_com_receive_id,distance,frame_seq_nb2); + //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 信号强度ANT0:%f,信号强度ANT2: %f\r\n",g_com_receive_id,distance,sts_rssi[0],sts_rssi[2]); check_if_in_or_out_car(g_com_receive_id,distance,sts_rssi[0],sts_rssi[2]); + success_num++; - - gpio_pin_clr(SCL_PIN); + //gpio_pin_clr(SCL_PIN); //break;去掉break变为一对多 } } sts_lsp_store(); - + gpio_pin_clr(SCL_PIN); + break; //失败或者接受被高发射机打断都会再次开启接收 //flag_temp1=uwb_rx(0, 0, range_timeout_us); } - delay_us(1); +// delay_us(1); sts_lsp_store_stop(); - uwb_rx_force_off(1); +// uwb_rx_force_off(1); // if(!flag_recsuccess) // { @@ -812,6 +818,7 @@ } void Uwb_init(void) { + uwb_open(); #ifdef STS_MODE // Set STS key and IV phy_sts_key_configure(&sts_iv_key); @@ -1007,9 +1014,9 @@ case LINK_SUCCESS: { //连接成功进行轮询测距 - uwb_led_on(); + //uwb_led_on(); UwbRange(); - uwb_led_off(); + //uwb_led_off(); } break; -- Gitblit v1.9.3