state-handler: cleanup, displaySet() can display sensors data or modes

This commit is contained in:
Evgenii Meshcheriakov 2022-10-25 14:56:53 +03:00
parent 893a41a7d7
commit 42251f7ed7
2 changed files with 23 additions and 40 deletions

View File

@ -63,6 +63,12 @@ enum _mode
AUTO AUTO
}; };
enum _display
{
MODES,
SENSORS
};
enum _sensors enum _sensors
{ {
PRESSUREDAT, PRESSUREDAT,
@ -98,11 +104,8 @@ public:
* MANUAL MODE: SPEED: XX% PRESSURE: XXPa * MANUAL MODE: SPEED: XX% PRESSURE: XXPa
* *
* AUTO MODE: P. SET: XXPa P. CURR: XXPa * AUTO MODE: P. SET: XXPa P. CURR: XXPa
*
* @param value1 value to be displayed on LCD line 0
* @param value2 value to be displayed on LCD line 1
*/ */
void displaySet (unsigned int value1, unsigned int value2); void displaySet (bool sensors);
/** Display values of sensors readings on LCD /** Display values of sensors readings on LCD
* needed only for Debug purposes * needed only for Debug purposes

View File

@ -26,20 +26,25 @@ StateHandler::~StateHandler ()
} }
void void
StateHandler::displaySet (unsigned int value1, unsigned int value2) StateHandler::displaySet (bool sensors)
{ {
char line_up[16] = { 0 }; char line_up[16] = { 0 };
char line_down[16] = { 0 }; char line_down[16] = { 0 };
if (current_mode == MANUAL) if(sensors) {
snprintf (line_up, 16, "PRE:%02d TEM:%02d", sensors_data[PRESSUREDAT],
sensors_data[TEMPERATURE]);
snprintf (line_down, 16, "HUM:%02d CO2:%02d", sensors_data[HUMIDITY],
sensors_data[CO2]);
} else if (current_mode == MANUAL)
{ {
snprintf (line_up, 16, "SPEED: %02d%", value1); snprintf (line_up, 16, "SPEED: %02d%", saved_set_value[current_mode]);
snprintf (line_down, 16, "PRESSURE: %02dPa", value2); snprintf (line_down, 16, "PRESSURE: %02dPa", saved_curr_value[current_mode]);
} } else if(current_mode == AUTO)
else
{ {
snprintf (line_up, 16, "P. SET: %02dPa", value1); snprintf (line_up, 16, "P. SET: %02dPa", saved_set_value[current_mode]);
snprintf (line_down, 16, "P. CURR: %02dPa", value2); snprintf (line_down, 16, "P. CURR: %02dPa", saved_curr_value[current_mode]);
} }
_lcd->clear (); _lcd->clear ();
@ -51,18 +56,7 @@ StateHandler::displaySet (unsigned int value1, unsigned int value2)
void void
StateHandler::displaySens () StateHandler::displaySens ()
{ {
char line_up[16] = { 0 };
char line_down[16] = { 0 };
snprintf (line_up, 16, "PRE:%02d TEM:%02d", sensors_data[PRESSUREDAT],
sensors_data[TEMPERATURE]);
snprintf (line_down, 16, "HUM:%02d CO2:%02d", sensors_data[HUMIDITY],
sensors_data[CO2]);
_lcd->clear ();
_lcd->setCursor (0, 0);
_lcd->print (line_up);
_lcd->setCursor (0, 1);
_lcd->print (line_down);
} }
unsigned int unsigned int
@ -97,7 +91,6 @@ StateHandler::stateInit (const Event &event)
switch (event.type) switch (event.type)
{ {
case Event::eEnter: case Event::eEnter:
// SetState (&StateHandler::stateSensors);
break; break;
case Event::eExit: case Event::eExit:
_lcd->clear (); _lcd->clear ();
@ -134,12 +127,11 @@ StateHandler::stateManual (const Event &event)
case Event::eTick: case Event::eTick:
if(event.value % 5000 == 0) { if(event.value % 5000 == 0) {
SetState(&StateHandler::stateSensors); SetState(&StateHandler::stateSensors);
// displaySens (); displaySet(SENSORS);
} }
if (event.value % 500 == 0) if (event.value % 500 == 0)
{ {
SetState (&StateHandler::stateGetPressure); SetState (&StateHandler::stateGetPressure);
// state_timer->resetCounter ();
break; break;
} }
} }
@ -162,25 +154,13 @@ StateHandler::stateAuto (const Event &event)
if (event.value % 2 == 0) if (event.value % 2 == 0)
{ {
SetState (&StateHandler::stateGetPressure); SetState (&StateHandler::stateGetPressure);
// state_timer->resetCounter ();
// break;
} }
if(event.value % 153 == 0) { if(event.value % 150 == 0) {
SetState(&StateHandler::stateSensors); SetState(&StateHandler::stateSensors);
// displaySens (); // displaySens ();
} }
pid(); pid();
this->A01->write (fan_speed.getCurrent ()); this->A01->write (fan_speed.getCurrent ());
// if (saved_curr_value[AUTO] < saved_set_value[AUTO])
// {
// fan_speed.inc ();
// this->A01->write (fan_speed.getCurrent ());
// }
// else if (saved_curr_value[AUTO] > saved_set_value[AUTO])
// {
// fan_speed.dec ();
// this->A01->write (fan_speed.getCurrent ());
// }
break; break;
} }
} }
@ -265,7 +245,7 @@ StateHandler::save (int eventValue, size_t mode)
{ {
saved_curr_value[mode] = eventValue; saved_curr_value[mode] = eventValue;
saved_set_value[mode] = counterValue; saved_set_value[mode] = counterValue;
displaySet (saved_set_value[mode], saved_curr_value[mode]); displaySet (MODES);
} }
} }