summaryrefslogtreecommitdiff
path: root/digital/io/src/ai_top_cb.c
diff options
context:
space:
mode:
authorNicolas Schodet2010-05-14 12:25:27 +0200
committerNicolas Schodet2010-05-14 12:25:27 +0200
commit323ad8abc26d3fe2f89c07a36288469ad6a4139f (patch)
treebd375d40ea96e8100c26726f13c0d0dbe964eee7 /digital/io/src/ai_top_cb.c
parent050f746a20e818660102a94c5107788a491fcac3 (diff)
digital/io/src: handle black corn
Diffstat (limited to 'digital/io/src/ai_top_cb.c')
-rw-r--r--digital/io/src/ai_top_cb.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/digital/io/src/ai_top_cb.c b/digital/io/src/ai_top_cb.c
index c2d05012..2041ab7b 100644
--- a/digital/io/src/ai_top_cb.c
+++ b/digital/io/src/ai_top_cb.c
@@ -313,4 +313,48 @@ ai__COLLECT_SLOW_MOTION__bot_move_failed (void)
return ai_next_branch (COLLECT_SLOW_MOTION, bot_move_failed, unload);
}
+/*
+ * COLLECT_SLOW_MOTION =loader_black=>
+ * => COLLECT_BLACK
+ * speed up
+ * move backward
+ * mark as black
+ */
+fsm_branch_t
+ai__COLLECT_SLOW_MOTION__loader_black (void)
+{
+ asserv_set_speed (BOT_MOVE_SLOW);
+ asserv_move_linearly (-90);
+ food_black (top_food);
+ return ai_next (COLLECT_SLOW_MOTION, loader_black);
+}
+
+/*
+ * COLLECT_BLACK =bot_move_succeed=>
+ * unload => UNLOAD
+ * collect => COLLECT
+ */
+fsm_branch_t
+ai__COLLECT_BLACK__bot_move_succeed (void)
+{
+ if (top_collect (0))
+ return ai_next_branch (COLLECT_BLACK, bot_move_succeed, collect);
+ else
+ return ai_next_branch (COLLECT_BLACK, bot_move_succeed, unload);
+}
+
+/*
+ * COLLECT_BLACK =bot_move_failed=>
+ * unload => UNLOAD
+ * collect => COLLECT
+ */
+fsm_branch_t
+ai__COLLECT_BLACK__bot_move_failed (void)
+{
+ if (top_collect (0))
+ return ai_next_branch (COLLECT_BLACK, bot_move_failed, collect);
+ else
+ return ai_next_branch (COLLECT_BLACK, bot_move_failed, unload);
+}
+