¶Ô±ÈÐÂÎļþ |
| | |
| | | #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; |
| | | } |
| | | |
| | | } |