Enclosure files + firmware
This commit is contained in:
41
firmware/src/states/DoneState.cpp
Normal file
41
firmware/src/states/DoneState.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#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();
|
||||
}
|
||||
Reference in New Issue
Block a user