]> rtime.felk.cvut.cz Git - eurobot/public.git/commitdiff
robofsm: Add new states.
authorMichal Vokac <vokac.m@gmail.com>
Fri, 3 Jun 2011 10:03:56 +0000 (12:03 +0200)
committerMichal Vokac <vokac.m@gmail.com>
Fri, 3 Jun 2011 10:03:56 +0000 (12:03 +0200)
Added pick opponent bonus figure FSM.
Added pick fifth figure FSM.
Added pick center figure FSM.
Added new common states for placing third figure on another square when bonus square is full.

src/robofsm/common-states.h

index 4cc1963b1120ae84c4c9be91e6bd1ec3d621eb0c..a4c916c76ac8ba18865e533111097526c9318e3a 100644 (file)
@@ -6,16 +6,27 @@
 #include "roboevent.h"
 #include <fsm.h>
 
-extern struct TrajectoryConstraints tcJerk, tcFast, tcSlow, tcVerySlow;
+extern struct TrajectoryConstraints tcFast, tcVeryFast, tcSlow, tcVerySlow;
+extern bool build_tower, tower, bonus_placed;
 
 /* strategy FSM */
 FSM_STATE_DECL(start_pick_all_our_figures);
-FSM_STATE_DECL(start_pick_fourth_figure);
+FSM_STATE_DECL(start_pick_two_our_figures);
 FSM_STATE_DECL(start_pick_third_figure);
+FSM_STATE_DECL(start_pick_fourth_figure);
+FSM_STATE_DECL(start_pick_center_figure);
 
 /* common FSM states */
 FSM_STATE_DECL(bypass_figure_in_front_of_start);
 FSM_STATE_DECL(move_around);
+FSM_STATE_DECL(place_figure_to_near_area);
+FSM_STATE_DECL(leave_near_figure);
+
+/* pick opponent bonus figure states */
+FSM_STATE_DECL(approach_opp_bonus_figure);
+FSM_STATE_DECL(load_opp_bonus_figure);
+FSM_STATE_DECL(place_opp_bonus_figure);
+FSM_STATE_DECL(leave_opp_bonus_figure);
 
 /* pick second green figure FSM */
 FSM_STATE_DECL(approach_second_green_figure);
@@ -38,9 +49,19 @@ FSM_STATE_DECL(go_out_fourth_green_figure);
 FSM_STATE_DECL(place_figure_to_red_square);
 FSM_STATE_DECL(leave_red_square_figure);
 
+/* pick fifth green figure FSM */
+FSM_STATE_DECL(approach_fifth_green_figure);
+FSM_STATE_DECL(load_fifth_green_figure);
+FSM_STATE_DECL(go_out_fifth_green_figure);
+
+/* pick center figure FSM */
+FSM_STATE_DECL(approach_center_figure);
+FSM_STATE_DECL(load_center_figure);
+
 void start_entry();
 void start_timer();
 void start_go();
 void start_exit();
+bool read_sharp();
 
 #endif