]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/robofsm/strategy_pick_all_our_figures.cc
robofsm: Add competition sources.
[eurobot/public.git] / src / robofsm / strategy_pick_all_our_figures.cc
1 #include "common-states.h"
2 #include "robot.h"
3 #include <ul_log.h>
4
5 UL_LOG_CUST(ulogd_strategy_pick_all_our_figures); /* Log domain name = ulogd + name of the file */
6
7 static FSM_STATE_DECL(bypass_figure);
8
9 FSM_STATE(start_all_our_figures)
10 {
11         switch (FSM_EVENT) {
12                 case EV_ENTRY:
13                         start_entry();
14 #ifdef COMPETITION
15                         ul_logmsg("waiting for start\n");
16                         FSM_TIMER(1000);
17                         break;
18 #endif
19                 case EV_START:
20                         start_go();
21                         FSM_TRANSITION(bypass_figure);
22                         break;
23                 case EV_TIMER:
24                         FSM_TIMER(1000);
25                         start_timer();
26                         break;
27                 case EV_EXIT:
28                         start_exit();
29                         break;
30                 case EV_SWITCH_STRATEGY:
31                         //FSM_TRANSITION(start_12_oranges);
32                         break;
33                 default:;
34         }
35 }
36
37
38 #undef FSM_STATE_VISIBILITY
39 #define FSM_STATE_VISIBILITY static
40
41 FSM_STATE_DECL(pick_our_green_figures);
42 // FSM_STATE_DECL(unload_oranges);
43 // FSM_STATE_DECL(opp_corns);
44
45 FSM_STATE(bypass_figure)
46 {
47         switch (FSM_EVENT) {
48         case EV_ENTRY:
49                 SUBFSM_TRANSITION(bypass_figure_in_front_of_start, NULL);
50                 break;
51         case EV_RETURN:
52                 FSM_TRANSITION(pick_our_green_figures);
53                 break;
54         default: break;
55         }
56 }
57
58 FSM_STATE(pick_our_green_figures)
59 {
60         switch (FSM_EVENT) {
61         case EV_ENTRY:
62                 SUBFSM_TRANSITION(approach_second_green_figure, NULL);
63                 break;
64         case EV_RETURN:
65                 //FSM_TRANSITION(unload_oranges);
66                 break;
67         default: break;
68         }
69 }
70
71 // FSM_STATE(unload_oranges)
72 // {
73 //      switch (FSM_EVENT) {
74 //      case EV_ENTRY:  SUBFSM_TRANSITION(to_cntainer_and_unld, NULL); break;
75 //      case EV_RETURN: FSM_TRANSITION(opp_corns); break;
76 //      default: break;
77 //      }
78 // }
79 //
80 // FSM_STATE(opp_corns)
81 // {
82 //      switch (FSM_EVENT) {
83 //      case EV_ENTRY:  SUBFSM_TRANSITION(approach_next_corn, NULL); break;
84 //      case EV_RETURN: FSM_TRANSITION(opp_corns); break;
85 //      default: break;
86 //      }
87 // }