led support configurable
This commit is contained in:
@ -1,3 +1,5 @@
|
|||||||
|
led = "off"
|
||||||
|
|
||||||
sinkServer = "sink.hottis.de"
|
sinkServer = "sink.hottis.de"
|
||||||
sinkPort = 20169
|
sinkPort = 20169
|
||||||
|
|
||||||
|
18
src/led.c
18
src/led.c
@ -1,15 +1,29 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <wiringPi.h>
|
#include <wiringPi.h>
|
||||||
|
#include <libconfig.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <strings.h>
|
||||||
|
|
||||||
#include "led.h"
|
#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 GREEN_OUT = 20;
|
||||||
const int RED_OUT = 21;
|
const int RED_OUT = 21;
|
||||||
const int BLUE_OUT = 26;
|
const int BLUE_OUT = 26;
|
||||||
|
|
||||||
void ledInit() {
|
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(GREEN_OUT, OUTPUT);
|
pinMode(GREEN_OUT, OUTPUT);
|
||||||
digitalWrite(GREEN_OUT, 0);
|
digitalWrite(GREEN_OUT, 0);
|
||||||
|
|
||||||
@ -22,6 +36,7 @@ void ledInit() {
|
|||||||
|
|
||||||
|
|
||||||
void led (tColor color, bool state) {
|
void led (tColor color, bool state) {
|
||||||
|
if (ledsActive) {
|
||||||
if (color == E_RED) {
|
if (color == E_RED) {
|
||||||
digitalWrite(RED_OUT, state ? 1 : 0);
|
digitalWrite(RED_OUT, state ? 1 : 0);
|
||||||
} else if (color == E_BLUE) {
|
} else if (color == E_BLUE) {
|
||||||
@ -30,3 +45,4 @@ void led (tColor color, bool state) {
|
|||||||
digitalWrite(GREEN_OUT, state ? 1 : 0);
|
digitalWrite(GREEN_OUT, state ? 1 : 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -2,10 +2,11 @@
|
|||||||
#define _LED_H_
|
#define _LED_H_
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <libconfig.h>
|
||||||
|
|
||||||
typedef enum { E_RED, E_BLUE, E_GREEN } tColor;
|
typedef enum { E_RED, E_BLUE, E_GREEN } tColor;
|
||||||
|
|
||||||
void ledInit();
|
void ledInit(config_t *pCfg);
|
||||||
void led(tColor color, bool state);
|
void led(tColor color, bool state);
|
||||||
|
|
||||||
#endif // _LED_H_
|
#endif // _LED_H_
|
Reference in New Issue
Block a user