Files
arduino/src/AgStateMachine.h

55 lines
1.5 KiB
C
Raw Normal View History

2024-04-03 07:04:55 +07:00
#ifndef _AG_STATE_MACHINE_H_
#define _AG_STATE_MACHINE_H_
2024-04-03 21:26:04 +07:00
#include "AgOledDisplay.h"
#include "AgValue.h"
#include "AgConfigure.h"
#include "Main/PrintLog.h"
#include "App/AppDef.h"
2024-04-07 16:39:01 +07:00
class StateMachine : public PrintLog {
2024-04-03 21:26:04 +07:00
private:
// AgStateMachineState state;
AgStateMachineState ledState;
AgStateMachineState dispState;
2024-04-04 10:36:59 +07:00
AirGradient *ag;
2024-04-07 16:39:01 +07:00
OledDisplay &disp;
Measurements &value;
Configuration &config;
2024-04-03 21:26:04 +07:00
bool addToDashBoard = false;
uint32_t addToDashboardTime;
int wifiConnectCountDown;
int ledBarAnimationCount;
void ledBarSingleLedAnimation(uint8_t r, uint8_t g, uint8_t b);
void ledStatusBlinkDelay(uint32_t delay);
2024-04-07 16:39:01 +07:00
void sensorhandleLeds(void);
void co2handleLeds(void);
void pm25handleLeds(void);
void co2Calibration(void);
void ledBarTest(void);
void ledBarRunTest(void);
void runLedTest(char color);
2024-04-03 21:26:04 +07:00
public:
2024-04-07 16:39:01 +07:00
StateMachine(OledDisplay &disp, Stream &log,
Measurements &value, Configuration& config);
~StateMachine();
2024-04-04 10:36:59 +07:00
void setAirGradient(AirGradient* ag);
2024-04-03 21:26:04 +07:00
void displayHandle(AgStateMachineState state);
void displayHandle(void);
void displaySetAddToDashBoard(void);
void displayClearAddToDashBoard(void);
void displayWiFiConnectCountDown(int count);
void ledAnimationInit(void);
2024-04-07 16:39:01 +07:00
void handleLeds(AgStateMachineState state);
void handleLeds(void);
2024-04-03 21:26:04 +07:00
void setDisplayState(AgStateMachineState state);
AgStateMachineState getDisplayState(void);
AgStateMachineState getLedState(void);
2024-04-07 16:39:01 +07:00
void executeCo2Calibration(void);
void executeLedBarTest(void);
2024-04-03 07:04:55 +07:00
};
#endif /** _AG_STATE_MACHINE_H_ */