From cfb54f9133de1376b6d7dc728770c3b87510adad Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期二, 27 八月 2024 17:36:47 +0800 Subject: [PATCH] 1 --- keil/include/src/gps.c | 72 ++++++++++++++++++++++++++++++++++++ 1 files changed, 72 insertions(+), 0 deletions(-) diff --git a/keil/include/src/gps.c b/keil/include/src/gps.c new file mode 100644 index 0000000..ed5a68e --- /dev/null +++ b/keil/include/src/gps.c @@ -0,0 +1,72 @@ +#include "board.h" +#define GPS_OPEN_TIME_OUT 240 +#define GPS_RESTART_TIME1 1200 +#define GPS_RESTART_TIME2 120 + +extern uint16_t gps_wait_count; +uint8_t gps_power_state,gps_uwb_flag,gps_4g_flag = 1,gps_timeout_flag,gps_need_data_flag = 1; +void GPS_Poll(void) +{ + + if(gps_4g_flag||gps_uwb_flag) { + + 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 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; + } + +} \ No newline at end of file -- Gitblit v1.9.3