summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/move.c
diff options
context:
space:
mode:
authorNicolas Schodet2010-04-13 00:22:28 +0200
committerNicolas Schodet2010-04-13 00:22:28 +0200
commit621fd67190770e3f8bace929d5fb9f5633220475 (patch)
tree050e376bfd1e4b8320549cc24d38ca27e95f767e /digital/io/src/move.c
parentb87e61cba74767dcb84d027c44efd27032141462 (diff)
digital/io/src: add blocking obstacle event, closes #129
Diffstat (limited to 'digital/io/src/move.c')
-rw-r--r--digital/io/src/move.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/digital/io/src/move.c b/digital/io/src/move.c
index 69f71b31..f0996070 100644
--- a/digital/io/src/move.c
+++ b/digital/io/src/move.c
@@ -25,6 +25,9 @@
#include "common.h"
#include "move.h"
#include "fsm.h"
+#include "radar.h"
+#include "asserv.h"
+#include "main.h"
/**
* Internal data used by the move FSM.
@@ -42,3 +45,16 @@ move_start (position_t position, uint8_t backward)
fsm_handle_event (&ai_fsm, AI_EVENT_move_start);
}
+void
+move_check_obstacles (void)
+{
+ if (fsm_can_handle_event (&ai_fsm, AI_EVENT_obstacle_in_front))
+ {
+ position_t robot_pos;
+ asserv_get_position (&robot_pos);
+ if (radar_blocking (&robot_pos.v, &move_data.step, main_obstacles_pos,
+ main_obstacles_nb))
+ fsm_handle_event (&ai_fsm, AI_EVENT_obstacle_in_front);
+ }
+}
+