WXK
2024-04-11 522729fd4556d05b61607789ae5a0282c23ef776
APL/App.c
@@ -191,6 +191,7 @@
extern uint8_t bat_percent;
extern uint8_t chargedbg_flag;
u8 power_state = 0,chargeon = 0;
uint8_t chongman_flag;
void PowerLedTask(void)
     static u8 powerled_state=0;
@@ -202,12 +203,30 @@
            power_state = 1;
        }
       while(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&DBG_GetMode() == DBG_MODE_CHARGE)
    {
        {
        DBG_Poll();
         IdleTask();
     }
        IdleTask();
        uwbled=LEDOFF;
        Internet_Poll();
        HIDO_TimerPoll();
        HIDO_ATLitePoll();
        UDPClient_Poll();
            if(bat_percent>90)
            {
                powerled = RED;
                gpsled = LEDOFF;
                uwbled = LEDOFF;
                loraled = LEDOFF;
                chongman_flag=1;
            }
            else
            {
                powerled = RED;
            }
        }
    }
    chongman_flag=0;
    chargeon = 0;
   if(power_state)
    {              
@@ -235,7 +254,7 @@
    //deca_sleep(1000);
    g_com_map[GROUP_ID]=0;
   g_com_map[VERSION] = (1<<8)|1;
   g_com_map[VERSION] = (1<<8)|7;
    if (g_com_map[COM_INTERVAL] <50)
    {
@@ -432,11 +451,185 @@
        }
        fangchai_flag=1;
        yundong_state=0;
        if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
        {
            if(bat_percent>90)
            {
                powerled = RED;
                gpsled = LEDOFF;
                uwbled = LEDOFF;
                loraled = LEDOFF;
                chongman_flag=1;
            }
            else
            {
                powerled = RED;
            }
        }
        else
        {chongman_flag=0;}
        GPS_Poll();
        Internet_Poll();
        HIDO_TimerPoll();
        HIDO_ATLitePoll();
        UDPClient_Poll();
        if(fangchai_time>g_com_map[CHAICHUGPS_HZ])
        {
            fangchai_time=0;
            if(GPS_successful_flag)
            {
                UDPClient_UploadGPS((char*)GPS_data);
            }
            else
            {
                Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL);
            }
        }
    }
    else//设备没被拆卸
    {
        fangchai_flag=0;
        if(fangchai_state>=2)
        {
            HAL_NVIC_SystemReset();
        }
        if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))//5V输入检测
        {   yundong_state=0;
            PowerLedTask();
            DBG_Poll();
            IdleTask();
            Internet_Poll();
            HIDO_TimerPoll();
            HIDO_ATLitePoll();
            UDPClient_Poll();
            uwbled=LEDOFF;
        }
        else//没有5V输入
        {
            if(nomove_flag)//静止状态
            {
                yundong_state=0;
                Stop_Mode_Poll();
                HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
            }
            else//运动状态
            {
                if(yundong_state==0)
                {Radio.Rx(0);}
                yundong_state=1;
                GPS_Poll();
                Internet_Poll();
                HIDO_TimerPoll();
                HIDO_ATLitePoll();
                UDPClient_Poll();
//                taglist_num=5;
                if(taglist_num>0)
                {
                    if(air780_state>=2)
                    {
                        HAL_NVIC_SystemReset();
                    }
                    if(yundong_time>=YUNDONG_UWB_TIME)
                    {
                        air780_state=0;
                        yundong_time=0;
                        Uwb_Zubao_Poll();
                        HexToAsciiSendUDP(uwb_send,19+5*taglist_num);
//                        loraled=BLUE;
                        taglist_num=0;
                    }
                }
                else
                {
                    if(g_com_map[GPS_HZ]==1)
                    {
                        if(yundong_time>=g_com_map[GPS_HZ])
                        {
                            yundong_time=0;
                            if(GPS_successful_flag)
                            {
                                UDPClient_UploadGPS((char*)GPS_data);
//                                loraled=GREEN;
                            }
                            else
                            {
                                Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL);
//                                loraled=WHITE;
                            }
                        }
                    }
                    else
                    {
                        if(yundong_time>=60&&air780_state==0)
                        {
                            air780_state=1;
                            yundong_time=0;
                            if(GPS_successful_flag)
                            {
                                UDPClient_UploadGPS((char*)GPS_data);
//                                loraled=GREEN;
                            }
                            else
                            {
                                Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL);
//                                loraled=WHITE;
                            }
                        }
                        if(yundong_time>=30&&air780_state==1)
                        {
                            air780_state=2;
                            yundong_time=0;
                            Stop_Mode_chulelora_Poll();
                        }
                        if(air780_state==2)
                        {
                            HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
                        }
                        if(yundong_time>=g_com_map[GPS_HZ]-60&&air780_state==2)
                        {
                            HAL_NVIC_SystemReset();
                        }
                    }
                }
            }
        }
    }
}
/*
void Main_Poll()
{
    u16 uwbchecksum;
    IdleTask();
    if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1)) // 设备被拆卸
    {
        if(air780_state>=2)
        {
            HAL_NVIC_SystemReset();
        }
        fangchai_flag=1;
        yundong_state=0;
        if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
        {
            if(bat_percent>90)
            {
                powerled = RED;
                gpsled = LEDOFF;
                uwbled = LEDOFF;
                loraled = LEDOFF;
                chongman_flag=1;
            }
            else
            {
                powerled = RED;
            }
        }
        else
        {chongman_flag=0;}
        if(fangchai_state==0||fangchai_state==1)
        {
//            PowerLedTask();
//            DBG_Poll();
//            IdleTask();
            GPS_Poll();
            Internet_Poll();
            HIDO_TimerPoll();
@@ -450,12 +643,10 @@
            if(GPS_successful_flag)
            {
                UDPClient_UploadGPS((char*)GPS_data);
                loraled=GREEN;
            }
            else
            {
                Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL);
                loraled=YELLOW;
            }
        }
        if(fangchai_time>DENGDAI_TIME&&fangchai_state==1)
@@ -489,6 +680,7 @@
            HIDO_TimerPoll();
            HIDO_ATLitePoll();
            UDPClient_Poll();
            uwbled=LEDOFF;
        } 
        else//没有5V输入
        {
@@ -521,7 +713,7 @@
                        yundong_time=0;
                        Uwb_Zubao_Poll();
                        HexToAsciiSendUDP(uwb_send,19+5*taglist_num);
                        loraled=BLUE;
//                        loraled=BLUE;
                        taglist_num=0;
                    }
                }
@@ -535,12 +727,12 @@
                            if(GPS_successful_flag)
                            {
                                UDPClient_UploadGPS((char*)GPS_data);
                                loraled=GREEN;
//                                loraled=GREEN;
                            }
                            else
                            {
                                Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL);
                                loraled=WHITE;
//                                loraled=WHITE;
                            }
                        }
                    }
@@ -553,12 +745,12 @@
                            if(GPS_successful_flag)
                            {
                                UDPClient_UploadGPS((char*)GPS_data);
                                loraled=GREEN;
//                                loraled=GREEN;
                            }
                            else
                            {
                                Module_GetLBSLocationAsync(LBSLocationCallback, HIDO_NULL);
                                loraled=WHITE;
//                                loraled=WHITE;
                            }
                        }
                        if(yundong_time>=30&&air780_state==1)
@@ -581,3 +773,5 @@
        }
    }
}
*/
//以上是源代码,被拆除时间接性关闭4G