From 0c4a7b78eee22326538b29c9a2ddf1c9e6ba0ae4 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期五, 20 九月 2024 11:17:44 +0800 Subject: [PATCH] 1小时上传,测试成功,GPS数据正常变化 --- keil/include/src/gps.c | 70 +++++++++++++++++++++++++--------- 1 files changed, 51 insertions(+), 19 deletions(-) diff --git a/keil/include/src/gps.c b/keil/include/src/gps.c index f93df90..67b4889 100644 --- a/keil/include/src/gps.c +++ b/keil/include/src/gps.c @@ -1,23 +1,25 @@ #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 3600 +#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; +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) - { - - if(!gps_timeout_flag) - { - if(gps_need_data_flag) - { - gps_power_state = 1; //打开GPS电源 + + 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) - { //超时切换工作状态 + if(gps_wait_count>=GPS_OPEN_TIME_OUT) { //超时切换工作状态 gps_timeout_flag=1;//串口添加改变timeout逻辑 gps_wait_count=0; gps_need_data_flag=0;//切换为关闭模式 @@ -25,20 +27,16 @@ } else { gps_wait_count++; gps_power_state=0;//关闭GPS - if(gps_wait_count>GPS_RESTART_TIME2) - { + 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_power_state = 1; //打开GPS电源 + if(gps_need_data_flag) { gps_wait_count++; - if(gps_wait_count>=GPS_OPEN_TIME_OUT) - { //超时切换工作状态 + if(gps_wait_count>=GPS_OPEN_TIME_OUT) { //超时切换工作状态 gps_timeout_flag=1; gps_need_data_flag=0; gps_wait_count=0; @@ -61,6 +59,40 @@ 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电源 + + 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 + + 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) -- Gitblit v1.9.3