From badc6aa1f50ff927a2fa12467c2e7487ca221469 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 5 Mar 2021 10:57:28 +0100 Subject: [PATCH] led support configurable --- src/counter.cfg | 2 ++ src/led.c | 36 ++++++++++++++++++++++++++---------- src/led.h | 3 ++- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/counter.cfg b/src/counter.cfg index ce995b5..20be112 100644 --- a/src/counter.cfg +++ b/src/counter.cfg @@ -1,3 +1,5 @@ +led = "off" + sinkServer = "sink.hottis.de" sinkPort = 20169 diff --git a/src/led.c b/src/led.c index a7331d9..a871879 100644 --- a/src/led.c +++ b/src/led.c @@ -1,32 +1,48 @@ #include #include +#include +#include +#include #include "led.h" +#include "logging.h" +const char LED_KEY[] = "led"; +const char DEFAULT_LED[] = "off"; +const char *ledsActiveStr; +bool ledActive; const int GREEN_OUT = 20; const int RED_OUT = 21; const int BLUE_OUT = 26; -void ledInit() { - pinMode(GREEN_OUT, OUTPUT); - digitalWrite(GREEN_OUT, 0); +void ledInit(config_t *pCfg) { + if (! config_lookup_string(pCfg, LED_KEY, &ledsActiveStr)) { + ledsActiveStr = DEFAULT_LED; + } + ledsActive = (! strcasecmp(ledsActiveStr, "on")) || (! strcasecmp(ledsActiveStr, "true")); + logmsg(LOG_INFO, "CONFIG: ledsActive=%d, ledsActiveStr=%s\n", ledsActiveStr, ledsActive); - pinMode(RED_OUT, OUTPUT); - digitalWrite(RED_OUT, 0); + pinMode(GREEN_OUT, OUTPUT); + digitalWrite(GREEN_OUT, 0); - pinMode(BLUE_OUT, OUTPUT); - digitalWrite(BLUE_OUT, 0); + pinMode(RED_OUT, OUTPUT); + digitalWrite(RED_OUT, 0); + + pinMode(BLUE_OUT, OUTPUT); + digitalWrite(BLUE_OUT, 0); } void led (tColor color, bool state) { + if (ledsActive) { if (color == E_RED) { - digitalWrite(RED_OUT, state ? 1 : 0); + digitalWrite(RED_OUT, state ? 1 : 0); } else if (color == E_BLUE) { - digitalWrite(BLUE_OUT, state ? 1 : 0); + digitalWrite(BLUE_OUT, state ? 1 : 0); } else if (color == E_GREEN) { - digitalWrite(GREEN_OUT, state ? 1 : 0); + digitalWrite(GREEN_OUT, state ? 1 : 0); } + } } diff --git a/src/led.h b/src/led.h index f4dc094..f4555df 100644 --- a/src/led.h +++ b/src/led.h @@ -2,10 +2,11 @@ #define _LED_H_ #include +#include typedef enum { E_RED, E_BLUE, E_GREEN } tColor; -void ledInit(); +void ledInit(config_t *pCfg); void led(tColor color, bool state); #endif // _LED_H_ \ No newline at end of file