4 * @author Petr Silhavik
8 #include <boost/statechart/event.hpp>
12 namespace sc = boost::statechart;
14 struct evTimeout : sc::event< evTimeout > {
16 evTimeout(void *par = NULL) : ev_ptr(par) {};
19 struct evRunSubFSM : sc::event< evRunSubFSM > {
21 evRunSubFSM(void *par = NULL) : ev_ptr(par) {};
24 struct evTargetDetected : sc::event< evTargetDetected > {
26 evTargetDetected(void *par = NULL) : ev_ptr(par) {};
29 struct evEntry : sc::event< evEntry > {
31 evEntry(void *par = NULL) : ev_ptr(par) {};
34 * evReturn - return from subfsm.
36 struct evReturn : sc::event< evReturn > {
38 evReturn(void *par = NULL) : ev_ptr(par) {};
42 * evTimer - Basic event for timeout.
44 struct evTimer : sc::event< evTimer > {
46 evTimer(void *par = NULL) : ev_ptr(par) {};
50 * evStart - Changed state of start connector.
52 struct evStart : sc::event< evStart > {
54 evStart(void *par = NULL) : ev_ptr(par) {};
58 * evCraneDone - Crane is in requested position.
60 struct evCraneDone : sc::event< evCraneDone > {
62 evCraneDone(void *par = NULL) : ev_ptr(par) {};
68 struct evCameraDone : sc::event< evCameraDone > {
70 evCameraDone(void *par = NULL) : ev_ptr(par) {};
74 * evSwitchStrategy - Switch between strategies.
76 struct evSwitchStrategy : sc::event< evSwitchStrategy > {
78 evSwitchStrategy(void *par = NULL) : ev_ptr(par) {};
82 * evMotionDone - Previously submitted motion is finished.
84 struct evMotionDone : sc::event< evMotionDone > {
86 evMotionDone(void *par = NULL) : ev_ptr(par) {};
90 * evMotionError - "Motion FSM cannot finish the requested command even after several attempts (obstacles on the road, lost several times etc.).
92 struct evMotionError : sc::event< evMotionError > {
94 evMotionError(void *par = NULL) : ev_ptr(par) {};
98 * evMoveStop - Stop current motion as fast as possible.
100 struct evMoveStop : sc::event< evMoveStop > {
102 evMoveStop(void *par = NULL) : ev_ptr(par) {};
106 * evNewTarget - New target (point or trajectory) is sent.
108 struct evNewTarget : sc::event< evNewTarget > {
110 evNewTarget(void *par = NULL) : ev_ptr(par) {};
114 * evTrajectoryLost - Actual position of the robot is too far from reference.
116 struct evTrajectoryLost : sc::event< evTrajectoryLost > {
118 evTrajectoryLost(void *par = NULL) : ev_ptr(par) {};
122 * evTrajectoryDone - Reference position is at the end of the previously submitted trajectory.
124 struct evTrajectoryDone : sc::event< evTrajectoryDone > {
126 evTrajectoryDone(void *par = NULL) : ev_ptr(par) {};
130 * evObstacle - An obstacle is detected on actual trajectory - we must avoid it.
132 struct evObstacle : sc::event< evObstacle > {
134 evObstacle(void *par = NULL) : ev_ptr(par) {};
138 * evObstacleBehind - An obstacle is behind the robot.
140 struct evObstacleBehind : sc::event< evObstacleBehind > {
142 evObstacleBehind(void *par = NULL) : ev_ptr(par) {};
146 * evObstacleSide - An obstacle is beside the robot.
148 struct evObstacleSide : sc::event< evObstacleSide > {
150 evObstacleSide(void *par = NULL) : ev_ptr(par) {};
154 * evCompetitionTimeout - An obstacle is beside the robot.
156 struct evCompetitionTimeout : sc::event< evCompetitionTimeout > {
158 evCompetitionTimeout(void *par = NULL) : ev_ptr(par) {};