| | |
| | | #define GPS_RESTART_TIME1 480 //10分钟 |
| | | #define GPS_RESTART_TIME2 48 //1分钟 |
| | | #define GPS_RESTART_TIME3 30 //30s |
| | | |
| | | #define GPS_VALID_LED_WAIT_COUNT 1 |
| | | #define GPS_INVALID_LED_WAIT_COUNT 5 |
| | | #define AIR_CONNECT_LED_WAIT_COUNT 5 |
| | | extern uint16_t gps_wait_count,g_com_map[COM_MAP_SIZE]; |
| | | extern uint8_t flag_first_TCPconnect; |
| | | extern uint16_t gps_wait_count2; |
| | | uint16_t g_spsum,g_snum,ave_sp; |
| | | uint8_t gps_power_state,gps_uwb_flag,gps_4g_flag,gps_timeout_flag,gps_need_data_flag = 1,gps_open_flag,gps_first_flag=1; |
| | | extern uint8_t gps_success_state,air780_success_state,power_low_flag,state5V_prase_flag,green_charge_state,enbale_blink_flag,active_flag; |
| | | typedef enum { |
| | | STATE_IDLE, |
| | | STATE_VALID, |
| | | STATE_INVALID |
| | | } GPSState; |
| | | typedef enum { |
| | | CONNECT, |
| | | DISCONNECT, |
| | | } LED4GState; |
| | | GPSState GPS_state=STATE_IDLE; |
| | | LED4GState LED_4g_state=DISCONNECT; |
| | | void GPS_Poll(void) |
| | | { |
| | | |
| | |
| | | } |
| | | update_led_power_state(); |
| | | } |
| | | void POWER_LED_Task(void) |
| | | { |
| | | if(enbale_blink_flag) |
| | | { |
| | | green_charge_state=0; |
| | | charge_red_on(); |
| | | } |
| | | charge_state_change();//充电状态判断 |
| | | if(enbale_blink_flag) |
| | | { |
| | | delay_us(5000); |
| | | green_charge_state=0; |
| | | charge_red_off(); |
| | | } |
| | | } |
| | | uint8_t wltag_gps_timer,wltag_4g_timer;; |
| | | void GPS_LED_Task(void) |
| | | { |
| | | |
| | | if(state5V_prase_flag||power_low_flag||!gps_power_state) |
| | | { |
| | | GPS_state=STATE_IDLE; |
| | | } |
| | | switch(GPS_state){ |
| | | case STATE_INVALID: |
| | | if(wltag_gps_timer++>=GPS_INVALID_LED_WAIT_COUNT) |
| | | { wltag_gps_timer=0; |
| | | blink_led(&gps_success_state); |
| | | } |
| | | break; |
| | | case STATE_VALID: |
| | | if(wltag_gps_timer++>=GPS_VALID_LED_WAIT_COUNT) |
| | | { wltag_gps_timer=0; |
| | | blink_led(&gps_success_state); |
| | | } |
| | | break; |
| | | case STATE_IDLE: |
| | | gps_led_off(); |
| | | wltag_gps_timer=0; |
| | | break; |
| | | } |
| | | } |
| | | void LED_4G_task(void) |
| | | { |
| | | |
| | | if(Internet_IsIPReady() == HIDO_TRUE&&!power_low_flag&&active_flag) |
| | | { |
| | | LED_4g_state=CONNECT; |
| | | }else{ |
| | | LED_4g_state=DISCONNECT; |
| | | } |
| | | switch(LED_4g_state){ |
| | | case CONNECT: |
| | | if(wltag_4g_timer++>=AIR_CONNECT_LED_WAIT_COUNT) |
| | | { wltag_4g_timer=0; |
| | | blink_led(&air780_success_state); |
| | | } |
| | | break; |
| | | case DISCONNECT: |
| | | air780_led_off(); |
| | | wltag_4g_timer=0; |
| | | break; |
| | | } |
| | | } |
| | | void LED_Task(void) |
| | | { |
| | | POWER_LED_Task(); |
| | | LED_4G_task(); |
| | | GPS_LED_Task(); |
| | | } |
| | | HIDO_INT32 GPS_ParseGSV(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len) |
| | | { |
| | | HIDO_DataStruct spower[4]; |