100 lines
2.1 KiB
C++
100 lines
2.1 KiB
C++
#include "main.h"
|
|
|
|
DoughBoyState state = CONFIGURING;
|
|
Dough::Logger logger("MAIN");
|
|
|
|
void setup()
|
|
{
|
|
Dough::Logger::setup();
|
|
logger.log("s", "Initializing device");
|
|
auto app = Dough::App::Instance();
|
|
app->setup();
|
|
app->ui.onoffButton.onPress(handleOnoffButtonPress);
|
|
app->ui.setupButton.onPress(handleSetupButtonPress);
|
|
logger.log("s", "Initialization completed, starting device");
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
auto app = Dough::App::Instance();
|
|
app->loop();
|
|
|
|
// if (state == CONFIGURING)
|
|
// {
|
|
// if (app->config.isOk())
|
|
// {
|
|
// setStateToMeasuring();
|
|
// }
|
|
// }
|
|
// else if (state == MEASURING && !app->config.isOk())
|
|
// {
|
|
// setStateToConfiguring();
|
|
// }
|
|
// else if (state == MEASURING)
|
|
// {
|
|
// app->measure();
|
|
// }
|
|
// else if (state == CALIBRATING)
|
|
// {
|
|
// delay(3000);
|
|
// setStateToPaused();
|
|
// }
|
|
// else if (state == PAUSED)
|
|
// {
|
|
// app->clearHistory();
|
|
// }
|
|
}
|
|
|
|
void handleOnoffButtonPress()
|
|
{
|
|
if (state == MEASURING)
|
|
{
|
|
setStateToPaused();
|
|
}
|
|
else if (state == PAUSED)
|
|
{
|
|
setStateToMeasuring();
|
|
}
|
|
}
|
|
|
|
void handleSetupButtonPress()
|
|
{
|
|
setStateToCalibrating();
|
|
}
|
|
|
|
void setStateToConfiguring()
|
|
{
|
|
auto app = Dough::App::Instance();
|
|
logger.log("s", "Waiting for configuration ...");
|
|
state = CONFIGURING;
|
|
app->ui.notifyWaitingForConfiguration();
|
|
app->mqtt.publish("state", "configuring");
|
|
}
|
|
|
|
void setStateToMeasuring()
|
|
{
|
|
auto app = Dough::App::Instance();
|
|
logger.log("s", "Starting measurements");
|
|
state = MEASURING;
|
|
app->ui.notifyMeasurementsActive();
|
|
app->mqtt.publish("state", "measuring");
|
|
}
|
|
|
|
void setStateToPaused()
|
|
{
|
|
auto app = Dough::App::Instance();
|
|
logger.log("s", "Pausing measurements");
|
|
state = PAUSED;
|
|
app->ui.notifyMeasurementsPaused();
|
|
app->mqtt.publish("state", "paused");
|
|
}
|
|
|
|
void setStateToCalibrating()
|
|
{
|
|
auto app = Dough::App::Instance();
|
|
logger.log("s", "Requested device calibration");
|
|
state = CALIBRATING;
|
|
app->ui.notifyCalibrating();
|
|
app->mqtt.publish("state", "calibrating");
|
|
}
|