From c001d3bc92eac4bb81addd160ced367a25ed7931 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期五, 25 七月 2025 14:13:09 +0800
Subject: [PATCH] 增加uwb错误处理逻辑,lora功率正常版

---
 keil/include/main/main.c           |   46 +++++++++++-----------
 keil/include/src/Radio/lora_1268.c |   51 +++++++++++++++----------
 keil/include/drivers/uwb_app.c     |    5 +-
 3 files changed, 57 insertions(+), 45 deletions(-)

diff --git a/keil/include/drivers/uwb_app.c b/keil/include/drivers/uwb_app.c
index 956fe4e..64f2c9e 100644
--- a/keil/include/drivers/uwb_app.c
+++ b/keil/include/drivers/uwb_app.c
@@ -303,6 +303,7 @@
         rssi = rx_report->rssi;
         receive_flag=1;
 				Anchor_App();
+				
 			if(resp_tx_flag==0)
 			{
 			  OpenUWB();
@@ -620,10 +621,10 @@
 	//LOG_INFO(TRACE_MODULE_APP,"关闭uwb_rx\r\n");
 }
 void OpenUWB(void)
-{
+{		
 		flag_temp1=uwb_rx(0, 0,range_timeout_us);//提交接收请求
 		uwb_rx_flag=1;
-		//LOG_INFO(TRACE_MODULE_APP,"打开uwb_rx\r\n");
+		LOG_INFO(TRACE_MODULE_APP,"打开uwb_rx\r\n");
 }	
 void UWBOneSecondTask(void)
 {
diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index 09239b7..1183646 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -381,8 +381,8 @@
 //	lora_in_sleep();
 //	 power_init();
 //	mcu_deep_sleep();
-//	if(gpio_pin_get_val(SLEEP_PIN))
-//	{
+	if(gpio_pin_get_val(SLEEP_PIN))
+	{
 	if(gpio_pin_get_val(MODE_CHANGE_PIN))//记得改回来与正式的相反
 	{
 		LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_Air_tag模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
@@ -497,7 +497,7 @@
 		LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_免布线模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
 		uart0_Init_normal();
 		Lora_1268_Init();
-		 LOG_INFO(TRACE_MODULE_APP," 切换6\r\n");
+		 //LOG_INFO(TRACE_MODULE_APP," 切换6\r\n");
 		SwitchLoraSettings(478,7,22);
 		Uwb_init();//默认为我们测距配置
 		OpenUWB();
@@ -522,29 +522,29 @@
         }
 				Lora_Tx_Poll();	
 				//LoraUp_Poll();//网关升级
-//				if(!gpio_pin_get_val(SLEEP_PIN))
-//				{
-//					delay_ms(300);
-//				//LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n");//会打断休眠
-//				//gpio_pin_clr(LORA_NRST);//lora休眠
-//				//spi_close(SPI_ID0);
-//				lora_in_sleep();
-//				 power_init();
-//				mcu_deep_sleep();
-//				}
+				if(!gpio_pin_get_val(SLEEP_PIN))
+				{
+					delay_ms(300);
+				//LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n");//会打断休眠
+				//gpio_pin_clr(LORA_NRST);//lora休眠
+				//spi_close(SPI_ID0);
+				lora_in_sleep();
+				 power_init();
+				mcu_deep_sleep();
+				}
 				IdleTask();
 				}
 	}    
-//}else{
-//	
-//delay_ms(300);
-//	//LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n");//会打断休眠
-//	//gpio_pin_clr(LORA_NRST);//lora休眠
-//	//spi_close(SPI_ID0);
-//	lora_in_sleep();
-//	 power_init();
-//	mcu_deep_sleep();
-//}
+}else{
+	
+delay_ms(300);
+	//LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n");//会打断休眠
+	//gpio_pin_clr(LORA_NRST);//lora休眠
+	//spi_close(SPI_ID0);
+	lora_in_sleep();
+	 power_init();
+	mcu_deep_sleep();
+}
 }
 
 void app_restore_from_power_down(void)
diff --git a/keil/include/src/Radio/lora_1268.c b/keil/include/src/Radio/lora_1268.c
index 38c28fd..736e0b6 100644
--- a/keil/include/src/Radio/lora_1268.c
+++ b/keil/include/src/Radio/lora_1268.c
@@ -187,6 +187,7 @@
 extern uint8_t SOS_KEY_STATE;
 uint32_t LORA_POLL_COUNT=0;
 uint8_t test1,test2;
+extern int poll_rx_num;
 #define GET_USERKEY gpio_pin_get_val(SOS_PIN)
 void LoraReportPoll(void)
 {
@@ -206,14 +207,14 @@
 	//LOG_INFO(TRACE_MODULE_APP," 切换2\r\n");
 	//test1++;
 //	LOG_INFO(TRACE_MODULE_APP," 切换9\r\n");
-    //SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,22);
-	SwitchLoraSettings(478,7,22);
-//    if(heatbeat_count++>HEATBEAT_UPDATE_TIME && WG_Connected == wg_state) //如果心跳包到达上传时间,并且网关处于链接状态,就上传心跳包
-//    {
-//        heatbeat_count = 0;
-//        LoraHeartBeartPoll();
-//        return;
-//    }
+    SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,22);
+	//SwitchLoraSettings(478,7,22);
+    if(heatbeat_count++>HEATBEAT_UPDATE_TIME && WG_Connected == wg_state) //如果心跳包到达上传时间,并且网关处于链接状态,就上传心跳包
+    {
+        heatbeat_count = 0;
+        LoraHeartBeartPoll();
+        return;
+    }
     for(uint16_t i=0; i<report_ancnum-1; i++)
     {
         for(uint16_t j=0; j<report_ancnum-1-i; j++)
@@ -264,8 +265,15 @@
 	//	test2++;   num
 //	LOG_INFO(TRACE_MODULE_APP," 切换8\r\n");
 	//SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,22);
-   // Radio.Send(lora_sendbuffer,ANCID_IDX+report_ancnum*4+2);
-   Radio.Send(num,3);
+    Radio.Send(lora_sendbuffer,ANCID_IDX+report_ancnum*4+2);
+		LOG_INFO(TRACE_MODULE_APP," 数量%d\r\n",poll_rx_num);
+		if(poll_rx_num==0)
+		{
+		CloseUWB();
+		OpenUWB();
+		}
+		poll_rx_num=0;
+   //Radio.Send(num,3);
 
 }
 
@@ -536,6 +544,7 @@
 
   return (crc&0xffffu);
 }
+
 void LoraUp_Poll()
 {    uint16_t  result ;
     uint16_t crc16;
@@ -551,9 +560,10 @@
     huifushengjibao_flag=0;
     LoraUp_flag=1;
     Radio.Send(send_lora_data,8);//基站发送升级确认回复
+			
     delay_ms(1000); 
-LOG_INFO(TRACE_MODULE_APP," 切换7\r\n");			
-   // SwitchLoraSettings(LORA_UPCHANNEL_FRQ,LORA_UPCHANNEL_SF,22); //切换lora升级频点  
+//LOG_INFO(TRACE_MODULE_APP," 切换7\r\n");			
+    SwitchLoraSettings(LORA_UPCHANNEL_FRQ,LORA_UPCHANNEL_SF,22); //切换lora升级频点  
     delay_ms(200);   
     __disable_irq();
 //    FLASH_Read(APP_1OR2_ADRESS,(uint8_t*)&app1_or_app2,2);        
@@ -813,8 +823,9 @@
     if(!no_rx_flag)
     {
         if(lora_jianting_flag&&LoraUp_flag==0)
-        {	LOG_INFO(TRACE_MODULE_APP," 切换2\r\n");
-//            SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+        {	
+					//LOG_INFO(TRACE_MODULE_APP," 切换2\r\n");
+            SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
             Radio.Rx(0);
         }
     }
@@ -826,8 +837,8 @@
     Radio.Standby();
     if(lora_jianting_flag)
     {
-			LOG_INFO(TRACE_MODULE_APP," 切换3\r\n");
-       // SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+//			LOG_INFO(TRACE_MODULE_APP," 切换3\r\n");
+        SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
         Radio.Rx(0);
     }
 }
@@ -838,8 +849,8 @@
 	
     if(lora_jianting_flag)
     {
-			LOG_INFO(TRACE_MODULE_APP," 切换4\r\n");
-//        SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+			//LOG_INFO(TRACE_MODULE_APP," 切换4\r\n");
+        SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
         Radio.Rx(0);
     }
 }
@@ -851,8 +862,8 @@
     Radio.Standby();
     if(lora_jianting_flag)
     {
-			LOG_INFO(TRACE_MODULE_APP," 切换5\r\n");
-    //    SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+			//LOG_INFO(TRACE_MODULE_APP," 切换5\r\n");
+        SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
         Radio.Rx(0);
     }
 }

--
Gitblit v1.9.3