1
WXK
2023-08-31 d1dd64aed4114f6d24fd2702d5dbe7844644aae4
APL/APL.c
@@ -99,10 +99,10 @@
/*******************************************************************************
 *                             Local Function                                  *
 *******************************************************************************/
extern void delay_ms(uint32_t nTimer)  ;
void PowerDownDetect(void)
{  
 static HIDO_UINT32 l_u32QXpowerTick = 0;
static uint32_t powercount=0;
   
    if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_9))
      {
@@ -188,6 +188,8 @@
 * Modified Date:    : 2018年7月23日
 *******************************************************************************/
extern uint32_t nomove_time;
extern void MX_Init(void);
extern  void SystemClock_Config(void);
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if(GPIO_Pin == GPIO_PIN_5)
@@ -211,10 +213,11 @@
    }
    
}
extern void Set4LEDColor_Off(void);
uint8_t lora_sendfinalbag_num;
void lora_sendfinalbag_Poll()
void Lora_Sendfinalbag_Poll()
{
if(lp_time-lora_sendfinalbag_time>10&&lora_sendfinalbag_flag)
if(lp_time-lora_sendfinalbag_time>4&&lora_sendfinalbag_flag)
    {
    lora_sendfinal_rx_bag_flag=1;
    Lora_SendData((HIDO_UINT8 *)GPS_final_data,GPS_final_changdu);  
@@ -266,6 +269,7 @@
 * Author            : 杜键
 * Modified Date:    : 2018年5月8日
 *******************************************************************************/
extern HIDO_UINT32 Battery_GetPercentage(void);
HIDO_INT32 APL_Init(void)
{
    //Power_GPS_LoraOn();
@@ -311,11 +315,13 @@
    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 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();
@@ -326,14 +332,14 @@
    }
if(nomove_flag==0)
{
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;
@@ -351,7 +357,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;
@@ -364,7 +369,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;
@@ -376,21 +380,20 @@
            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;
    }
}
else
{
        Power_GPS_LoraOff();
        l_eGPSState = GPS_OFF;
        uwbqiehuangps_flag=1;
}
    /* 拆卸告警 */
    if(IsDisassemblyAlarm())
    {