From 55145726c3a936f65494701e421fa57150a04778 Mon Sep 17 00:00:00 2001 From: andreas Date: Thu, 19 Sep 2024 19:51:28 +0200 Subject: [PATCH] only link FastLED stuff when GWLED_FASTLED is defined --- lib/ledtask/GwLedTask.cpp | 74 ++++++++++++++++++++++----------------- lib/ledtask/GwLedTask.h | 7 ++-- 2 files changed, 45 insertions(+), 36 deletions(-) diff --git a/lib/ledtask/GwLedTask.cpp b/lib/ledtask/GwLedTask.cpp index bda304e..0a03005 100644 --- a/lib/ledtask/GwLedTask.cpp +++ b/lib/ledtask/GwLedTask.cpp @@ -1,8 +1,19 @@ #include "GwLedTask.h" #include "GwHardware.h" #include "GwApi.h" + +void handleLeds(GwApi *api); +void initLeds(GwApi *param) +{ +#ifdef GWLED_FASTLED + param->addUserTask(handleLeds, "handleLeds"); +#endif +} + +#ifdef GWLED_FASTLED #include "FastLED.h" -typedef enum { +typedef enum +{ LED_OFF, LED_GREEN, LED_BLUE, @@ -10,41 +21,38 @@ typedef enum { LED_WHITE } GwLedMode; -static CRGB::HTMLColorCode colorFromMode(GwLedMode cmode){ - switch(cmode){ - case LED_BLUE: - return CRGB::Blue; - case LED_GREEN: - return CRGB::Green; - case LED_RED: - return CRGB::Red; - case LED_WHITE: - return CRGB::White; - default: - return CRGB::Black; +static CRGB::HTMLColorCode colorFromMode(GwLedMode cmode) +{ + switch (cmode) + { + case LED_BLUE: + return CRGB::Blue; + case LED_GREEN: + return CRGB::Green; + case LED_RED: + return CRGB::Red; + case LED_WHITE: + return CRGB::White; + default: + return CRGB::Black; } } -void handleLeds(GwApi *api){ - GwLog *logger=api->getLogger(); - #ifndef GWLED_FASTLED - LOG_DEBUG(GwLog::LOG,"currently only fastled handling"); - delay(50); - vTaskDelete(NULL); - return; - #else +void handleLeds(GwApi *api) +{ + GwLog *logger = api->getLogger(); CRGB leds[1]; - #ifdef GWLED_SCHEMA - FastLED.addLeds(leds,1); - #else - FastLED.addLeds(leds,1); - #endif - uint8_t brightness=api->getConfig()->getInt(GwConfigDefinitions::ledBrightness,128); - GwLedMode currentMode=LED_GREEN; - leds[0]=colorFromMode(currentMode); +#ifdef GWLED_SCHEMA + FastLED.addLeds(leds, 1); +#else + FastLED.addLeds(leds, 1); +#endif + uint8_t brightness = api->getConfig()->getInt(GwConfigDefinitions::ledBrightness, 128); + GwLedMode currentMode = LED_GREEN; + leds[0] = colorFromMode(currentMode); FastLED.setBrightness(brightness); FastLED.show(); - LOG_DEBUG(GwLog::LOG,"led task started with mode %d, brightness=%d",(int)currentMode,(int)brightness); - int apiResult=0; + LOG_DEBUG(GwLog::LOG, "led task started with mode %d, brightness=%d", (int)currentMode, (int)brightness); + int apiResult = 0; while (true) { delay(50); @@ -77,5 +85,5 @@ void handleLeds(GwApi *api){ } } vTaskDelete(NULL); - #endif -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/lib/ledtask/GwLedTask.h b/lib/ledtask/GwLedTask.h index 2ae1532..03cb980 100644 --- a/lib/ledtask/GwLedTask.h +++ b/lib/ledtask/GwLedTask.h @@ -1,8 +1,9 @@ #ifndef _GWLEDS_H #define _GWLEDS_H #include "GwApi.h" -//task function -void handleLeds(GwApi *param); +//task init function -DECLARE_USERTASK(handleLeds); +void initLeds(GwApi *param); + +DECLARE_INITFUNCTION(initLeds); #endif \ No newline at end of file