commit

Dependencies:   MPU6050_SIM5320_TEST

Fork of MPU_SDCARD by Suad Suljic

Committer:
suads
Date:
Fri Nov 10 15:35:26 2017 +0000
Revision:
1:75966605a6a3
mbed cli

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suads 1:75966605a6a3 1 #ifndef MOTIONFSM_FSM_H_
suads 1:75966605a6a3 2 #define MOTIONFSM_FSM_H_
suads 1:75966605a6a3 3 #include <State.h>
suads 1:75966605a6a3 4 #include "mbed.h"
suads 1:75966605a6a3 5
suads 1:75966605a6a3 6 #include <Events.h>
suads 1:75966605a6a3 7
suads 1:75966605a6a3 8 struct Stop;
suads 1:75966605a6a3 9 struct Move;
suads 1:75966605a6a3 10
suads 1:75966605a6a3 11 class FsmStates {
suads 1:75966605a6a3 12 public:
suads 1:75966605a6a3 13 FsmStates();
suads 1:75966605a6a3 14
suads 1:75966605a6a3 15 State* movingState();
suads 1:75966605a6a3 16 State* stacionaryState();
suads 1:75966605a6a3 17 State* currentState();
suads 1:75966605a6a3 18
suads 1:75966605a6a3 19 void currentState(State* state);
suads 1:75966605a6a3 20
suads 1:75966605a6a3 21 ~FsmStates();
suads 1:75966605a6a3 22
suads 1:75966605a6a3 23 private:
suads 1:75966605a6a3 24
suads 1:75966605a6a3 25 State* movingState_;
suads 1:75966605a6a3 26 State* stacionaryState_;
suads 1:75966605a6a3 27 State* currentState_;
suads 1:75966605a6a3 28
suads 1:75966605a6a3 29 Timer timer;
suads 1:75966605a6a3 30
suads 1:75966605a6a3 31 };
suads 1:75966605a6a3 32
suads 1:75966605a6a3 33 class Fsm {
suads 1:75966605a6a3 34 public:
suads 1:75966605a6a3 35 Fsm();
suads 1:75966605a6a3 36 template <typename Event>
suads 1:75966605a6a3 37 void handle(Event& event){
suads 1:75966605a6a3 38 State* state = states_.currentState()->handle(event);
suads 1:75966605a6a3 39 states_.currentState(state);
suads 1:75966605a6a3 40 }
suads 1:75966605a6a3 41
suads 1:75966605a6a3 42 virtual ~Fsm() {}
suads 1:75966605a6a3 43 FsmStates states_;
suads 1:75966605a6a3 44 private:
suads 1:75966605a6a3 45
suads 1:75966605a6a3 46
suads 1:75966605a6a3 47 };
suads 1:75966605a6a3 48 #endif /* ifndef MOTIONFSM_FSM_H_ */