From ce80c2126406e4b26d5b1373b0544afc46a4d152 Mon Sep 17 00:00:00 2001 From: norbert-walter Date: Sat, 6 Jan 2024 17:11:58 +0100 Subject: [PATCH] Flash LED and backlight LEDs working including blinking --- lib/obp60task/OBP60Extensions.cpp | 25 ++++++++++++++++++++++++- lib/obp60task/OBP60Extensions.h | 3 +++ lib/obp60task/PageVoltage.cpp | 1 - lib/obp60task/obp60task.cpp | 2 +- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/lib/obp60task/OBP60Extensions.cpp b/lib/obp60task/OBP60Extensions.cpp index 926343e..b6f987f 100644 --- a/lib/obp60task/OBP60Extensions.cpp +++ b/lib/obp60task/OBP60Extensions.cpp @@ -39,6 +39,7 @@ CRGB backlight[NUM_BACKLIGHT_LED]; // Backlight // Global vars bool blinkingLED = false; // Enable / disable blinking flash LED bool statusLED = false; // Actual status of flash LED on/off +bool statusBacklightLED = false;// Actual status of flash LED on/off int uvDuration = 0; // Under voltage duration in n x 100ms @@ -76,6 +77,28 @@ void togglePortPin(uint pin){ digitalWrite(pin, !digitalRead(pin)); } +void toggleBacklightLED(){ + statusBacklightLED = !statusBacklightLED; + FastLED.setBrightness(255); // Brightness for flash LED + if(statusBacklightLED == true){ + backlight[0] = CRGB::White; // Backlight LEDs on + backlight[1] = CRGB::White; + backlight[2] = CRGB::White; + backlight[3] = CRGB::White; + backlight[4] = CRGB::White; + backlight[5] = CRGB::White; + } + else{ + backlight[0] = CRGB::Black; // Backlight LEDs off + backlight[1] = CRGB::Black; + backlight[2] = CRGB::Black; + backlight[3] = CRGB::Black; + backlight[4] = CRGB::Black; + backlight[5] = CRGB::Black; + } + FastLED.show(); +} + void setFlashLED(bool status){ statusLED = status; FastLED.setBrightness(255); // Brightness for flash LED @@ -90,7 +113,7 @@ void setFlashLED(bool status){ void blinkingFlashLED(){ if(blinkingLED == true){ - statusLED != statusLED; + statusLED = !statusLED; FastLED.setBrightness(255); // Brightness for flash LED if(statusLED == true){ fled[0] = CRGB::Red; // Flash LED on in red diff --git a/lib/obp60task/OBP60Extensions.h b/lib/obp60task/OBP60Extensions.h index 7f59220..d51fe9a 100644 --- a/lib/obp60task/OBP60Extensions.h +++ b/lib/obp60task/OBP60Extensions.h @@ -4,6 +4,7 @@ #include #include "OBP60Hardware.h" #include +#include // Driver for WS2812 RGB LED #include // 4.2" Waveshare S/W 300 x 400 pixel #include // GxEPD lip for SPI display communikation #include // GxEPD lip for SPI @@ -30,6 +31,8 @@ void setPortPin(uint pin, bool value); // Set port pin for extension po void togglePortPin(uint pin); // Toggle extension port pin +void toggleBacklightLED(); // Toggle backlight LEDs + void setFlashLED(bool status); // Set flash LED void blinkingFlashLED(); // Blinking function for flash LED void setBlinkingLED(bool on); // Set blinking flash LED active diff --git a/lib/obp60task/PageVoltage.cpp b/lib/obp60task/PageVoltage.cpp index 4302371..83f8a8d 100644 --- a/lib/obp60task/PageVoltage.cpp +++ b/lib/obp60task/PageVoltage.cpp @@ -95,7 +95,6 @@ public: // Limits for Pb battery if(String(batType) == "Pb" && (raw < 11.8 || raw > 14.8)){ setBlinkingLED(true); - setFlashLED(true); } if(String(batType) == "Pb" && (raw >= 11.8 && raw <= 14.8)){ setBlinkingLED(false); diff --git a/lib/obp60task/obp60task.cpp b/lib/obp60task/obp60task.cpp index 417a0e3..f04602d 100644 --- a/lib/obp60task/obp60task.cpp +++ b/lib/obp60task/obp60task.cpp @@ -417,7 +417,7 @@ void OBP60Task(GwApi *api){ if(String(backlight) == "Control by Key"){ if(keyboardMessage == 6){ LOG_DEBUG(GwLog::LOG,"Toggle Backlight LED"); - togglePortPin(OBP_BACKLIGHT_LED); + toggleBacklightLED(); } } // #9 Swipe right