z1_controller/include/FSM/FiniteStateMachine.h

28 lines
554 B
C
Raw Normal View History

2022-07-20 11:11:38 +08:00
#ifndef FSM_H
#define FSM_H
#include <vector>
2022-11-11 19:49:41 +08:00
#include "FSM/FSMState.h"
#include "common/utilities/loop.h"
#include "control/CtrlComponents.h"
2022-07-20 11:11:38 +08:00
class FiniteStateMachine{
public:
2022-11-11 19:49:41 +08:00
FiniteStateMachine(std::vector<FSMState*> states, CtrlComponents *ctrlComp);
2022-07-20 11:11:38 +08:00
virtual ~FiniteStateMachine();
private:
void _run();
2022-11-11 19:49:41 +08:00
std::vector<FSMState*> _states;
2022-07-20 11:11:38 +08:00
2022-11-11 19:49:41 +08:00
FSMMode _mode;
2022-07-20 11:11:38 +08:00
bool _running;
2022-11-11 19:49:41 +08:00
FSMState* _currentState;
FSMState* _nextState;
2022-07-20 11:11:38 +08:00
int _nextStateEnum;
2022-11-11 19:49:41 +08:00
CtrlComponents *_ctrlComp;
2022-07-20 11:11:38 +08:00
LoopFunc *_runThread;
};
#endif // FSM_H