state-handler: remove stateSensors

This commit is contained in:
Evgenii Meshcheriakov 2022-10-25 16:50:53 +03:00
parent 940b978764
commit a8bb6e44ff
3 changed files with 25 additions and 40 deletions

View File

@ -171,14 +171,6 @@ private:
*/ */
void stateAuto (const Event &event); void stateAuto (const Event &event);
/** Sensors state
*
* - print current sensrs readings
*
* @param event
*/
void stateSensors (const Event &event);
/** /**
* @brief Get pressure with the state * @brief Get pressure with the state
* *
@ -206,6 +198,8 @@ private:
void pid (); void pid ();
int fan_speed_normalized (); int fan_speed_normalized ();
void updateSensorValues ();
}; };
#endif /* STATE_HANDLER_H_ */ #endif /* STATE_HANDLER_H_ */

View File

@ -6,7 +6,6 @@
*/ */
#include "StateHandler/StateHandler.h" #include "StateHandler/StateHandler.h"
#define PID 1
StateHandler::StateHandler (LiquidCrystal *lcd, ModbusRegister *A01, StateHandler::StateHandler (LiquidCrystal *lcd, ModbusRegister *A01,
PressureWrapper *pressure, Timer *global) PressureWrapper *pressure, Timer *global)
@ -128,7 +127,7 @@ StateHandler::stateManual (const Event &event)
case Event::eTick: case Event::eTick:
if (event.value % 5000 == 0) if (event.value % 5000 == 0)
{ {
SetState (&StateHandler::stateSensors); updateSensorValues ();
displaySet (SENSORS); displaySet (SENSORS);
} }
if (event.value % 500 == 0) if (event.value % 500 == 0)
@ -153,42 +152,21 @@ StateHandler::stateAuto (const Event &event)
handleControlButtons (event.value); handleControlButtons (event.value);
break; break;
case Event::eTick: case Event::eTick:
if (event.value % 2 == 0) if (event.value % 5000 == 0)
{
updateSensorValues ();
displaySet (SENSORS);
}
if (event.value % 500 == 0)
{ {
SetState (&StateHandler::stateGetPressure); SetState (&StateHandler::stateGetPressure);
} }
if (event.value % 150 == 0)
{
SetState (&StateHandler::stateSensors);
// displaySens ();
}
pid (); pid ();
this->A01->write (fan_speed.getCurrent ()); this->A01->write (fan_speed.getCurrent ());
break; break;
} }
} }
void
StateHandler::stateSensors (const Event &event)
{
switch (event.type)
{
case Event::eEnter:
sensors_data[TEMPERATURE] = humidity.readT ();
sensors_data[PRESSUREDAT] = pressure->getPressure ();
sensors_data[CO2] = co2.read ();
state_timer->tickCounter(5);
sensors_data[HUMIDITY] = humidity.readRH ();
break;
case Event::eExit:
break;
case Event::eKey:
break;
case Event::eTick:
break;
}
}
void void
StateHandler::stateGetPressure (const Event &event) StateHandler::stateGetPressure (const Event &event)
{ {
@ -257,6 +235,7 @@ StateHandler::fan_speed_normalized ()
return speed * 10; return speed * 10;
} }
void void
StateHandler::pid () StateHandler::pid ()
{ {
@ -268,3 +247,15 @@ StateHandler::pid ()
derivative = error - last_error; derivative = error - last_error;
fan_speed.setInit ((kP * error) + (kI * integral) + (kD * derivative)); fan_speed.setInit ((kP * error) + (kI * integral) + (kD * derivative));
} }
void
StateHandler::updateSensorValues ()
{
sensors_data[TEMPERATURE] = humidity.readT ();
sensors_data[PRESSUREDAT] = pressure->getPressure ();
sensors_data[CO2] = co2.read ();
state_timer->tickCounter(5);
sensors_data[HUMIDITY] = humidity.readRH ();
}

View File

@ -79,14 +79,14 @@ main (void)
DigitalIoPin b_toggle (0, 5, true, true, true); // A3 DigitalIoPin b_toggle (0, 5, true, true, true); // A3
SwitchController sw_toggle (&b_toggle, &ventMachine, SwitchController sw_toggle (&b_toggle, &ventMachine,
BUTTON_CONTROL_TOG_MODE); BUTTON_CONTROL_TOG_MODE);
int getcounterValue = 0;
while (1) while (1)
{ {
getcounterValue = glob_time.getCounter();
sw_up.listen (); sw_up.listen ();
sw_down.listen (); sw_down.listen ();
sw_toggle.listen (); sw_toggle.listen ();
ventMachine.HandleState (Event (Event::eTick, glob_time.getCounter ())); ventMachine.HandleState (Event (Event::eTick, getcounterValue));
glob_time.tickCounter (1); glob_time.tickCounter (1);
} }