From e0a196fc7dcb47d200ab81a933dde2b18d169ed5 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期二, 13 五月 2025 16:23:21 +0800
Subject: [PATCH] 移植开关GPS代码

---
 keil/include/main/main.c |   84 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 79 insertions(+), 5 deletions(-)

diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index ba1cfde..a751e73 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -46,6 +46,15 @@
 #define UWB_MEASUREMENT_INTERVAL 5
 #define UWB_MEASUREMENT_INTERVAL_SLEEP 30
 
+
+
+//室内外阈值
+#define XINGHAOQIANGDU_VALUE 210
+#define WEIXINGSHULIANG_VALUE 10
+uint8_t heart_upload_time=0;
+uint8_t open_gps_time=0;
+
+
 extern uint8_t mUsartReceivePack[100];
 extern uint8_t mUsart2ReceivePack[150];
 extern uint8_t state5V_prase_flag,gps_prase_flag;
@@ -110,7 +119,7 @@
     .flow = UART_FLOW_CONTROL_NONE,
     .rx_level = UART_RXFIFO_CHAR_1,
     .tx_level = UART_TXFIFO_EMPTY,
-    .baud = BAUD_115200,
+    .baud = BAUD_9600,
 #if (TEST_UART_MODE == TEST_UART_POLL_MODE)
     .dma_en = false,
     .int_rx = false,
@@ -211,6 +220,71 @@
 		power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
 		mcu_deep_sleep();
 	}
+}
+
+extern uint16_t g_spsum_GSV,g_snum_GSV,g_spsum_GSV_sum,g_snum_GSV_sum;
+extern uint8_t lounei_flag,open_gps_time,ceju_leave_flag,fixed_solution_count_minute;
+void GPS_ONOFF_Task()
+{
+      if(30<open_gps_time&&open_gps_time<=90)
+			{
+			Receive_g_spsum_Data(g_spsum_GSV);
+			Receive_g_snum_Data(g_snum_GSV);			
+			if((g_spsum_GSV_sum<XINGHAOQIANGDU_VALUE||g_snum_GSV_sum<WEIXINGSHULIANG_VALUE)&&(fixed_solution_count_minute<30))
+			{
+			lounei_flag=1;
+			}
+			if((XINGHAOQIANGDU_VALUE<g_spsum_GSV_sum&&WEIXINGSHULIANG_VALUE<g_snum_GSV_sum)&&(fixed_solution_count_minute>30))				
+			{
+			lounei_flag=0;
+			}
+			}
+
+			if(open_gps_time>90)
+			{
+			if(ceju_leave_flag==1)
+			{
+			Receive_g_spsum_Data(g_spsum_GSV);
+			Receive_g_snum_Data(g_snum_GSV);
+				
+			if((g_spsum_GSV_sum<XINGHAOQIANGDU_VALUE||g_snum_GSV_sum<WEIXINGSHULIANG_VALUE)&&(fixed_solution_count_minute<30))
+			{
+			lounei_flag=1;
+			}
+			if((XINGHAOQIANGDU_VALUE<g_spsum_GSV_sum&&WEIXINGSHULIANG_VALUE<g_snum_GSV_sum)&&(fixed_solution_count_minute>30))				
+			{
+			lounei_flag=0;
+			}
+
+			if(heart_upload_time==60)
+			{
+			ceju_leave_flag=0;
+			fixed_solution_count_minute=0;
+			if(lounei_flag==1)
+			{
+				PCA9555_Set_One_Value_Output(GPS_POWER,0);	
+			}
+			}
+			if(heart_upload_time==0||heart_upload_time==60)
+			{
+				heart_upload_time=0;
+			}
+			heart_upload_time++;
+			}
+
+		}
+			if(open_gps_time>149&&lounei_flag==1)
+			{
+
+			if(open_gps_time-90==60)
+			{
+				open_gps_time=90;
+				TCPHeartBeatUpload();	
+			}
+			
+	
+			}			
+		uwb_app_poll();
 }
 void powerON_Task(void)
 {
@@ -327,14 +401,15 @@
     {   
         input5v_time=1;
         flag_secondtask = 1;
+			  open_gps_time++;
 			  #ifdef UWB_1_5HZ
 			  uwb_time_count++;
         #endif
-				uwb_offtime_count++;
+//				uwb_offtime_count++;
 			  if(uwb_offtime_count>60)
 				{
 				 uwb_offtime_count=0;
-				 current_state = STATE_SLEEP;
+//				 current_state = STATE_SLEEP;
 				}
         if(!read_5v_input_pca())
         {
@@ -357,6 +432,7 @@
 //        OpenUWB();
         }
 		 upload_apppoll();
+		 GPS_ONOFF_Task();
     }else{
         flag_secondtask = 0;
     }
@@ -647,7 +723,6 @@
 							case UWB_OPEN_COUNT:
 									 CloseUWB();
 							     UWBSendUDPTask();
-
 							break;
 							
 							case UWB_MEASUREMENT_INTERVAL:
@@ -656,7 +731,6 @@
 									 Uwb_init();
 									 OpenUWB();						
                    state_start_time = uwb_time_count;	
-							
 							break;						
 						}
             break;

--
Gitblit v1.9.3