From 7390cc231757b2aa53b7d9292e3e335e061329f3 Mon Sep 17 00:00:00 2001 From: elral <3263285+elral@users.noreply.github.com> Date: Mon, 21 Oct 2024 20:25:05 +0200 Subject: [PATCH 1/2] Turning the display on/off in case of power saving mode --- src/MF_LCDDisplay/MFLCDDisplay.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/MF_LCDDisplay/MFLCDDisplay.cpp b/src/MF_LCDDisplay/MFLCDDisplay.cpp index 2c34601a..1e45531c 100644 --- a/src/MF_LCDDisplay/MFLCDDisplay.cpp +++ b/src/MF_LCDDisplay/MFLCDDisplay.cpp @@ -42,10 +42,14 @@ void MFLCDDisplay::detach() void MFLCDDisplay::powerSavingMode(bool state) { - if (state) + if (state) { _lcdDisplay.noBacklight(); - else + _lcdDisplay.noDisplay(); + } + else { _lcdDisplay.backlight(); + _lcdDisplay.display(); + } } void MFLCDDisplay::test() From 63437e4b00d033df58caacb8cc7120155098c14f Mon Sep 17 00:00:00 2001 From: elral <3263285+elral@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:24:56 +0200 Subject: [PATCH 2/2] add missing functions for LCD power saving mode --- src/MF_LCDDisplay/LCDDisplay.cpp | 7 +++++++ src/MF_LCDDisplay/LCDDisplay.h | 1 + src/mobiflight.cpp | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/src/MF_LCDDisplay/LCDDisplay.cpp b/src/MF_LCDDisplay/LCDDisplay.cpp index cae89c71..e1601625 100644 --- a/src/MF_LCDDisplay/LCDDisplay.cpp +++ b/src/MF_LCDDisplay/LCDDisplay.cpp @@ -53,6 +53,13 @@ namespace LCDDisplay cmdMessenger.unescape(output); lcd_I2C[address].display(output); } + + void PowerSave(bool state) + { + for (uint8_t i = 0; i < lcd_12cRegistered; ++i) { + lcd_I2C[i].powerSavingMode(state); + } + } } // namespace // LCDDisplay.cpp diff --git a/src/MF_LCDDisplay/LCDDisplay.h b/src/MF_LCDDisplay/LCDDisplay.h index 12bcf2db..6d8ba5e9 100644 --- a/src/MF_LCDDisplay/LCDDisplay.h +++ b/src/MF_LCDDisplay/LCDDisplay.h @@ -13,6 +13,7 @@ namespace LCDDisplay void Add(uint8_t address = 0x24, uint8_t cols = 16, uint8_t lines = 2); void Clear(); void OnSet(); + void PowerSave(bool state); } // LCDDisplay.h diff --git a/src/mobiflight.cpp b/src/mobiflight.cpp index 2d0a9b3d..33fc8f76 100644 --- a/src/mobiflight.cpp +++ b/src/mobiflight.cpp @@ -25,6 +25,9 @@ #if MF_SERVO_SUPPORT == 1 #include "Servos.h" #endif +#if MF_LCD_SUPPORT == 1 +#include "LCDDisplay.h" +#endif #if MF_OUTPUT_SHIFTER_SUPPORT == 1 #include "OutputShifter.h" #endif @@ -126,6 +129,9 @@ void SetPowerSavingMode(bool state) #if MF_OUTPUT_SHIFTER_SUPPORT == 1 OutputShifter::PowerSave(state); #endif +#if MF_LCD_SUPPORT == 1 + LCDDisplay::PowerSave(state); +#endif #ifdef DEBUG2CMDMESSENGER if (state)