From 0c4a7b78eee22326538b29c9a2ddf1c9e6ba0ae4 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期五, 20 九月 2024 11:17:44 +0800
Subject: [PATCH] 1小时上传,测试成功,GPS数据正常变化

---
 keil/include/main/main.c |  104 +++++++++++++++++++++++-----------------------------
 1 files changed, 46 insertions(+), 58 deletions(-)

diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index 6c8a0bf..b75f289 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -238,7 +238,7 @@
 }
 void MinuteTask(void)
 {
-    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
+    //adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
 }
 void SecondTask(void)
 {static uint8_t second_count;
@@ -249,7 +249,8 @@
     }
     //UWB更新列表
     TagListUpdate();
-    GPS_Poll();
+    //GPS_Poll();
+		GPS_Poll_1h();
     //UWB状态检测
 
     if(IfTCPConnected())
@@ -272,14 +273,14 @@
     HIDO_TimerTick();
     nomove_count++;
 }
-uint8_t flag_sleeptimer,flag_secondtask,secondtask_count;
+uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,delaysleep_count;
 static void sleep_timer_callback(void *dev, uint32_t time)
 {
-    IO_control_init();
+    //IO_control_init();
   //  UWBPoll();
     
     
-    MotorPoll();
+    //MotorPoll();
 
     if(secondtask_count++%2==0)
     {
@@ -290,26 +291,11 @@
 
     flag_sleeptimer = 1;
 
-    //马达震动逻辑
-    if(g_com_map[MOTOR_ENABLE])
-    {
-        if(motor_open_air_flag||moter_open_uwb_flag)
-        {
-           if (motor_count++%2==0)
-           {
-            motor_power_state = 1;
-           }else{
-            motor_power_state = 0;
-           }
-        } else {
-            motor_power_state=1;
-        }
-    }else{
-        motor_power_state=1;
-    }
- 
+    if(delaysleep_count>0)
+        delaysleep_count--;
     //GPS工作逻辑
-
+		
+update_led_power_state();//更新灯状态测试
 }
 static void voltage_input_handler(enum IO_PIN_T pin)
 {
@@ -319,15 +305,17 @@
 {
     nomove_count=0;
 }
-uint8_t flag_4G_recdata;
+uint8_t flag_4G_recdata,flag_entersleep;
 void _4gUsart_handler(enum IO_PIN_T pin)
 {
-    LOG_INFO(TRACE_MODULE_APP, "4G RX 唤醒\r\n");
-     flag_4G_recdata = 1;
+   // if(!gpio_pin_get_val(_4G_USART_RX_Pin))
+    {
+        LOG_INFO(TRACE_MODULE_APP, "4G RX 唤醒\r\n");
+        flag_4G_recdata = 1;
+        delaysleep_count = 3;
+    }
     
-    power_wakeup_disable((enum POWER_WAKEUP_SOURCE_T)_4G_USART_RX_Pin);
-    gpio_disable_irq(_4G_USART_RX_Pin);        
-    // AIR780EUartInit();
+   
 }
 extern uint16_t ip0,ip1,ip2,ip3,port;
 extern uint8_t gps_4g_flag;
@@ -433,7 +421,8 @@
 	 uart_close(UART_ID1);//解绑原来串口1
 	 uart_close(UART_ID0);//解绑原来串口0
 }
-uint8_t flag_4guart_needinit=0;
+uint8_t flag_4guart_needinit=0,tt2;
+extern uint8_t gps_need_data_flag;
 int main(void)
 {
     board_clock_run();
@@ -468,7 +457,7 @@
     // open system timer
     //sys_timer_open();
 
-    // TODO 4G
+//    // TODO 4G
     Uart_Register(UART_ID_4G, UART_ID0);
     Internet_Init();
     TCPClient_Init();
@@ -476,17 +465,20 @@
     gpio_open();
     //board_led_init();
 
-    adc_open(&usr_adc_cfg);
+//    adc_open(&usr_adc_cfg);
     IIC2_Init();
     Accelerometer_Init();
     IO_control_init();
+		#ifdef DEBUG_BOXING
     io_pin_mux_set(SCL_PIN, IO_FUNC0);//测试测距波形
     gpio_pin_set_dir(SCL_PIN , GPIO_DIR_OUT, 0);
     io_pull_set(SCL_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4);
+		#endif
     gps_air780_power_change(0,1);//开启gps,4G 
+		
 //加速度计初始化必须在IO_control_init之前因为复用SDA引脚
-    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
-    uart_open(UART_ID1, &test_uart_cfg);
+//    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
+    //uart_open(UART_ID1, &test_uart_cfg);
     Program_Init();
    // uart1_change_from_gps_to_debug();   
     //Uart1GpsRecDebugSend();   
@@ -495,26 +487,28 @@
 // Initialize low power mode
     power_init();
       AIR780E_Reset(); //4G模块重启,耗时1.5秒,这个是无法同步的关键
+			//gps_air780_power_change(0,0);//测试
     sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback);
     //sleep_timer_start(__MS_TO_32K_CNT(g_com_map[COM_INTERVAL]));//测试
     sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试
- //   board_5V_input_init(voltage_input_handler);
+    board_5V_input_init(voltage_input_handler);
     board_acceleration_detection_init(move_handler);
-//		 LOG_INFO(TRACE_MODULE_APP, "测试进入app");
-  board_4GUsart_detection_init(_4gUsart_handler);
+////		 LOG_INFO(TRACE_MODULE_APP, "测试进入app");
+    board_4GUsart_detection_init(_4gUsart_handler);
+//    tt2 = gpio_pin_get_val(_4G_USART_RX_Pin);
     while (1)
     {
-
         if(flag_TCP_reconnectting||IfTCPConnected())
         {
-        if(flag_4G_recdata==1)
+            if(flag_4G_recdata==1)
             {
                 flag_4G_recdata = 2;
+               
                 LOG_INFO(TRACE_MODULE_APP, "运行Socket_RecvAll\r\n");
                 Socket_RecvAll();
             }
             air780_led_on();
-LOG_INFO(TRACE_MODULE_APP, "处理4G\r\n");
+//LOG_INFO(TRACE_MODULE_APP, "处理4G\r\n");
             Internet_Poll();
             HIDO_ATLitePoll();
             HIDO_TimerPoll();
@@ -527,30 +521,24 @@
             SecondTask();
         }
         IdleTask();
-        //3种情况后都要发包和休眠
-        //if(send_flag){
-        //message_construct();
-        //send_udp;
-        //air780_success_state=0;//关闭4G成功发送灯
-        //blink_led(&air780_success_state);//成功测距闪烁4G状态灯
-        //air780_success_state=0;
-        //}
+ 
 #ifndef DEBUG_MODE
 //if(flag_sleeptimer)
        // if(!gpio_pin_get_val(INPUT_5V_Pin))//AIR780E_IsIPIdle() Socket_IsSendQueueEmpty(0)
       //  if(flag_4G_recdata!=2)
-        if(((IfTCPConnected()&&AIR780E_IsIPIdle()&&Socket_IsSendQueueEmpty(0))||!flag_TCP_reconnectting&&!IfTCPConnected())) //进入休眠条件(与关系,全满足才进):1.没有5V输入 2 TCP已连接时发送队列为空||TCP无连接时不在重连状态。
-        {   uint32_t lock;
-            flag_4guart_needinit = 1;
-                        Internet_Poll();
-            HIDO_ATLitePoll();
-            HIDO_TimerPoll();
-            TCPClient_Poll();
-            power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)_4G_USART_RX_Pin, POWER_WAKEUP_LEVEL_LOW);
-            LOG_INFO(TRACE_MODULE_APP, "进入休眠\r\n");
+        //if(((IfTCPConnected()&&AIR780E_IsIPIdle()&&Socket_IsSendQueueEmpty(0))||((!flag_TCP_reconnectting)&&!IfTCPConnected()))) //进入休眠条件(与关系,全满足才进):1.没有5V输入 2 TCP已连接时发送队列为空||TCP无连接时不在重连状态。
+        if(delaysleep_count==0&&!gps_need_data_flag) //GPS工作状态不休眠,4G接收中断唤醒后,延迟2秒再休眠
+        if(((IfTCPConnected()&&AIR780E_IsIPIdle()&&Socket_IsSendQueueEmpty(0))||((!flag_TCP_reconnectting)&&!IfTCPConnected()))) //进入休眠条件(与关系,全满足才进):1.没有5V输入 2 TCP已连接时发送队列为空||TCP无连接时不在重连状态。
+        {
+            uint32_t lock;
+            
+         //   power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)_4G_USART_RX_Pin, POWER_WAKEUP_LEVEL_LOW);
+            //LOG_INFO(TRACE_MODULE_APP, "进入休眠\r\n");
+           // delay_us(300000);
             trace_flush();
             lock = int_lock();            
             power_enter_power_down_mode(0);
+					uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
             int_unlock(lock);
         }
 #endif

--
Gitblit v1.9.3