From 5ff0c2275883a5dc0fc0126389e1516416c1c942 Mon Sep 17 00:00:00 2001 From: Vasily Davydov Date: Sun, 16 Oct 2022 14:00:12 +0300 Subject: [PATCH] state-handler: make temporary fix for flashing lcd --- StateHandler/inc/StateHandler.h | 1 + StateHandler/src/StateHandler.cpp | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/StateHandler/inc/StateHandler.h b/StateHandler/inc/StateHandler.h index 81bcc40..c328f2d 100644 --- a/StateHandler/inc/StateHandler.h +++ b/StateHandler/inc/StateHandler.h @@ -103,6 +103,7 @@ private: void SetState (state_pointer newstate); bool current_mode; Counter value[2] = { { 0, 100 }, { 0, 120 } }; + int saved_set_value, saved_curr_value; LiquidCrystal *_lcd; /** Initialization state diff --git a/StateHandler/src/StateHandler.cpp b/StateHandler/src/StateHandler.cpp index 618f562..c152f1e 100644 --- a/StateHandler/src/StateHandler.cpp +++ b/StateHandler/src/StateHandler.cpp @@ -13,6 +13,8 @@ StateHandler::StateHandler (LiquidCrystal *lcd) current = &StateHandler::stateInit; (this->*current) (Event (Event::eEnter)); current_mode = MANUAL; + saved_set_value = 0; + saved_curr_value = 0; } StateHandler::~StateHandler () @@ -110,7 +112,13 @@ StateHandler::stateManual (const Event &event) handleControlButtons (event.value); break; case Event::eTick: - displaySet (getSetSpeed (), event.value); + if (saved_curr_value != event.value + || saved_set_value != value[MANUAL].getCurrent ()) + { + saved_curr_value = event.value; + saved_set_value = value[MANUAL].getCurrent (); + displaySet (value[MANUAL].getCurrent (), event.value); + } break; } } @@ -129,7 +137,13 @@ StateHandler::stateAuto (const Event &event) handleControlButtons (event.value); break; case Event::eTick: - displaySet (getSetPressure (), event.value); + if (saved_curr_value != event.value + || saved_set_value != value[AUTO].getCurrent ()) + { + saved_curr_value = event.value; + saved_set_value = value[AUTO].getCurrent (); + displaySet (value[AUTO].getCurrent (), event.value); + } break; } }