tx-gxx-linux/device/gxx-linux/motorcontroller/IState.h

33 lines
732 B
C
Raw Normal View History

2023-05-02 01:50:55 +00:00
#pragma once
#include <sstream>
#include <thread>
#include <memory>
#include <atomic>
#include <functional>
#include "Statedef.h"
#include "BlockingQueue.h"
#include "LCDDisplay.h"
class IState
{
public:
IState(/* args */){
display = std::make_unique<LCDDisplay>();
}
virtual ~IState(){}
virtual void InitState(int state=0) =0;
virtual IState* OnState(StateInfo state) = 0;
virtual void SetBtnCall(std::function<void()> call) = 0;
std::string typeName = "FsmState";
static void SetConfirmCall(std::function<void()> confirmcall)
{
m_confirmcall = confirmcall;
}
private:
static std::function<void()> m_confirmcall;
protected:
std::unique_ptr<LCDDisplay> display;
};