WXK
2023-09-05 38ee5f2e88aeba329f35bae9cc0d455e4892a9d1
APL/APL.c
@@ -215,8 +215,9 @@
}
extern void Set4LEDColor_Off(void);
uint8_t lora_sendfinalbag_num;
void lora_sendfinalbag_Poll()
void Lora_Sendfinalbag_Poll()
{
//    Lora_SendData((HIDO_UINT8 *)GPS_final_data,GPS_final_changdu);
if(lp_time-lora_sendfinalbag_time>10&&lora_sendfinalbag_flag)
    {
    lora_sendfinal_rx_bag_flag=1;
@@ -224,13 +225,11 @@
    lora_sendfinalbag_time=lp_time;
    lora_sendfinalbag_num=lora_sendfinalbag_num+1;
        loraled=BLUE;
        powerled=LEDOFF;
        gpsled=LEDOFF;
        uwbled=LEDOFF;
        Set4LEDColor(powerled,loraled,gpsled,uwbled);
        HAL_Delay(100);
       Set4LEDColor_Off();
        if(lora_sendfinalbag_num>10)
        loraled=LEDOFF;
        Set4LEDColor(powerled,loraled,gpsled,uwbled);
        if(lora_sendfinalbag_num>4)
        {
        lora_sendfinal_rx_bag_flag=0;
        lora_sendfinalbag_flag=0;
@@ -289,7 +288,31 @@
    return HIDO_OK;
}
static uint8_t Input_5V_flag=0;
void Input_5V_Poll (void)
{
    if(IsTypecCActive() == HIDO_TRUE&&Input_5V_flag==0)
    {   Input_5V_flag=1;
        if(bat_percent>=90)
        {
        powerled=GREEN;
        Set4LEDColor(powerled,loraled,gpsled,uwbled);
//        HIDO_Debug("1111");
        }
        else
        {
        powerled=RED;
        Set4LEDColor(powerled,loraled,gpsled,uwbled);
//            HIDO_Debug("2222");
        }
    }
    if(IsTypecCActive() == HIDO_FALSE)
    {
    Input_5V_flag=0;
//    Set4LEDColor_Off();
//        HIDO_Debug("3333");
    }
}
/*******************************************************************************
 * Function Name     :
 * Description       :
@@ -315,11 +338,15 @@
    Lora_Poll();//lora接收函数
    if(nomove_flag==0)
{
   lora_sendfinalbag_Poll();//lora在gps成功获得位置坐标或者超过1分钟没有获得时发送gps最后一包数据的函数,之后1分钟(10s)发一次,除非lora收到消除标志位或者发送超过10次
   Lora_Sendfinalbag_Poll();//lora在gps成功获得位置坐标或者超过1分钟没有获得时发送gps最后一包数据的函数,之后1分钟(10s)发一次,除非lora收到消除标志位或者发送超过10次
}
if(Lora_IsIdle() == HIDO_TRUE)
Input_5V_Poll();
#if 1
    if((Lora_IsIdle() == HIDO_TRUE) && (GPS_IsIdle() == HIDO_TRUE)&&(lora_sendfinal_rx_bag_flag==0)
            && (IsTypecCActive() == HIDO_FALSE) /*&& (IsVibration() == HIDO_FALSE)*/)
    if(((Lora_IsIdle() == HIDO_TRUE)/*为了防止lora初始化的时候进入休眠*/
      && (GPS_IsIdle() == HIDO_TRUE)/*防止gps工作时进入休眠*/
      &&(lora_sendfinal_rx_bag_flag==0)//防止lora在2s等待接收的时候进入休眠
      && (IsTypecCActive() == HIDO_FALSE)) /*5v输入检测时不休眠*/||nomove_flag==1/*静止1小时立刻休眠。*/)
    {
//////    if(Lora_IsIdle() == HIDO_TRUE)
        Power_Sleep();
@@ -328,16 +355,16 @@
    else
    {
    }
if(nomove_flag==0)
if(nomove_flag==0&&(Lora_IsIdle() == HIDO_TRUE))
{
if(GPS_ON_flag)
{
    if(GPS_ON_flag)
    {
    /* 检查GPS定时 */
    switch(l_eGPSState)
    {
        case GPS_OFF:
        {
            if(lp_time-GPSDateTime > g_com_map[GPS_ONTIME] || IsVibration() == HIDO_TRUE||uwbqiehuangps_flag==1)
            if(lp_time-GPSDateTime > g_com_map[GPS_ONTIME] /*|| IsVibration() == HIDO_TRUE*/||uwbqiehuangps_flag==1)
            {
                uwbqiehuangps_flag=0;
                l_bIsVibration = HIDO_FALSE;
@@ -345,6 +372,12 @@
                Power_GPS_LoraOn();
                l_eGPSState = GPS_ON;
                GPSDateTime=lp_time;
                if(IsTypecCActive() == HIDO_FALSE)//如果有5v输入的话不关灯。
                {
                powerled=LEDOFF;
                Set4LEDColor(powerled,loraled,gpsled,uwbled);  //关一下电源灯,防止gps突然工作不进入休眠,电源灯常量
                }
            }
            break;
@@ -355,7 +388,6 @@
            {
                lora_sendfinalbag_flag=1;
                lora_sendfinal_rx_bag_flag=1;
//                lora_sendfinal_rx_time=lp_time;
                HIDO_Debug("GPS OFF\r\n");
                Power_GPS_LoraOff();
                l_eGPSState = GPS_OFF;
@@ -368,7 +400,6 @@
        {
            lora_sendfinalbag_flag=1;
            lora_sendfinal_rx_bag_flag=1;
//            lora_sendfinal_rx_time=lp_time;
            HIDO_Debug("GPS SUCCESS\r\n");
            Power_GPS_LoraOff();
            l_eGPSState = GPS_OFF;
@@ -380,21 +411,22 @@
            break;
        }
    }
}
else
{
    }
    else
    {
            Power_GPS_LoraOff();
            l_eGPSState = GPS_OFF;
            uwbqiehuangps_flag=1;
}
}
    if(nomove_flag==1)
    {
                Power_GPS_LoraOff();
                l_eGPSState = GPS_OFF;
//                uwbqiehuangps_flag=1;
//            uwbqiehuangps_flag=1;//如果放开,就是uwb切到gps会立刻工作一次,不放开就是就算uwb切换到gps也要判断是否过了一小时
    }
}
else
{
        Power_GPS_LoraOff();
        l_eGPSState = GPS_OFF;
        uwbqiehuangps_flag=1;
}
#ifndef UWB_OFF_FANGCHAI_ON
  #else
    /* 拆卸告警 */
    if(IsDisassemblyAlarm())
    {
@@ -406,6 +438,8 @@
        Beep_Off();
        fangchai_flag=0;
    }
  #endif
#endif
    return HIDO_OK;
}