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
};
enum _display
{
MODES,
SENSORS
};
enum _sensors
{
PRESSUREDAT,
@ -98,11 +104,8 @@ public:
* MANUAL MODE: SPEED: XX% PRESSURE: 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
* needed only for Debug purposes

View File

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