From 9698c90f847c3ae416f2183a26a3693aca0a8053 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 23 Apr 2010 00:33:38 +0200 Subject: digital/io/src: always update path obstacles --- digital/io/src/ai_move_cb.c | 7 ------- digital/io/src/main.c | 1 + digital/io/src/move.c | 13 +++++++++++++ digital/io/src/move.h | 4 ++++ 4 files changed, 18 insertions(+), 7 deletions(-) (limited to 'digital') diff --git a/digital/io/src/ai_move_cb.c b/digital/io/src/ai_move_cb.c index 3d19ef63..bca348f6 100644 --- a/digital/io/src/ai_move_cb.c +++ b/digital/io/src/ai_move_cb.c @@ -246,13 +246,6 @@ ai__MOVE_MOVING_BACKWARD_TO_TURN_FREELY__bot_move_failed (void) fsm_branch_t ai__MOVE_WAIT_FOR_CLEAR_PATH__state_timeout (void) { - uint8_t i; - /* Position sensed obstacle. */ - for (i = 0; i < main_obstacles_nb; i++) - { - path_obstacle (i, main_obstacles_pos[i].x, main_obstacles_pos[i].y, - MOVE_OBSTACLE_RADIUS, 0, MOVE_OBSTACLE_VALIDITY); - } /* Try to move. */ if (move_get_next_position ()) { diff --git a/digital/io/src/main.c b/digital/io/src/main.c index e06b5139..43d6948c 100644 --- a/digital/io/src/main.c +++ b/digital/io/src/main.c @@ -260,6 +260,7 @@ main_loop (void) position_t robot_pos; asserv_get_position (&robot_pos); main_obstacles_nb = radar_update (&robot_pos, main_obstacles_pos); + move_obstacles_update (); simu_send_pos_report (main_obstacles_pos, main_obstacles_nb, 0); } diff --git a/digital/io/src/move.c b/digital/io/src/move.c index f0996070..6eb9bfde 100644 --- a/digital/io/src/move.c +++ b/digital/io/src/move.c @@ -25,10 +25,14 @@ #include "common.h" #include "move.h" #include "fsm.h" +#include "bot.h" #include "radar.h" #include "asserv.h" #include "main.h" +#include "modules/path/path.h" +#include "modules/utils/utils.h" + /** * Internal data used by the move FSM. */ @@ -45,6 +49,15 @@ move_start (position_t position, uint8_t backward) fsm_handle_event (&ai_fsm, AI_EVENT_move_start); } +void +move_obstacles_update (void) +{ + uint8_t i; + for (i = 0; i < main_obstacles_nb; i++) + path_obstacle (i, main_obstacles_pos[i].x, main_obstacles_pos[i].y, + MOVE_OBSTACLE_RADIUS, 0, MOVE_OBSTACLE_VALIDITY); +} + void move_check_obstacles (void) { diff --git a/digital/io/src/move.h b/digital/io/src/move.h index 64100a14..173de27e 100644 --- a/digital/io/src/move.h +++ b/digital/io/src/move.h @@ -71,6 +71,10 @@ extern struct move_data_t move_data; void move_start (position_t position, uint8_t backward); +/** To be called when obstacles positions are computed. */ +void +move_obstacles_update (void); + /** Check for blocking obstacles. */ void move_check_obstacles (void); -- cgit v1.2.3