#include "board.h"
|
#include "TCPClient.h"
|
#include "global_param.h"
|
#define GPS_OPEN_TIME_OUT 240
|
#define GPS_RESTART_TIME1 1200
|
#define GPS_RESTART_TIME2 120
|
#define GPS_RESTART_TIME3 60
|
#define GPS_OPEN_TIME_OUT1 600
|
extern uint16_t gps_wait_count;
|
uint8_t gps_power_state,gps_uwb_flag,gps_4g_flag,gps_timeout_flag,gps_need_data_flag = 1,gps_1h_open_flag=1;
|
extern uint8_t air780_success_state;
|
extern HIDO_INT32 l_i32TCPClientID;
|
extern double jd,wd;
|
void GPS_Poll(void)
|
{
|
|
if(gps_4g_flag||gps_uwb_flag) {
|
gps_power_state = 1; //´ò¿ªGPSµçÔ´
|
if(!gps_timeout_flag) {
|
if(gps_need_data_flag) {
|
gps_wait_count++;
|
if(gps_wait_count>=GPS_OPEN_TIME_OUT) { //³¬Ê±Çл»¹¤×÷״̬
|
gps_timeout_flag=1;//´®¿ÚÌí¼Ó¸Ä±ätimeoutÂß¼
|
gps_wait_count=0;
|
gps_need_data_flag=0;//Çл»Îª¹Ø±Õģʽ
|
}
|
} else {
|
gps_wait_count++;
|
gps_power_state=0;//¹Ø±ÕGPS
|
if(gps_wait_count>GPS_RESTART_TIME2) {
|
gps_power_state=1;//¿ªÆôGPS
|
gps_need_data_flag=1;
|
gps_wait_count=0;
|
}
|
}
|
} else { //³¬Ê±¹¤×÷״̬
|
if(gps_need_data_flag) {
|
gps_wait_count++;
|
if(gps_wait_count>=GPS_OPEN_TIME_OUT) { //³¬Ê±Çл»¹¤×÷״̬
|
gps_timeout_flag=1;
|
gps_need_data_flag=0;
|
gps_wait_count=0;
|
}
|
} else {
|
gps_wait_count++;
|
gps_power_state=0;//¹Ø±ÕGPS
|
if(gps_wait_count>GPS_RESTART_TIME1) {
|
gps_power_state=1;//¿ªÆôGPS
|
gps_need_data_flag=1;
|
gps_wait_count=0;
|
}
|
}
|
|
}
|
} else {
|
gps_power_state=0;//¹Ø±Õgps
|
gps_wait_count=0;
|
gps_timeout_flag=0;
|
gps_need_data_flag=1;
|
}
|
}
|
|
|
void GPS_Poll_1h(void)
|
{
|
|
if(gps_1h_open_flag) {
|
|
if(gps_need_data_flag) {
|
gps_power_state = 1; //´ò¿ªGPSµçÔ´
|
air780_success_state=1;//4GÁÁÆð
|
gps_wait_count++;
|
if(gps_wait_count>=GPS_OPEN_TIME_OUT1) { //³¬Ê±Çл»¹¤×÷״̬
|
gps_timeout_flag=1;//´®¿ÚÌí¼Ó¸Ä±ätimeoutÂß¼
|
gps_wait_count=0;
|
gps_need_data_flag=0;//Çл»Îª¹Ø±Õģʽ
|
TCPHeartBeatUpload();//ÉÏ´«GPS³¬Ê±ÎÞЧÊý¾Ý
|
}
|
} else {
|
gps_wait_count++;
|
gps_power_state=0;//¹Ø±ÕGPS
|
air780_success_state=0;//¹Ø±Õgps1234
|
if(gps_wait_count>GPS_RESTART_TIME3) {
|
gps_power_state=1;//¿ªÆôGPS
|
gps_need_data_flag=1;
|
gps_wait_count=0;
|
}
|
}
|
} else {
|
gps_power_state=0;//¹Ø±Õgps
|
gps_wait_count=0;
|
gps_timeout_flag=0;
|
gps_need_data_flag=1;
|
}
|
}
|
void GpsConrol(uint8_t flag_4g_uwb,uint8_t open_close)
|
{
|
if(gps_4g_flag==0&&gps_uwb_flag==0)
|
if(open_close)
|
{
|
gps_wait_count = 0;
|
gps_need_data_flag = 1;
|
gps_timeout_flag = 0;
|
}
|
if(flag_4g_uwb)
|
{
|
gps_4g_flag = open_close;
|
} else {
|
gps_uwb_flag = open_close;
|
}
|
|
}
|