altos/telelco-v2.0: Test displays at power on
authorKeith Packard <keithp@keithp.com>
Fri, 1 Jun 2018 05:42:13 +0000 (22:42 -0700)
committerKeith Packard <keithp@keithp.com>
Fri, 1 Jun 2018 05:42:13 +0000 (22:42 -0700)
At boot, light up all LEDS and LCD segments for a second to let the
user verify that things are working correctly.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/telelco-v2.0/ao_lco_v2.c

index 140955da859ff4ec88b47f07c0f221344f68dac3..1be8ecb2f925a77c0bfacfdd805c5e169177f552 100644 (file)
@@ -626,6 +626,23 @@ ao_lco_arm_warn(void)
        }
 }
 
+/*
+ * Light up everything for a second at power on to let the user
+ * visually inspect the system for correct operation
+ */
+static void
+ao_lco_display_test()
+{
+       ao_mutex_get(&ao_lco_display_mutex);
+       ao_seven_segment_set(AO_LCO_PAD_DIGIT, 8 | 0x10);
+       ao_seven_segment_set(AO_LCO_BOX_DIGIT_1, 8 | 0x10);
+       ao_seven_segment_set(AO_LCO_BOX_DIGIT_10, 8 | 0x10);
+       ao_mutex_put(&ao_lco_display_mutex);
+       ao_led_on(LEDS_AVAILABLE);
+       ao_delay(AO_MS_TO_TICKS(1000));
+       ao_led_off(LEDS_AVAILABLE);
+}
+
 static void
 ao_lco_batt_voltage(void)
 {
@@ -649,6 +666,7 @@ ao_lco_monitor(void)
        uint16_t                delay;
        uint8_t                 box;
 
+       ao_lco_display_test();
        ao_lco_batt_voltage();
        ao_lco_search();
        ao_add_task(&ao_lco_input_task, ao_lco_input, "lco input");