state-handler: make temporary fix for flashing lcd

This commit is contained in:
Vasily Davydov 2022-10-16 14:00:12 +03:00
parent dd00c13714
commit 5ff0c22758
2 changed files with 17 additions and 2 deletions

View File

@ -103,6 +103,7 @@ private:
void SetState (state_pointer newstate); void SetState (state_pointer newstate);
bool current_mode; bool current_mode;
Counter value[2] = { { 0, 100 }, { 0, 120 } }; Counter value[2] = { { 0, 100 }, { 0, 120 } };
int saved_set_value, saved_curr_value;
LiquidCrystal *_lcd; LiquidCrystal *_lcd;
/** Initialization state /** Initialization state

View File

@ -13,6 +13,8 @@ StateHandler::StateHandler (LiquidCrystal *lcd)
current = &StateHandler::stateInit; current = &StateHandler::stateInit;
(this->*current) (Event (Event::eEnter)); (this->*current) (Event (Event::eEnter));
current_mode = MANUAL; current_mode = MANUAL;
saved_set_value = 0;
saved_curr_value = 0;
} }
StateHandler::~StateHandler () StateHandler::~StateHandler ()
@ -110,7 +112,13 @@ StateHandler::stateManual (const Event &event)
handleControlButtons (event.value); handleControlButtons (event.value);
break; break;
case Event::eTick: 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; break;
} }
} }
@ -129,7 +137,13 @@ StateHandler::stateAuto (const Event &event)
handleControlButtons (event.value); handleControlButtons (event.value);
break; break;
case Event::eTick: 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; break;
} }
} }