mirror of
https://github.com/s00500/ESPUI.git
synced 2024-09-28 13:01:49 +00:00
a2923e501f
Moved the client out of the main code into its own code and moved control data marshaling into the control class. NONE of these changes impact the users API. No code changes are needed by the users. WARNING: The LittleFS support for the ESP32 has been updated to be compatible with the latest ESP32 infrastructure. This includes using an improved WebServer.
80 lines
2.3 KiB
C++
80 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include <Arduino.h>
|
|
#include <ArduinoJson.h>
|
|
|
|
// forward declaration
|
|
class ESPUIclient;
|
|
|
|
/*****************************************************************************/
|
|
/*
|
|
* Generic fsm base class.
|
|
*/
|
|
/*****************************************************************************/
|
|
/*****************************************************************************/
|
|
class fsm_EspuiClient_state
|
|
{
|
|
public:
|
|
fsm_EspuiClient_state() {};
|
|
virtual ~fsm_EspuiClient_state() {}
|
|
|
|
void Init();
|
|
virtual bool NotifyClient() = 0;
|
|
virtual void ProcessAck(uint16_t id) = 0;
|
|
virtual String GetStateName () = 0;
|
|
void SetParent(ESPUIclient * value) { Parent = value; }
|
|
|
|
protected:
|
|
ESPUIclient * Parent = nullptr;
|
|
|
|
}; // fsm_EspuiClient_state
|
|
|
|
class fsm_EspuiClient_state_Idle : public fsm_EspuiClient_state
|
|
{
|
|
public:
|
|
fsm_EspuiClient_state_Idle() {}
|
|
virtual ~fsm_EspuiClient_state_Idle() {}
|
|
|
|
virtual bool NotifyClient();
|
|
virtual void ProcessAck(uint16_t id);
|
|
String GetStateName() { return String(F("Idle")); }
|
|
|
|
}; // fsm_EspuiClient_state_Idle
|
|
|
|
class fsm_EspuiClient_state_SendingUpdate : public fsm_EspuiClient_state
|
|
{
|
|
public:
|
|
fsm_EspuiClient_state_SendingUpdate() {}
|
|
virtual ~fsm_EspuiClient_state_SendingUpdate() {}
|
|
|
|
virtual bool NotifyClient();
|
|
virtual void ProcessAck(uint16_t id);
|
|
String GetStateName() { return String(F("Sending Update")); }
|
|
|
|
}; // fsm_EspuiClient_state_SendingUpdate
|
|
|
|
class fsm_EspuiClient_state_Rebuilding : public fsm_EspuiClient_state
|
|
{
|
|
public:
|
|
fsm_EspuiClient_state_Rebuilding() {}
|
|
virtual ~fsm_EspuiClient_state_Rebuilding() {}
|
|
|
|
virtual bool NotifyClient();
|
|
virtual void ProcessAck(uint16_t id);
|
|
String GetStateName() { return String(F("Sending Rebuild")); }
|
|
|
|
}; // fsm_EspuiClient_state_Rebuilding
|
|
|
|
class fsm_EspuiClient_state_Reloading : public fsm_EspuiClient_state
|
|
{
|
|
public:
|
|
fsm_EspuiClient_state_Reloading() {}
|
|
virtual ~fsm_EspuiClient_state_Reloading() {}
|
|
|
|
virtual bool NotifyClient() { return false; }
|
|
virtual void ProcessAck(uint16_t) {}
|
|
String GetStateName() { return String(F("Reloading")); }
|
|
|
|
}; // fsm_EspuiClient_state_Reloading
|
|
|