From: Keith Packard Date: Sun, 13 Nov 2011 02:52:02 +0000 (-0800) Subject: altos: Allow TT/TBT reports to escape landed state X-Git-Tag: 1.0.9.4~73 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=d3dcb9451f40506abced72783966104645a73bc7 altos: Allow TT/TBT reports to escape landed state The TM altitude reporting code kept beeping out state and altitude forever, which isn't very useful on TBT or TT. Signed-off-by: Keith Packard --- diff --git a/src/core/ao_report.c b/src/core/ao_report.c index 70f0b49d..7c928792 100644 --- a/src/core/ao_report.c +++ b/src/core/ao_report.c @@ -99,14 +99,10 @@ ao_report_altitude(void) agl /= 10; } while (agl); - for (;;) { - ao_report_beep(); - i = ndigits; - do - ao_report_digit(digits[--i]); - while (i != 0); - pause(AO_SEC_TO_TICKS(5)); - } + i = ndigits; + do + ao_report_digit(digits[--i]); + while (i != 0); } #if HAS_IGNITE_REPORT @@ -159,9 +155,14 @@ ao_report(void) { ao_report_state = ao_flight_state; for(;;) { - if (ao_flight_state == ao_flight_landed) - ao_report_altitude(); ao_report_beep(); + if (ao_flight_state == ao_flight_landed) { + ao_report_altitude(); +#if HAS_FLIGHT + ao_delay(AO_SEC_TO_TICKS(5)); + continue; +#endif + } #if HAS_IGNITE_REPORT if (ao_flight_state == ao_flight_idle) ao_report_continuity(); @@ -173,11 +174,10 @@ ao_report(void) pause(AO_MS_TO_TICKS(100)); } #endif - __critical { - while (ao_report_state == ao_flight_state) - ao_sleep(DATA_TO_XDATA(&ao_flight_state)); - ao_report_state = ao_flight_state; - } + + while (ao_report_state == ao_flight_state) + ao_sleep(DATA_TO_XDATA(&ao_flight_state)); + ao_report_state = ao_flight_state; } }