keil/include/main/main.c
@@ -139,21 +139,22 @@
uint8_t onlyoneflag=1;
void mcu_deep_sleep(void)
{
  //  char str[19]= {"AT+POWERMODE=ST\r\n"};
                uint32_t lock;
   // uart_send(UART_ID0, str,19, NULL);
            trace_flush();
            lock = int_lock();
//                  LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n");
//                  gps_air780_power_change(0,0);//关闭gps,4G 
            PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
            PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G
            PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps
//            PCA9555_Set_One_Value_Output(TTS_ENABLE,0);
//            gpio_pin_get_val(PCA_INPUT_DETECT);
            PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G
//            PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭4G AT+CPOWD
         sleep_timer_stop();
//            delay_ms(200);
//            delay_ms(1);
           if(!gpio_pin_get_val(PCA_INPUT_DETECT))
            {
            return;
@@ -213,7 +214,7 @@
uint32_t keystarttime,keystarttime2,keystarttime3;
extern uint32_t get_in_num,get_out_num;
uint8_t flag_4G_recdata;
uint8_t ledonflag;
uint8_t ledonflag,_4gclose_flag;
uint32_t ledontime;
extern uint8_t flag_first_TCPconnect;
void IMUTask(void)
@@ -227,17 +228,26 @@
        userkey_state=4;
        heartbeasend_flag = 1;
        sleepflag=1;
        sleepflagtime=HIDO_TimerGetTick();
        }
   }
    if(sleepflag)
    {
     if(HIDO_TimerGetTick() - sleepflagtime>3)
     {
      power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
      mcu_deep_sleep();
     }
        if(HIDO_TimerGetTick() - sleepflagtime>1)
         {
            if(!_4gclose_flag)
            {
                _4gclose_flag = 1;
                PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
            }
         }
        if(HIDO_TimerGetTick() - sleepflagtime>3)
         {
            power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
            mcu_deep_sleep();
         }
    }
}
void powerON_Task(void)
@@ -570,7 +580,7 @@
//      }
    g_com_map[MODBUS_MODE] = 0;
      log_4g_enable_flag=g_com_map[LOG_4G_ENABLE];
    g_com_map[VERSION] = (1<<8)|27;
    g_com_map[VERSION] = (1<<8)|30;
          
        
    LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
@@ -581,6 +591,11 @@
    LOG_INFO(TRACE_MODULE_APP,"设备UWB工作间隔: %x .\r\n",g_com_map[UWBFrequency]);
    LOG_INFO(TRACE_MODULE_APP,"设备GPS工作间隔: %x .\r\n",g_com_map[GPSFrequency]);
    LOG_INFO(TRACE_MODULE_APP,"当前GPS工作波特率: %d .\r\n",gpsbaudrate1);
    #ifdef _4G_115200
    LOG_INFO(TRACE_MODULE_APP,"当前4G波特率: 115200.\r\n");
    #else
    LOG_INFO(TRACE_MODULE_APP,"当前4G波特率: 9600.\r\n");
    #endif
//    LOG_INFO(TRACE_MODULE_APP,"充电是否开机标志位: %d .\r\n",g_com_map[URT_BQ]);
    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
    {
@@ -673,8 +688,8 @@
                            HIDO_TimerPoll();
                            HIDO_ATLitePoll();
                            TCPClient_Poll();
//                            if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
//                            {TCPClient_Poll_1();}
                            if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
                            {TCPClient_Poll_1();}
                            if(flag_secondtask)
                            {
                                flag_secondtask = 0;
@@ -717,19 +732,39 @@
            }
            else 
            {
                if(state5v==1)
//                if(state5v==1)
//                {
//                    g_com_map[MODBUS_MODE] = 0;
//                    state5v=0;
//                    state5V_prase_flag=state5v;
//                    gps_prase_flag=1;//恢复gps解析
//                    uart1_change_from_debug_to_gps();//测试
//    //                PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
//                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);//低电平关闭
//                                delay_us(1000000);
//
//                }
               if(state5v==1)
                {
                    g_com_map[MODBUS_MODE] = 0;
                    state5v=0;
                    state5V_prase_flag=state5v;
                    gps_prase_flag=1;//恢复gps解析
                    uart1_change_from_debug_to_gps();//测试
    //                PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
//                    gps_prase_flag=1;//恢复gps解析
//                    uart1_change_from_debug_to_gps();//测试
    //                PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
                    //保留串口输出到debug口这样可以看到看门狗的复位
                //关闭电源前检查PCA输出脚的电平保证不供电在关闭电源脚
                PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
                PCA9555_Set_One_Value_Output(TTS_ENABLE,0);
                PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
                PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS
                delay_ms(200);
                PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
                                delay_us(1000000);
                                  
                }
            }
@@ -960,10 +995,10 @@
//       NTRIPClient_Init();
//       NTRIPApp_Init();
//    }
//    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
//    {
//        TCPClient_Init_1();
//    }
    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
    {
        TCPClient_Init_1();
    }
//    HTTPClient_Init();
    wdt_open(WDT_ID0,&app_wdt_cfg);//30s检测喂狗
    LED_output_init();//配置彩色灯引脚
@@ -1021,10 +1056,10 @@
        HIDO_ATLitePoll();
        TCPClient_Poll();
        wdt_ping(WDT_ID0);//喂狗
//        if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
//        {
//            TCPClient_Poll_1();
//        }
        if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
        {
            TCPClient_Poll_1();
        }
        if(flag_secondtask)
        {
            flag_secondtask = 0;