keil/include/main/main.c
@@ -181,7 +181,7 @@
        {
            bat_percent = 0;
        }
        else if(fVoltage_mv > 4200)
        else if(fVoltage_mv > 4100)
        {
            bat_percent = 100;
        }
@@ -317,15 +317,21 @@
        keystarttime2 =  HIDO_TimerGetTick();
    }
}
uint8_t guanjiflag_count=0;
void MinuteTask(void)
{
    PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
    delay_ms(100);
    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
    if(bat_percent<1)
    {
      guanjiflag_count++;
    }
}
void SecondTask(void)
{   static uint8_t second_count;
    if(second_count++>120)
    if(second_count++>60)
    {
        second_count = 0;
        MinuteTask();
@@ -359,11 +365,46 @@
//      nomove_count=g_com_map[NOMOVESLEEP_TIME]+1;
//      }
}
void led_offtask()
{
    if(ledonflag==1)
    {
        ledonflag=0;
        uwbled=0;
        rtkled=0;
        led4g=0;
        powerled=0;
        Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);
    }
}
uint16_t led_flag;
void Led_Task()
{
    if(led_flag==1)
    {
       led_flag=0;
        if(DBG_GetMode() == DBG_MODE_SHELL)
        {
            if(bat_percent>15)
            {
                powerled = BLUE;
            } else {
                powerled = RED;
            }
            ledonflag=1;
            Set4LEDColor(uwbled,rtkled,led4g,powerled);
        }
    }
}
uint8_t tt=1;
uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag;
uint8_t uwb_offtime_count=0;
uint8_t input5v_time;
extern uint8_t taglist_num;
uint8_t gps_ntripsend;
extern uint8_t uwb_OpenClose_flag;
static void sleep_timer_callback(void *dev, uint32_t time)
@@ -373,7 +414,8 @@
    {
        input5v_time=1;
        flag_secondtask = 1;
        if(g_com_map[UWBFrequency]>1)
        led_flag=1;
        if(g_com_map[UWBFrequency]>1||current_state==STATE_SLEEP)
        {
            uwb_time_count++;
        }
@@ -397,8 +439,9 @@
            Set4LEDColor(uwbled,rtkled,led4g,powerled);
//        uart_send(UART_ID1, ceshidata, 50,NULL);
        }
        input5v_time=1;
        if(taglist_num==0&&g_com_map[UWBFrequency]==1&&g_com_map[UWBENBLE]==1&&uwb_OpenClose_flag==1)
        if(taglist_num==0&&g_com_map[UWBFrequency]==1&&g_com_map[UWBENBLE]==1&&uwb_OpenClose_flag==1&&current_state == STATE_NORMAL)
        {
            CloseUWB();
            Uwb_init();
@@ -543,8 +586,8 @@
    }
    g_com_map[MODBUS_MODE] = 0;
    log_4g_enable_flag=g_com_map[LOG_4G_ENABLE];
    g_com_map[VERSION] = (2<<8)|4;
    log_4g_enable_flag =1;//g_com_map[LOG_4G_ENABLE];
    g_com_map[VERSION] = (2<<8)|14;
    LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
@@ -650,8 +693,10 @@
                }
                Internet_Poll();
                HIDO_TimerPoll();
                HIDO_ATLitePoll();
                HIDO_ATLitePoll();
                TCPClient_Poll();
                Led_Task();
                if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
                {
                    TCPClient_Poll_1();
@@ -661,6 +706,8 @@
                    flag_secondtask = 0;
                    SecondTask();
                }
                led_offtask();
                UserKeyTask();
            }
            UART_CheckReceive();
@@ -671,7 +718,7 @@
            }
            if(DBG_GetMode() == DBG_MODE_SHELL)
            {
                Set4LEDColor(uwbled,rtkled,led4g,powerled);
//                Set4LEDColor(uwbled,rtkled,led4g,powerled);
                if(g_com_map[CNT_RESTART]==1)
                {
                    g_com_map[CNT_RESTART]=0;
@@ -722,15 +769,15 @@
//                    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);
//            //关闭电源前检查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);//低电平关闭
//            PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
            PCA9555_Close_Power();
        }
    }
@@ -746,20 +793,20 @@
        NVIC_SystemReset();
    }
    HIDO_TimerPoll();
    if(ledonflag==1)
    {
        ledonflag=0;
        uwbled=0;
        rtkled=0;
        led4g=0;
        powerled=0;
        Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);
    }
//    if(ledonflag==1)
//    {
//        ledonflag=0;
//        uwbled=0;
//        rtkled=0;
//        led4g=0;
//        powerled=0;
//        Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);
//    }
    if(bat_percent<5&&jiancebat_percent_flag)
    {
        WT588E_PLAY(14);
    }
    if(bat_percent<1&&bat_percent_only_one&&jiancebat_percent_flag)
    if(bat_percent<1&&bat_percent_only_one&&jiancebat_percent_flag&&(guanjiflag_count>9))
    {
        WT588E_PLAY(15);
        userkey_state=3;
@@ -777,11 +824,12 @@
        Set4LEDColor(uwbled,rtkled,led4g,powerled);
        if(HIDO_TimerGetTick() - guanjiflagtime>3)
        {
            PCA9555_Set_One_Value_Output(TTS_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);     //低电平关闭
//            PCA9555_Set_One_Value_Output(TTS_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);     //低电平关闭
            PCA9555_Close_Power();
        }
    }
@@ -806,6 +854,7 @@
uint8_t GPS_UPLOAD_FLAG=0;
uint32_t elapsed_time_jibu;
extern uint8_t uwb_OpenClose_flag;
uint8_t uwb_close_count,uwb_close_count1;
void upload_apppoll()
{
@@ -839,6 +888,7 @@
        case UWB_OPEN_COUNT:
            CloseUWB();
            UWBSendUDPTask();
//            uwb_close_count++;
            break;
        case UWB_MEASUREMENT_INTERVAL_SLEEP:
@@ -847,6 +897,7 @@
            Uwb_init();
            OpenUWB();
            state_start_time = uwb_time_count;
//            uwb_close_count1++;
            break;
        }
    }
@@ -1028,6 +1079,8 @@
        }
        IMUTask();
        IdleTask();
//        PCA9555_low_power_consumption();
        check_step_and_update_state();
        led_offtask();
    }
}