From fe415bb389823f1557ef05324bbc966bd42de0a4 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 3 Jun 2011 13:00:45 +0200 Subject: digital/io-hub: do not signal bumped element --- digital/io-hub/src/robospierre/top.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'digital') diff --git a/digital/io-hub/src/robospierre/top.c b/digital/io-hub/src/robospierre/top.c index 09de28f6..595371f7 100644 --- a/digital/io-hub/src/robospierre/top.c +++ b/digital/io-hub/src/robospierre/top.c @@ -261,7 +261,8 @@ FSM_TRANS (TOP_GOING_TO_DROP, move_failure, drop, TOP_GOING_TO_DROP, element, TOP_GOING_TO_ELEMENT) { - element_failure (ctx.target_element_id); + if (ctx.target_element_id != 0xff) + element_failure (ctx.target_element_id); if (clamp_working ()) return FSM_NEXT (TOP_GOING_TO_DROP, move_failure, clamp_working); switch (top_decision ()) @@ -282,7 +283,8 @@ FSM_TRANS (TOP_GOING_TO_ELEMENT, move_success, drop, TOP_GOING_TO_DROP, element, TOP_GOING_TO_ELEMENT) { - element_failure (ctx.target_element_id); /* Do not take this one again. */ + if (ctx.target_element_id != 0xff) + element_failure (ctx.target_element_id); /* Do not take this one again. */ if (clamp_working ()) return FSM_NEXT (TOP_GOING_TO_ELEMENT, move_success, clamp_working); switch (top_decision ()) @@ -297,7 +299,8 @@ FSM_TRANS (TOP_GOING_TO_ELEMENT, move_failure, drop, TOP_GOING_TO_DROP, element, TOP_GOING_TO_ELEMENT) { - element_failure (ctx.target_element_id); + if (ctx.target_element_id != 0xff) + element_failure (ctx.target_element_id); if (clamp_working ()) return FSM_NEXT (TOP_GOING_TO_ELEMENT, move_failure, clamp_working); switch (top_decision ()) @@ -318,6 +321,7 @@ FSM_TRANS (TOP_GOING_TO_ELEMENT, top_bumper, TOP_GOING_TO_ELEMENT) if (!ctx.broken) logistic_global.prepare = top_prepare_level (); move_stop (); + ctx.target_element_id = 0xff; top_go_this_element (pawn_sensor_get_last_bumped (), BOT_ELEMENT_RADIUS - 50); return FSM_NEXT (TOP_GOING_TO_ELEMENT, top_bumper); } @@ -392,7 +396,8 @@ FSM_TRANS (TOP_WAITING_READY, clamp_blocked, TOP_UNBLOCKING_SHAKE_WAIT) FSM_TRANS (TOP_DROP_DROPPING, clamp_drop_waiting, TOP_DROP_CLEARING) { - element_down (ctx.target_element_id, ELEMENT_TOWER); + if (ctx.target_element_id != 0xff) + element_down (ctx.target_element_id, ELEMENT_TOWER); asserv_move_linearly (logistic_global.collect_direction == DIRECTION_FORWARD ? 150 : -150); return FSM_NEXT (TOP_DROP_DROPPING, clamp_drop_waiting); -- cgit v1.2.3