From 3ec132c58bc4130f79390cebca35c176173cb67c Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期三, 12 三月 2025 15:23:26 +0800
Subject: [PATCH] 11111111111111

---
 keil/include/main/main.c |  146 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 94 insertions(+), 52 deletions(-)

diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index 67238fe..83aa6e0 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -135,7 +135,7 @@
     .flow = UART_FLOW_CONTROL_NONE,
     .rx_level = UART_RXFIFO_CHAR_1,
     .tx_level = UART_TXFIFO_EMPTY,
-    .baud = BAUD_9600,
+    .baud = BAUD_115200,
 #if (TEST_UART_MODE == TEST_UART_POLL_MODE)
     .dma_en = false,
     .int_rx = false,
@@ -166,7 +166,7 @@
 							sleep_timer_stop();	
 						//adc_close();
             power_enter_power_down_mode(1);
-						//LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n");
+						LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n");
 						sys_reset(0);
             int_unlock(lock);
 }
@@ -254,8 +254,11 @@
               Set4LEDColor(uwbled,rtkled,led4g,powerled);
             delay_ms(500);
             keystarttime =  HIDO_TimerGetTick();
-            PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
             PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
+            PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+            PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS
+            PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
+
         }
 //        if(HIDO_TimerGetTick() - keystarttime2>10)
 //        {
@@ -309,9 +312,9 @@
         second_count = 0;
         MinuteTask();
     }
-//    //UWB状态检测
-//if(!power_low_flag)//低供电下不需要检测重连
-//	{
+    //UWB状态检测
+if(!power_low_flag)//低供电下不需要检测重连
+	{
     if(IfTCPConnected())
     {
         TCP_reconnect_timer =0;
@@ -329,7 +332,7 @@
         }
 
     }
-//	}
+	}
     HIDO_TimerTick();
 //		if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出
     nomove_count++;
@@ -340,10 +343,13 @@
 uint8_t tt=1;
 uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag;
 uint8_t uwb_enable_flag=0;
+uint8_t input5v_time;
+extern uint8_t taglist_num;
 static void sleep_timer_callback(void *dev, uint32_t time)
 {
 if(secondtask_count++%2==0)
-    {
+    {   
+        input5v_time=1;
         flag_secondtask = 1;
         if(!read_5v_input_pca())
         {
@@ -357,29 +363,41 @@
 //        ledontime=HIDO_TimerGetTick();
         Set4LEDColor(uwbled,rtkled,led4g,powerled); 
         }
+        input5v_time=1;
+        if(taglist_num==0)
+        {
+        CloseUWB();
+        Uwb_init();
+        OpenUWB();
+        }
     }else{
         flag_secondtask = 0;
     }
  if(delaysleep_count>0)
      delaysleep_count--;
 }
+uint8_t test11,test21,test31,test41,test51;
 static void pca_handler(enum IO_PIN_T pin)
 {
 	PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
 	uint16_t gpio_state;
 	gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1];
+    test41++;
 	if(WAKE_UP_POSITION&gpio_state)
 	{
 		nomove_count=0;
+        test11++;
 	}
-	if(!(MAIN_RI_POSITION&gpio_state))
-	{
-		 flag_4G_recdata = 1;
-     delaysleep_count = 3;
-	}
+//	if(!(MAIN_RI_POSITION&gpio_state))
+//	{
+//		 flag_4G_recdata = 1;
+//     delaysleep_count = 3;
+//        test21++;
+//	}
     if((PWR_ON_POSITION&gpio_state))
 	{
         PowerTask();
+        test31++;
 	}
 }
 
@@ -397,6 +415,7 @@
     Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为
     parameter_init_anchor();//g_com_map表初始化角色默认为基站
     dev_id=g_com_map[DEV_ID];//这里不太对
+    g_com_map[GROUP_ID]=9;
     group_id=g_com_map[GROUP_ID];//组ID
 //    tag_frequency = 1000/g_com_map[COM_INTERVAL];//测距频率这个存的是测距时间
     memcpy(&disoffset,&g_com_map[DIST_OFFSET],2);
@@ -429,7 +448,7 @@
     ip2 = (g_com_map[TCP_IP_2]>>12&0xf)*1000+(g_com_map[TCP_IP_2]>>8&0xf)*100+(g_com_map[TCP_IP_2]>>4&0xf)*10+(g_com_map[TCP_IP_2]&0xf);
     ip3 = (g_com_map[TCP_IP_3]>>12&0xf)*1000+(g_com_map[TCP_IP_3]>>8&0xf)*100+(g_com_map[TCP_IP_3]>>4&0xf)*10+(g_com_map[TCP_IP_3]&0xf);
     port = g_com_map[TCP_PORT];
-    g_com_map[VERSION] = (1<<8)|0;
+    g_com_map[VERSION] = (1<<8)|3;
     LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
     LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
     LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port);
@@ -451,39 +470,54 @@
                 uart1_change_from_gps_to_debug();//测试
                 PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入
             } 
-//            chongman_time=0;
-//            only_one_flag=0;
-//            uwbled=0;
-//            rtkled=0;
-//            led4g=0;
-//            powerled=0;
-//            while(read_5v_input_pca())
-//            {
-//                nomove_count = 0;
-//                if(HIDO_TimerGetTick()-adctick>6000)  //10分钟采样一次 电量
-//                {
-//                    chongman_time=chongman_time+6;
-//                    adctick = HIDO_TimerGetTick();
-//                    PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
-//                    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
-//                }
-//                if(bat_percent>=99&&!only_one_flag)
-//                {
-//                only_one_flag=1;
-//                chongman_time=0;
-//                }
-//                if(bat_percent>=99&&chongman_time>=1800)
-//                {
-//                    powerled = GREEN;
-//                }else{
-//                    powerled = RED;
-//                }
-//                UART_CheckReceive();
-//                delay_ms(100);
-//                Internet_Poll();
-//                Set4LEDColor(0,0,0,powerled);
-//            }
-//            NVIC_SystemReset();
+            chongman_time=0;
+            only_one_flag=0;
+            uwbled=0;
+            rtkled=0;
+            led4g=0;
+            powerled=0;
+//            PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+            while(1)
+            {
+                nomove_count = 0;
+                if(HIDO_TimerGetTick()-adctick>6000)  //10分钟采样一次 电量
+                {
+                    chongman_time=chongman_time+6;
+                    adctick = HIDO_TimerGetTick();
+                    PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
+                    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
+                }
+                if(bat_percent>=99&&!only_one_flag)
+                {
+                only_one_flag=1;
+                chongman_time=0;
+                }
+                if(bat_percent>=99&&chongman_time>=1800)
+                {
+                    powerled = GREEN;
+                }else{
+                    powerled = RED;
+                }
+                UART_CheckReceive();
+                Internet_Poll();
+                HIDO_TimerPoll();
+                HIDO_ATLitePoll();
+                TCPClient_Poll();
+                if(flag_secondtask)
+                {
+                    flag_secondtask = 0;
+                    SecondTask();
+                }
+                Set4LEDColor(0,0,0,powerled);
+                if(input5v_time)
+                {
+                if(!read_5v_input_pca())
+                {
+                break;
+                }
+                }
+            }
+            NVIC_SystemReset();
             input5vflag=1;
 		}
         else 
@@ -519,6 +553,10 @@
         if(ledonflag==1)
         {
         ledonflag=0;
+        uwbled=0;
+        rtkled=0;
+        led4g=0;
+        powerled=0;
         Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); 
         }
 }
@@ -540,7 +578,7 @@
 int tt2;
 int test1,test3;
 uint32_t test4;
-
+extern uint8_t receive_flag;
 int main(void)
 {
     board_clock_run();
@@ -579,10 +617,10 @@
     Internet_Init();
     TCPClient_Init();
     gpio_open();
-		LED_output_init();//配置彩色灯引脚
-		IIC2_Init();
+    LED_output_init();//配置彩色灯引脚
+    IIC2_Init();
     Accelerometer_Init();
-		PCA9555_init();
+    PCA9555_init();
  
 		
 		//AIR780E_Reset(); 
@@ -619,10 +657,14 @@
 		//board_4GUsart_detection_init(_4gUsart_handler);
 		Uwb_init();
 		OpenUWB();
+//                        state5v=1;
+//                state5V_prase_flag=state5v;
+//                gps_prase_flag=0;//解除gps解析
+//                uart1_change_from_gps_to_debug();//测试
+//                PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入
     while (1)
     { 
 		uwb_app_poll();
-//		Air780eTask();
         Internet_Poll();
         HIDO_TimerPoll();
         HIDO_ATLitePoll();

--
Gitblit v1.9.3