From df47dcc3b0407d6a91fa0ed8acf7a40875d855e6 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Thu, 28 Feb 2013 01:00:57 +0100 Subject: [PATCH] control.c: handle "battery critical" state --- firmware/control.c | 17 ++++++++++------- firmware/lights.h | 1 + 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/firmware/control.c b/firmware/control.c index 1a768e6..7a8d447 100644 --- a/firmware/control.c +++ b/firmware/control.c @@ -124,7 +124,8 @@ void set_panic_mode() pattern_t *pwmled0_pattern_select() { - // TODO: battery critical + if (battery_critical) + return on1_pattern; if (towbar_mode) return NULL; @@ -140,10 +141,11 @@ pattern_t *pwmled0_pattern_select() pattern_t *pwmled1_pattern_select() { - // TODO: battery critical - #ifndef TESTING_FW return NULL; +#else + if (battery_critical) + return on1_pattern; #endif if (towbar_mode) { @@ -168,11 +170,11 @@ pattern_t *pwmled1_pattern_select() pattern_t *pwmled2_pattern_select() { - // TODO: battery critical - #ifndef TESTING_FW - return on3_pattern; + if (battery_critical) + return on1_pattern; #endif + switch (ambient_zone) { case 0: return dim_mode ? on2_pattern : on3_pattern; case 1: return dim_mode ? slow1_pattern : normal2_pattern; @@ -194,7 +196,8 @@ pattern_t *status_led_pattern_select() pattern_t *illumination_led_pattern_select() { - // todo: battery critical + if (battery_critical) + return NULL; switch (ambient_zone) { case 0: return dim_mode diff --git a/firmware/lights.h b/firmware/lights.h index 5032e11..7bdc5b6 100644 --- a/firmware/lights.h +++ b/firmware/lights.h @@ -88,6 +88,7 @@ pattern_t *buttons_setup_status0_pattern_select(); pattern_t *buttons_setup_status1_pattern_select(); /* battery.c */ +extern volatile unsigned char battery_critical; void battery_adc(); void init_battery(); unsigned char battery_gauge(); -- 2.39.3