42 lines
966 B
C++
42 lines
966 B
C++
#include "StateMachine.h"
|
|
#include "Controllers.h"
|
|
|
|
DoneState::DoneState() : doneEnter(0) {}
|
|
|
|
void DoneState::enter()
|
|
{
|
|
Serial.println("Entering Done State");
|
|
|
|
doneEnter = millis();
|
|
ledController.setBreath(GREEN, -1, true, 2);
|
|
|
|
// Register state-specific handlers
|
|
inputController.onPressHandler([]()
|
|
{
|
|
Serial.println("Done State: Button pressed");
|
|
stateMachine.changeState(&StateMachine::idleState); });
|
|
|
|
// Send 'Stop' webhook
|
|
networkController.sendWebhookAction("stop");
|
|
}
|
|
|
|
void DoneState::update()
|
|
{
|
|
inputController.update();
|
|
ledController.update();
|
|
|
|
displayController.drawDoneScreen();
|
|
|
|
if (millis() - doneEnter >= (CHANGE_TIMEOUT * 1000))
|
|
{
|
|
// Transition to Idle after timeout
|
|
stateMachine.changeState(&StateMachine::idleState);
|
|
}
|
|
}
|
|
|
|
void DoneState::exit()
|
|
{
|
|
Serial.println("Exiting Done State");
|
|
inputController.releaseHandlers();
|
|
}
|