]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/robofsm/common-states.h
robofsm: Add new states.
[eurobot/public.git] / src / robofsm / common-states.h
1 #ifndef COMMON_STATES_H
2 #define COMMON_STATES_H
3
4 #define FSM_MAIN
5
6 #include "roboevent.h"
7 #include <fsm.h>
8
9 extern struct TrajectoryConstraints tcFast, tcVeryFast, tcSlow, tcVerySlow;
10 extern bool build_tower, tower, bonus_placed;
11
12 /* strategy FSM */
13 FSM_STATE_DECL(start_pick_all_our_figures);
14 FSM_STATE_DECL(start_pick_two_our_figures);
15 FSM_STATE_DECL(start_pick_third_figure);
16 FSM_STATE_DECL(start_pick_fourth_figure);
17 FSM_STATE_DECL(start_pick_center_figure);
18
19 /* common FSM states */
20 FSM_STATE_DECL(bypass_figure_in_front_of_start);
21 FSM_STATE_DECL(move_around);
22 FSM_STATE_DECL(place_figure_to_near_area);
23 FSM_STATE_DECL(leave_near_figure);
24
25 /* pick opponent bonus figure states */
26 FSM_STATE_DECL(approach_opp_bonus_figure);
27 FSM_STATE_DECL(load_opp_bonus_figure);
28 FSM_STATE_DECL(place_opp_bonus_figure);
29 FSM_STATE_DECL(leave_opp_bonus_figure);
30
31 /* pick second green figure FSM */
32 FSM_STATE_DECL(approach_second_green_figure);
33 FSM_STATE_DECL(load_second_green_figure);
34 FSM_STATE_DECL(go_out_second_green_figure);
35 FSM_STATE_DECL(place_figure_to_protected_block);
36 FSM_STATE_DECL(leave_protected_figure);
37
38 /* pick third green figure FSM */
39 FSM_STATE_DECL(approach_third_green_figure);
40 FSM_STATE_DECL(load_third_green_figure);
41 FSM_STATE_DECL(go_out_third_green_figure);
42 FSM_STATE_DECL(place_figure_to_bonus_area);
43 FSM_STATE_DECL(leave_bonus_figure);
44
45 /* pick fourth green figure FSM */
46 FSM_STATE_DECL(approach_fourth_green_figure);
47 FSM_STATE_DECL(load_fourth_green_figure);
48 FSM_STATE_DECL(go_out_fourth_green_figure);
49 FSM_STATE_DECL(place_figure_to_red_square);
50 FSM_STATE_DECL(leave_red_square_figure);
51
52 /* pick fifth green figure FSM */
53 FSM_STATE_DECL(approach_fifth_green_figure);
54 FSM_STATE_DECL(load_fifth_green_figure);
55 FSM_STATE_DECL(go_out_fifth_green_figure);
56
57 /* pick center figure FSM */
58 FSM_STATE_DECL(approach_center_figure);
59 FSM_STATE_DECL(load_center_figure);
60
61 void start_entry();
62 void start_timer();
63 void start_go();
64 void start_exit();
65 bool read_sharp();
66
67 #endif