15 #include <boost/statechart/event.hpp>
16 #include <boost/statechart/state_machine.hpp>
17 #include <boost/statechart/simple_state.hpp>
18 #include <boost/statechart/custom_reaction.hpp>
19 #include <boost/statechart/transition.hpp>
20 #include <boost/mpl/list.hpp>
22 namespace sc = boost::statechart;
23 namespace mpl = boost::mpl;
45 struct NA2WF : sc::event <NA2WF> {};
47 struct J2NA : sc::event <J2NA> {};
48 struct J2WF : sc::event <J2WF> {};
49 struct J2IP : sc::event <J2IP> {};
51 struct WF2J : sc::event <WF2J> {};
52 struct WF2NA : sc::event <WF2NA> {};
53 struct WF2IP : sc::event <WF2IP> {};
55 struct IP2J : sc::event <IP2J> {};
56 struct IP2WF : sc::event <IP2WF> {};
57 struct IP2NA : sc::event <IP2NA> {};
58 struct IP2L : sc::event <IP2L> {};
60 struct L2WF : sc::event <L2WF> {};
61 struct L2NA : sc::event <L2NA> {};
82 struct WANT_TO_FORM : sc::simple_state<WANT_TO_FORM, PlatooningStateMachine>
92 sc:: transition<WF2NA, NOT_ABLE> ,
93 sc:: transition<WF2J, JOINING> ,
97 struct NOT_ABLE: sc::simple_state <NOT_ABLE, PlatooningStateMachine>
107 struct JOINING: sc::simple_state <JOINING, PlatooningStateMachine>
116 sc:: transition<J2WF, WANT_TO_FORM>,
117 sc:: transition<J2NA, NOT_ABLE>,
120 struct IN_PLATOON: sc::simple_state <IN_PLATOON, PlatooningStateMachine>
129 sc:: transition<IP2J, JOINING> ,
130 sc:: transition<IP2WF, WANT_TO_FORM> ,
131 sc:: transition<IP2NA, NOT_ABLE> ,
134 struct LEAVING: sc::simple_state <LEAVING, PlatooningStateMachine>
143 sc:: transition<L2WF, WANT_TO_FORM> ,
PLATOONING_STATE
Definition: platoonStateMachine.h:42
@ Joining
Definition: platoonStateMachine.h:42
@ InPlatoon
Definition: platoonStateMachine.h:42
@ NotAble
Definition: platoonStateMachine.h:42
@ Leaving
Definition: platoonStateMachine.h:42
@ WantToForm
Definition: platoonStateMachine.h:42
double tau
Definition: platoonStateMachine.h:39
int PlatooningState
Definition: platoonStateMachine.h:67
double tau_normalDriving
Definition: platoonStateMachine.h:41
double tau_platooning
Definition: platoonStateMachine.h:40
AUTOMATION_LEVEL
Definition: platoonStateMachine.h:43
@ SAE_LEVEL3
Definition: platoonStateMachine.h:43
@ SAE_LEVEL1
Definition: platoonStateMachine.h:43
@ SAE_LEVEL0
Definition: platoonStateMachine.h:43
@ SAE_LEVEL4
Definition: platoonStateMachine.h:43
@ SAE_LEVEL5
Definition: platoonStateMachine.h:43
@ SAE_LEVEL2
Definition: platoonStateMachine.h:43
Definition: initial_state_selector.h:26
Definition: areaofeffectconverter.h:20
Definition: platoonStateMachine.h:121
mpl::list< sc::transition< IP2J, JOINING >, sc::transition< IP2WF, WANT_TO_FORM >, sc::transition< IP2NA, NOT_ABLE >, sc::transition< IP2L, LEAVING > > reactions
Definition: platoonStateMachine.h:132
IN_PLATOON()
Definition: platoonStateMachine.h:122
Definition: platoonStateMachine.h:55
Definition: platoonStateMachine.h:58
Definition: platoonStateMachine.h:57
Definition: platoonStateMachine.h:56
Definition: platoonStateMachine.h:49
Definition: platoonStateMachine.h:47
Definition: platoonStateMachine.h:48
Definition: platoonStateMachine.h:108
JOINING()
Definition: platoonStateMachine.h:109
mpl::list< sc::transition< J2WF, WANT_TO_FORM >, sc::transition< J2NA, NOT_ABLE >, sc::transition< J2IP, IN_PLATOON > > reactions
Definition: platoonStateMachine.h:118
Definition: platoonStateMachine.h:61
Definition: platoonStateMachine.h:60
Definition: platoonStateMachine.h:135
mpl::list< sc::transition< L2WF, WANT_TO_FORM >, sc::transition< L2NA, NOT_ABLE > > reactions
Definition: platoonStateMachine.h:144
LEAVING()
Definition: platoonStateMachine.h:136
Definition: platoonStateMachine.h:45
Definition: platoonStateMachine.h:98
sc::transition< NA2WF, WANT_TO_FORM > reactions
Definition: platoonStateMachine.h:105
NOT_ABLE()
Definition: platoonStateMachine.h:99
Definition: platoonStateMachine.h:72
double getTimeHeadway()
Definition: platoonStateMachine.h:76
int getPlatooningState()
Definition: platoonStateMachine.h:77
double getInPlatoonTimeHeadway()
Definition: platoonStateMachine.h:78
Definition: platoonStateMachine.h:53
Definition: platoonStateMachine.h:51
Definition: platoonStateMachine.h:52