From ed02ba669c5898bec4abb01843bb480beaec33a0 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期三, 17 一月 2024 10:40:02 +0800
Subject: [PATCH] 版本V1.3,修复lora接收丢包的bug。

---
 APL/APL.c |   56 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 42 insertions(+), 14 deletions(-)

diff --git a/APL/APL.c b/APL/APL.c
index 4279986..25e7e01 100644
--- a/APL/APL.c
+++ b/APL/APL.c
@@ -197,22 +197,24 @@
 //        l_bIsVibration = HIDO_TRUE;
         nomove_time=0;
     }
-    if(GPIO_Pin == GPIO_PIN_9)
-    {
-               HAL_ResumeTick();
+//    if(GPIO_Pin == GPIO_PIN_9)//按钮关机
+//    {
+//               HAL_ResumeTick();
 
-            SystemClock_Config();
-            MX_Init();
-            Uart_ReInit(UART_ID_DBG);
-            Uart_ReInit(UART_ID_LORA);
-            Uart_ReInit(UART_ID_GPS);
-        
+//            SystemClock_Config();
+//            MX_Init();
+//            Uart_ReInit(UART_ID_DBG);
+//            Uart_ReInit(UART_ID_LORA);
+//            Uart_ReInit(UART_ID_GPS);
+//        
 
-  
-      PowerDownDetect();
-    }
+//  
+//      PowerDownDetect();
+//    }
     
 }
+extern uint8_t lora_rxbuf[256];
+extern uint8_t lora_rxbufnum;
 extern void Set4LEDColor_Off(void);
 uint8_t lora_sendfinalbag_num;
 void Lora_Sendfinalbag_Poll()
@@ -221,7 +223,9 @@
 if(lp_time-lora_sendfinalbag_time>10&&lora_sendfinalbag_flag)
     {
     lora_sendfinal_rx_bag_flag=1;
-    Lora_SendData((HIDO_UINT8 *)GPS_final_data,GPS_final_changdu);  
+    Lora_SendData((HIDO_UINT8 *)GPS_final_data,GPS_final_changdu); //发送数据
+    memset(&lora_rxbuf,0,sizeof(lora_rxbuf));//发一次清一次rx的缓存
+    lora_rxbufnum=0;        
     lora_sendfinalbag_time=lp_time;
     lora_sendfinalbag_num=lora_sendfinalbag_num+1;
         loraled=BLUE;
@@ -327,6 +331,21 @@
 uint32_t GPSDateTime =0;
 uint8_t uwbqiehuangps_flag;
 extern uint8_t nomove_flag;
+HIDO_INT32 NOWAKEUP_Poll(void)
+{
+  while(1)
+  {
+         HIDO_TimerPoll();
+        Lora_Poll();//lora接收函数
+        IdleTask();
+        if((Lora_IsIdle() == HIDO_TRUE)/*为了防止lora初始化的时候进入休眠*/ 
+      &&(IsTypecCActive() == HIDO_FALSE) /*5v输入检测时不休眠*/)
+        {
+        Power_Sleep();
+        }
+  }
+}
+extern uint8_t fengming_time,fengming_flag;
 HIDO_INT32 APL_Poll(void)
 {
 //    ST_RTCDateTime stNow;
@@ -346,7 +365,7 @@
     if(((Lora_IsIdle() == HIDO_TRUE)/*为了防止lora初始化的时候进入休眠*/ 
       && (GPS_IsIdle() == HIDO_TRUE)/*防止gps工作时进入休眠*/
       &&(lora_sendfinal_rx_bag_flag==0)//防止lora在2s等待接收的时候进入休眠
-      && (IsTypecCActive() == HIDO_FALSE)) /*5v输入检测时不休眠*/||nomove_flag==1/*静止1小时立刻休眠。*/)
+      && (IsTypecCActive() == HIDO_FALSE)/*5v输入检测时不休眠*/&&(fangchai_flag==0)&&fengming_flag==0) ||nomove_flag==1/*静止1小时立刻休眠。*/)
     {
 //////    if(Lora_IsIdle() == HIDO_TRUE)
         Power_Sleep();
@@ -418,6 +437,8 @@
             l_eGPSState = GPS_OFF;
 //            uwbqiehuangps_flag=1;//如果放开,就是uwb切到gps会立刻工作一次,不放开就是就算uwb切换到gps也要判断是否过了一小时
     }
+  if(fengming_flag==1)  
+  {Beep_On();}
 }
 else
 {
@@ -430,13 +451,20 @@
     /* 拆卸告警 */
     if(IsDisassemblyAlarm())
     {
+        if(lp_time%2==1)
         Beep_On();
+        else
+        Beep_Off();  
+        
         fangchai_flag=1;
     }
     else
     {
+        if(fengming_flag==0) 
+        {
         Beep_Off();
         fangchai_flag=0;
+        }
     }
   #endif
     

--
Gitblit v1.9.3