Enclosure files + firmware

This commit is contained in:
Salim Benbouziyane
2024-12-27 16:11:21 -05:00
parent a0ae88370c
commit 5fd10e2f6b
62 changed files with 3587 additions and 1 deletions

View File

@@ -0,0 +1,71 @@
#include "StateMachine.h"
#include "Controllers.h"
PausedState::PausedState() : duration(0), elapsedTime(0), pauseEnter(0) {}
void PausedState::enter()
{
Serial.println("Entering Paused State");
pauseEnter = millis(); // Record the time when the pause started
ledController.setBreath(YELLOW, -1, false, 20);
// Register state-specific handlers
inputController.onPressHandler([this]()
{
Serial.println("Paused State: Button Pressed");
// Send 'Start' webhook (resume)
networkController.sendWebhookAction("start");
// Transition back to TimerState with the stored duration and elapsed time
StateMachine::timerState.setTimer(duration, elapsedTime);
displayController.showTimerResume();
stateMachine.changeState(&StateMachine::timerState); // Transition back to Timer State
});
inputController.onDoublePressHandler([]()
{
Serial.println("Paused State: Button Double Pressed");
// Send 'Stop' webhook (canceled)
networkController.sendWebhookAction("stop");
displayController.showCancel();
stateMachine.changeState(&StateMachine::idleState); // Transition back to Idle State
});
}
void PausedState::update()
{
inputController.update();
ledController.update();
// Redraw the paused screen with remaining time
int remainingTime = (duration * 60) - elapsedTime;
displayController.drawPausedScreen(remainingTime);
unsigned long currentTime = millis();
// Check if the pause timeout has been reached
if (currentTime - pauseEnter >= (PAUSE_TIMEOUT * 60 * 1000))
{
// Timeout reached, transition to Idle State
Serial.println("Paused State: Timout");
// Send 'Stop' webhook (timeout)
networkController.sendWebhookAction("stop");
displayController.showCancel();
stateMachine.changeState(&StateMachine::idleState); // Transition back to Idle State
}
}
void PausedState::exit()
{
Serial.println("Exiting Paused State");
inputController.releaseHandlers();
}
void PausedState::setPause(int duration, unsigned long elapsedTime)
{
this->duration = duration;
this->elapsedTime = elapsedTime;
}