Revert "altos: Debugging TBT issues -- check pin configuration after boot"
[fw/altos] / src / ao_report.c
index cc8b512b095ca0af903620e9d7802fd32e3905ca..b9dc5bb419979d5d5f960a67f23aa89eba186fad 100644 (file)
@@ -37,10 +37,14 @@ static const uint8_t flight_reports[] = {
        MORSE4(1,0,0,1),        /* invalid 'X' */
 };
 
-#if 1
-#define signal(time)   ao_beep_for(AO_BEEP_MID, time)
+#if HAS_BEEP
+#define low(time)      ao_beep_for(AO_BEEP_LOW, time)
+#define mid(time)      ao_beep_for(AO_BEEP_MID, time)
+#define high(time)     ao_beep_for(AO_BEEP_HIGH, time)
 #else
-#define signal(time)   ao_led_for(AO_LED_RED, 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)
 
@@ -56,9 +60,9 @@ ao_report_beep(void) __reentrant
                return;
        while (l--) {
                if (r & 8)
-                       signal(AO_MS_TO_TICKS(600));
+                       mid(AO_MS_TO_TICKS(600));
                else
-                       signal(AO_MS_TO_TICKS(200));
+                       mid(AO_MS_TO_TICKS(200));
                pause(AO_MS_TO_TICKS(200));
                r >>= 1;
        }
@@ -69,11 +73,11 @@ static void
 ao_report_digit(uint8_t digit) __reentrant
 {
        if (!digit) {
-               signal(AO_MS_TO_TICKS(500));
+               mid(AO_MS_TO_TICKS(500));
                pause(AO_MS_TO_TICKS(200));
        } else {
                while (digit--) {
-                       signal(AO_MS_TO_TICKS(200));
+                       mid(AO_MS_TO_TICKS(200));
                        pause(AO_MS_TO_TICKS(200));
                }
        }
@@ -83,7 +87,7 @@ ao_report_digit(uint8_t digit) __reentrant
 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;
 
@@ -105,6 +109,7 @@ ao_report_altitude(void)
        }
 }
 
+#if HAS_IGNITE
 static uint8_t
 ao_report_igniter_ready(enum ao_igniter igniter)
 {
@@ -118,30 +123,31 @@ ao_report_continuity(void) __reentrant
                     (ao_report_igniter_ready(ao_igniter_main) << 1));
        if (c) {
                while (c--) {
-                       ao_beep_for(AO_BEEP_HIGH, AO_MS_TO_TICKS(25));
+                       high(AO_MS_TO_TICKS(25));
                        pause(AO_MS_TO_TICKS(100));
                }
        } else {
                c = 10;
                while (c--) {
-                       ao_beep_for(AO_BEEP_HIGH, AO_MS_TO_TICKS(20));
-                       ao_beep_for(AO_BEEP_LOW, AO_MS_TO_TICKS(20));
+                       high(AO_MS_TO_TICKS(20));
+                       low(AO_MS_TO_TICKS(20));
                }
        }
        if (ao_log_full()) {
                pause(AO_MS_TO_TICKS(100));
                c = 2;
                while (c--) {
-                       ao_beep_for(AO_BEEP_LOW, AO_MS_TO_TICKS(100));
-                       ao_beep_for(AO_BEEP_MID, AO_MS_TO_TICKS(100));
-                       ao_beep_for(AO_BEEP_HIGH, AO_MS_TO_TICKS(100));
-                       ao_beep_for(AO_BEEP_MID, AO_MS_TO_TICKS(100));
+                       low(AO_MS_TO_TICKS(100));
+                       mid(AO_MS_TO_TICKS(100));
+                       high(AO_MS_TO_TICKS(100));
+                       mid(AO_MS_TO_TICKS(100));
                }
        }
        c = 50;
        while (c-- && ao_flight_state == ao_flight_pad)
                pause(AO_MS_TO_TICKS(100));
 }
+#endif
 
 void
 ao_report(void)
@@ -151,10 +157,12 @@ 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));