2024-05-17 13:04:36 +00:00
|
|
|
#pragma once
|
|
|
|
#include <Arduino.h>
|
2024-05-17 13:37:03 +00:00
|
|
|
#include <LiquidCrystal.h>
|
2024-05-17 13:04:36 +00:00
|
|
|
#include "state.h"
|
|
|
|
#include "station.h"
|
2024-05-17 13:37:03 +00:00
|
|
|
#include "context.h"
|
2024-05-17 13:04:36 +00:00
|
|
|
|
|
|
|
class StateMachine {
|
|
|
|
private:
|
|
|
|
State* currentState;
|
|
|
|
void updateState(State* newState);
|
|
|
|
|
|
|
|
public:
|
|
|
|
StateMachine(State* initialState);
|
|
|
|
~StateMachine();
|
|
|
|
|
|
|
|
void pickedUp();
|
|
|
|
void putDown(Station* newSation);
|
2024-05-17 13:37:03 +00:00
|
|
|
void update(Context context);
|
2024-05-17 13:04:36 +00:00
|
|
|
|
|
|
|
void updateDisplay(LiquidCrystal* lcd);
|
|
|
|
};
|