From 621fd67190770e3f8bace929d5fb9f5633220475 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 13 Apr 2010 00:22:28 +0200 Subject: digital/io/src: add blocking obstacle event, closes #129 --- digital/io/src/move.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'digital/io/src/move.c') 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); + } +} + -- cgit v1.2.3