From df32c7a59f59166a22eff4f2a76ec6244c64d721 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 14 May 2010 03:23:08 +0200 Subject: digital/io/src: handle loader blocking --- digital/io/src/move.fsm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'digital/io/src/move.fsm') diff --git a/digital/io/src/move.fsm b/digital/io/src/move.fsm index 20334686..2812f686 100644 --- a/digital/io/src/move.fsm +++ b/digital/io/src/move.fsm @@ -16,6 +16,10 @@ States: moving backward to go away from what is blocking the bot. MOVE_WAIT_FOR_CLEAR_PATH [timeout=255] waiting for obstacle to disappear. + MOVE_LOADER_UNBLOCKING_UPING + moving loader up and move backward to unblock loader. + MOVE_LOADER_UNBLOCKING_DOWNING + moving loader down. Events: move_start @@ -34,6 +38,9 @@ MOVE_IDLE: MOVE_ROTATING: bot_move_succeed -> MOVE_MOVING move to next position. + loader_errored -> MOVE_LOADER_UNBLOCKING_UPING + move backward + loader up MOVE_MOVING: bot_move_succeed: done -> MOVE_IDLE @@ -50,6 +57,9 @@ MOVE_MOVING: obstacle_in_front -> MOVE_WAIT_FOR_CLEAR_PATH reset final_move. stop the bot. + loader_errored -> MOVE_LOADER_UNBLOCKING_UPING + move backward + loader up MOVE_MOVING_BACKWARD_TO_TURN_FREELY: bot_move_succeed: path_found_rotate -> MOVE_ROTATING @@ -74,3 +84,19 @@ MOVE_WAIT_FOR_CLEAR_PATH: decrement counter. state_timeout: no_path_found_and_no_try_again -> MOVE_IDLE post failure. + +MOVE_LOADER_UNBLOCKING_UPING: + bot_move_succeed -> MOVE_LOADER_UNBLOCKING_DOWNING + loader down + bot_move_failed -> MOVE_LOADER_UNBLOCKING_DOWNING + loader down + +MOVE_LOADER_UNBLOCKING_DOWNING: + loader_downed: rotate -> MOVE_ROTATING + repeat last rotate + loader_downed: move -> MOVE_MOVING + repeat last move + loader_errored -> MOVE_LOADER_UNBLOCKING_UPING + move backward + loader up + -- cgit v1.2.3