diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -42,7 +42,9 @@ int main(void) uint16_t blink_rate = BLINK_FAST; uint8_t state = SYSTEM_GPSACQ; - uint32_t fixinfo_timer = 0; + uint32_t gps_polltimer = 0; + uint32_t fix_acq_starttime = 0; + uint8_t fix_ok = 0; uint8_t numsats = 0; @@ -50,11 +52,11 @@ int main(void) { // Update fix status every 2 seconds - if(HAL_GetTick() - fixinfo_timer > 2000) + if(HAL_GetTick() - gps_polltimer > 2000) { if(gps_ison()) gps_update_data(); - fixinfo_timer = HAL_GetTick(); + gps_polltimer = HAL_GetTick(); } @@ -81,8 +83,10 @@ int main(void) blink_rate = BLINK_FAST; if(!gps_ison()) + { + fix_starttime = HAL_GetTick(); gps_poweron(); // power on and initialize GPS module - + } if(gps_getdata()->fixtype > 0 && gps_getdata()->pdop < 5) { @@ -94,12 +98,14 @@ int main(void) // TODO: Set RTC for countdown to next transmission timeslot! // TODO: Set wspr countdown timer for this transmission! + fix_acq_starttime = 0; state = SYSTEM_WSPRTX; } -// else if(fix_timeout) - // { - // // Flash error code and go to idle probably? or just try forever? - // } + else if(HAL_GetTick() - fix_acq_starttime > 60000) + { + // Flash error code and go to idle probably? or just try forever? + led_blink(4); + } } break;