#define mid(time) ao_beep_for(AO_BEEP_MID, time)
#define high(time) ao_beep_for(AO_BEEP_HIGH, time)
#else
-#define low(time) ao_led_for(AO_LED_RED, time)
-#define mid(time) ao_led_for(AO_LED_RED|AO_LED_GREEN, time)
-#define high(time) ao_led_for(AO_LED_GREEN, time)
+#define low(time) ao_led_for(AO_LED_GREEN, time)
+#define mid(time) ao_led_for(AO_LED_RED, time)
+#define high(time) ao_led_for(AO_LED_GREEN|AO_LED_RED, time)
#endif
#define pause(time) ao_delay(time)
} else {
while (digit--) {
mid(AO_MS_TO_TICKS(200));
- mid(AO_MS_TO_TICKS(200));
+ pause(AO_MS_TO_TICKS(200));
}
}
pause(AO_MS_TO_TICKS(300));
static void
ao_report_altitude(void)
{
- __xdata int16_t agl = ao_pres_to_altitude(ao_min_pres) - ao_pres_to_altitude(ao_ground_pres);
+ __xdata int16_t agl = ao_max_height;
__xdata uint8_t digits[10];
__xdata uint8_t ndigits, i;
}
}
+#if HAS_IGNITE
static uint8_t
ao_report_igniter_ready(enum ao_igniter igniter)
{
while (c-- && ao_flight_state == ao_flight_pad)
pause(AO_MS_TO_TICKS(100));
}
+#endif
void
ao_report(void)
if (ao_flight_state == ao_flight_landed)
ao_report_altitude();
ao_report_beep();
+#if HAS_IGNITE
if (ao_flight_state == ao_flight_idle)
ao_report_continuity();
while (ao_flight_state == ao_flight_pad)
ao_report_continuity();
+#endif
__critical {
while (ao_report_state == ao_flight_state)
ao_sleep(DATA_TO_XDATA(&ao_flight_state));