summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/move.fsm
diff options
context:
space:
mode:
authorNicolas Schodet2010-05-15 07:28:21 +0200
committerNicolas Schodet2010-05-15 07:28:21 +0200
commit4560ca69f29acf76eaf3dc5dbadf9f3287108aca (patch)
tree94cc0bc6ee3623afe633c11b279fda646d0b9407 /digital/io/src/move.fsm
parentb1ea9f09b41984006d940a93e03756ea37e1e36c (diff)
digital/io/src: try to unblock, but give up if loader always blocked
Diffstat (limited to 'digital/io/src/move.fsm')
-rw-r--r--digital/io/src/move.fsm31
1 files changed, 25 insertions, 6 deletions
diff --git a/digital/io/src/move.fsm b/digital/io/src/move.fsm
index abedd8dd..fad6b6b7 100644
--- a/digital/io/src/move.fsm
+++ b/digital/io/src/move.fsm
@@ -18,7 +18,7 @@ States:
waiting for obstacle to disappear.
MOVE_LOADER_UNBLOCKING_UPING
moving loader up and move backward to unblock loader.
- MOVE_LOADER_UNBLOCKING_DOWNING
+ MOVE_LOADER_UNBLOCKING_DOWNING [timeout=450]
moving loader down.
Events:
@@ -93,15 +93,34 @@ MOVE_WAIT_FOR_CLEAR_PATH:
MOVE_LOADER_UNBLOCKING_UPING:
bot_move_succeed -> MOVE_LOADER_UNBLOCKING_DOWNING
loader down
+ reset unblocking retry counter
bot_move_failed -> MOVE_LOADER_UNBLOCKING_DOWNING
loader down
+ reset unblocking retry counter
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
+ loader_downed: path_found_rotate -> MOVE_ROTATING
+ rotate towards next position.
+ loader_downed: path_found -> MOVE_MOVING
+ move to next position.
+ loader_downed: no_path_found -> MOVE_IDLE
+ post failure.
+ loader_errored: tryagain -> MOVE_LOADER_UNBLOCKING_UPING
+ move backward
+ loader up
+ loader_errored: tryout_path_found_rotate -> MOVE_ROTATING
+ rotate towards next position.
+ loader_errored: tryout_path_found -> MOVE_ROTATING
+ move to next position.
+ loader_errored: tryout_no_path_found -> MOVE_IDLE
+ post failure.
+ state_timeout: tryagain -> MOVE_LOADER_UNBLOCKING_UPING
move backward
loader up
+ state_timeout: tryout_path_found_rotate -> MOVE_ROTATING
+ rotate towards next position.
+ state_timeout: tryout_path_found -> MOVE_ROTATING
+ move to next position.
+ state_timeout: tryout_no_path_found -> MOVE_IDLE
+ post failure.