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&&current_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