Files
focus-dial/firmware/src/states/DoneState.cpp
2024-12-27 16:11:21 -05:00

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();
}