mirror of
https://github.com/EyeTrackVR/OpenIris.git
synced 2025-11-04 15:39:42 +08:00
fixed statemanager class
- Implemented a proper templated statemanager - Any number of program states can be passed to the class.
This commit is contained in:
parent
abd1443bf5
commit
fca754d2cc
@ -1,23 +0,0 @@
|
||||
#include "StateManager.hpp"
|
||||
|
||||
template <class T>
|
||||
StateManager<T>::StateManager() {}
|
||||
|
||||
template <class T>
|
||||
StateManager<T>::~StateManager() {}
|
||||
|
||||
template <class T>
|
||||
void StateManager<T>::setState(T state)
|
||||
{
|
||||
_current_state = state;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get States
|
||||
* Returns the current state of the device
|
||||
*/
|
||||
template <class T>
|
||||
T StateManager<T>::getCurrentState()
|
||||
{
|
||||
return _current_state;
|
||||
}
|
||||
@ -85,15 +85,27 @@ template <class T>
|
||||
class StateManager
|
||||
{
|
||||
public:
|
||||
StateManager();
|
||||
virtual ~StateManager();
|
||||
StateManager() {}
|
||||
|
||||
void setState(T state);
|
||||
virtual ~StateManager() {}
|
||||
|
||||
T getCurrentState();
|
||||
void setState(T state)
|
||||
{
|
||||
_current_state = state;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get States
|
||||
* Returns the current state of the device
|
||||
*/
|
||||
T getCurrentState()
|
||||
{
|
||||
return _current_state;
|
||||
}
|
||||
|
||||
private:
|
||||
static T _current_state;
|
||||
T _current_state;
|
||||
};
|
||||
|
||||
|
||||
#endif // STATEMANAGER_HPP
|
||||
@ -15,7 +15,7 @@ void WiFiHandler::setupWifi(const char *ssid, const char *password, StateManager
|
||||
{
|
||||
wifi_status = WiFi.status();
|
||||
Serial.print(".");
|
||||
stateManager->setState(ProgramStates::DeviceStates::WiFiState_e::WiFiState_Connecting);
|
||||
stateManager->setState((ProgramStates::DeviceStates::WiFiState_e::WiFiState_Connecting));
|
||||
time_spent_connecting += 1600;
|
||||
delay(1600);
|
||||
}
|
||||
|
||||
@ -10,17 +10,20 @@
|
||||
|
||||
#include <network/OTA/OTA.hpp>
|
||||
|
||||
|
||||
|
||||
const char *MDSNTrackerName = "OpenIrisTracker";
|
||||
|
||||
int STREAM_SERVER_PORT = 80;
|
||||
int CONTROL_SERVER_PORT = 81;
|
||||
|
||||
StateManager<ProgramStates::DeviceStates::MDNSState_e> mdns_stateManager;
|
||||
StateManager<ProgramStates::DeviceStates::WiFiState_e> wifi_stateManager;
|
||||
StateManager<ProgramStates::DeviceStates::WebServerState_e> web_stateManager;
|
||||
StateManager<ProgramStates::DeviceStates::CameraState_e> camera_stateManager;
|
||||
StateManager<ProgramStates::DeviceStates::ButtonState_e> button_stateManager;
|
||||
StateManager<ProgramStates::DeviceStates::StreamState_e> stream_stateManager;
|
||||
StateManager<ProgramStates::DeviceStates::State_e> stateManager;
|
||||
StateManager<ProgramStates::DeviceStates::WiFiState_e> wifiStateManager;
|
||||
StateManager<ProgramStates::DeviceStates::WebServerState_e> webServerStateManager;
|
||||
StateManager<ProgramStates::DeviceStates::MDNSState_e> mdnsStateManager;
|
||||
StateManager<ProgramStates::DeviceStates::CameraState_e> cameraStateManager;
|
||||
StateManager<ProgramStates::DeviceStates::ButtonState_e> buttonStateManager;
|
||||
StateManager<ProgramStates::DeviceStates::StreamState_e> streamStateManager;
|
||||
|
||||
OTA ota;
|
||||
LEDManager ledManager(33);
|
||||
@ -35,8 +38,8 @@ void setup()
|
||||
ledManager.begin();
|
||||
cameraHandler.setupCamera();
|
||||
|
||||
WiFiHandler::setupWifi(ssid, password, &wifi_stateManager);
|
||||
MDNSHandler::setupMDNS(MDSNTrackerName, &mdns_stateManager);
|
||||
WiFiHandler::setupWifi(ssid, password, &wifiStateManager);
|
||||
MDNSHandler::setupMDNS(MDSNTrackerName, &mdnsStateManager);
|
||||
apiServer.startAPIServer();
|
||||
streamServer.startStreamServer();
|
||||
ledManager.onOff(true);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user