Added new mode: Scheduler -- clock based switching of lights

This commit is contained in:
2017-12-09 22:10:59 +01:00
parent 626fe42a90
commit 4aeebe1b33
12 changed files with 290 additions and 50 deletions

View File

@@ -9,7 +9,6 @@
static LEDStateEngine theLEDStateEngine;
static int ticks = 0;
static int brightness = 50;
int getTicks(void) { return ticks; }
@@ -27,7 +26,6 @@ void LEDStateEngine_setNumberOfLeds(int numberOfLeds) {
void LEDStateEngine_init(int ledPin, int numberOfLeds) {
theLEDStateEngine.comment = "";
theLEDStateEngine.pin = ledPin;
brightness = mgos_sys_config_get_led_brightness();
LEDStateEngine_setNumberOfLeds(numberOfLeds);
for (int i=0; i<numberOfLeds; ++i) {
LEDState_init(i, LEDDefinition_get(i));
@@ -61,24 +59,11 @@ void LEDStateEngine_tick() {
double LEDStateEngine_getMinTickTime() { return 1000 * minTickTime; }
double LEDStateEngine_getMaxTickTime() { return 1000 * maxTickTime; }
static uint8_t adjustBrightness(uint8_t value) {
return (value * brightness)/100;
}
int LEDStateEngine_getBrightness() { return brightness; }
void LEDStateEngine_setBrightness(int newBrightness) {
if (newBrightness > 0 && newBrightness <= 100) {
brightness = newBrightness;
} else {
LOG(LL_ERROR, ("invalid brightness value %d", newBrightness));
}
}
static void updateLedDisplay(LEDState *state) {
NeoPixel_set(state->index,
adjustBrightness(state->currentColor.red),
adjustBrightness(state->currentColor.green),
adjustBrightness(state->currentColor.blue));
state->currentColor.red,
state->currentColor.green,
state->currentColor.blue);
}
void LEDState_tick(int ledNum) {