summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/loader.fsm
diff options
context:
space:
mode:
authorJérôme Jutteau2011-05-02 23:32:51 +0200
committerNicolas Schodet2011-05-02 23:32:51 +0200
commit2376aeb614d69d7050209f858818bfa7d36be398 (patch)
treededa5a2e0b95187c9fc295bf3f6c5230eb684b99 /digital/io/src/loader.fsm
parent8a6cac0a41be34d36122ab5271295b0ee83fddac (diff)
digital/io: adapt FSM to new FSM system (AngFSM)
Diffstat (limited to 'digital/io/src/loader.fsm')
-rw-r--r--digital/io/src/loader.fsm227
1 files changed, 0 insertions, 227 deletions
diff --git a/digital/io/src/loader.fsm b/digital/io/src/loader.fsm
deleted file mode 100644
index a188194e..00000000
--- a/digital/io/src/loader.fsm
+++ /dev/null
@@ -1,227 +0,0 @@
-# loader FSM
-loader
- Handle Eurobot 2010 robot clamp, elevator and output door.
-
-States:
- *LOADER_IDLE
- wait start
- LOADER_WAIT_JACK_IN
- wait until the jack is inserted for the first time
- LOADER_WAIT_JACK_OUT
- wait until the jack is removed to initialise robot
- LOADER_INIT_ELEVATOR_ZERO
- move the elevator down to find zero position
- LOADER_INIT_CLAMP_CLOSE
- test clamp closing
- LOADER_INIT_CLAMP_ZERO
- find clamp zero position
- LOADER_INIT_GATE_ZERO
- find gate zero
- LOADER_INIT_ELEVATOR_UP
- move the elevator up so that the robot can go to the wall
- LOADER_INIT_GATE_WAIT[timeout=225]
- wait with gate open
- LOADER_INIT_GATE_CLOSE
- close gate before start
- LOADER_UP
- up position, clamp is protected
- LOADER_DOWN
- down position, ready to take an element
- LOADER_UPING
- moving to the up position
- LOADER_DOWNING
- moving to the down position
- LOADER_ERROR
- error while moving up, stop in an unknown state
- LOADER_ERROR_DOWNING [timeout=225]
- error recovery moving down
- LOADER_ERROR_DOWNING_OPEN [timeout=225]
- error recovery moving down, open clamp
- LOADER_ERROR_UPING [timeout=225]
- error recovery moving up
- LOADER_ERROR_UPING_OPEN [timeout=225]
- error recovery moving up, open clamp
- LOADER_LOAD_CLOSING
- close clamp
- LOADER_LOAD_UPING
- move load up to the unload position
- LOADER_LOAD_UNLOADING
- open clamp to unload, wait until unload position
- LOADER_LOAD_UNLOADING_OPEN
- check clamp is open
- LOADER_LOAD_EMPTY_OPEN
- open clamp due to no elements to pick
-
-Events:
- elevator_succeed
- asserv success result
- elevator_failed
- asserv failure result
- elevator_unload_position
- elevator above unloading position
- clamp_failed
- asserv failure result
- gate_succeed
- asserv success result
- gate_failed
- asserv failure result
- loader_element
- element sensed between clamp to be loaded
- loader_down
- make the loader ready to load an element
- loader_up
- protect the clamp by moving it up
- loader_downed
- posted when loader successfully moved down
- loader_uped
- posted when loader successfully moved up
- loader_errored
- posted when loader in an unknown state due to error while moving up
- loader_black
- loader blocked, due to a black corn
-
-LOADER_IDLE:
- start -> LOADER_WAIT_JACK_IN
-
-LOADER_WAIT_JACK_IN:
- jack_inserted_into_bot -> LOADER_WAIT_JACK_OUT
- hola_start -> LOADER_IDLE
-
-LOADER_WAIT_JACK_OUT:
- jack_removed_from_bot -> LOADER_INIT_ELEVATOR_ZERO
- find elevator zero
- close clamp
- find gate zero
-
-LOADER_INIT_ELEVATOR_ZERO:
- elevator_succeed -> LOADER_INIT_CLAMP_CLOSE
-
-LOADER_INIT_CLAMP_CLOSE:
- clamp_succeed -> LOADER_INIT_CLAMP_ZERO
- move elevator up
- find clamp zero
-
-LOADER_INIT_CLAMP_ZERO:
- clamp_succeed -> LOADER_INIT_GATE_ZERO
-
-LOADER_INIT_GATE_ZERO:
- gate_succeed -> LOADER_INIT_ELEVATOR_UP
-
-LOADER_INIT_ELEVATOR_UP:
- elevator_succeed -> LOADER_INIT_GATE_WAIT
- elevator_failed -> LOADER_IDLE
- initialisation failure
-
-LOADER_INIT_GATE_WAIT:
- state_timeout -> LOADER_INIT_GATE_CLOSE
- close gate
-
-LOADER_INIT_GATE_CLOSE:
- gate_succeed -> LOADER_UP
-
-LOADER_UP:
- loader_down -> LOADER_DOWNING
- move down
-
-LOADER_DOWN:
- loader_up -> LOADER_UPING
- move up
- loader_element -> LOADER_LOAD_CLOSING
- clamp
-
-LOADER_ERROR:
- loader_down -> LOADER_ERROR_DOWNING
- move down
- loader_up -> LOADER_ERROR_UPING
- move up
-
-LOADER_ERROR_DOWNING:
- elevator_succeed -> LOADER_ERROR_DOWNING_OPEN
- release elevator motor
- open clamp
- elevator_failed -> LOADER_ERROR
- post loader_errored event
- state_timeout -> LOADER_ERROR
- post loader_errored event
-
-LOADER_ERROR_DOWNING_OPEN:
- clamp_succeed -> LOADER_DOWN
- post loader_downed event
- clamp_failed -> LOADER_ERROR
- post loader_errored event
- state_timeout -> LOADER_ERROR
- post loader_errored event
-
-LOADER_ERROR_UPING:
- elevator_succeed -> LOADER_ERROR_UPING_OPEN
- open clamp
- elevator_failed -> LOADER_ERROR
- post loader_errored event
- state_timeout -> LOADER_ERROR
- post loader_errored event
-
-LOADER_ERROR_UPING_OPEN:
- clamp_succeed -> LOADER_UP
- post loader_uped event
- clamp_failed -> LOADER_ERROR
- post loader_errored event
- state_timeout -> LOADER_ERROR
- post loader_errored event
-
-LOADER_DOWNING:
- elevator_succeed -> LOADER_DOWN
- release elevator motor
- post loader_downed event
- elevator_failed -> LOADER_ERROR
- post loader_errored event
- loader_element -> LOADER_ERROR
- emergency stop
- post loader_errored event
- loader_up -> LOADER_UPING
- move up
-
-LOADER_UPING:
- elevator_succeed -> LOADER_UP
- post loader_uped event
- elevator_failed -> LOADER_ERROR
- post loader_errored event
- loader_down -> LOADER_DOWNING
- move down
-
-LOADER_LOAD_CLOSING:
- clamp_succeed: full -> LOADER_LOAD_UPING
- move up
- count one element
- clamp_succeed: empty -> LOADER_LOAD_EMPTY_OPEN
- open clamp
-
-LOADER_LOAD_UPING:
- elevator_unload_position -> LOADER_LOAD_UNLOADING
- open clamp
- elevator_failed -> LOADER_ERROR
- post loader_errored or loader_black event
- remove one element
- open clamp
-
-LOADER_LOAD_UNLOADING:
- elevator_succeed -> LOADER_LOAD_UNLOADING_OPEN
- elevator_failed -> LOADER_ERROR
- post loader_errored event
- open clamp
-
-LOADER_LOAD_UNLOADING_OPEN:
- clamp_succeed: down -> LOADER_DOWNING
- move down
- clamp_succeed: up -> LOADER_UPING
- move up
- clamp_failed -> LOADER_ERROR
- post loader_errored event
-
-LOADER_LOAD_EMPTY_OPEN:
- clamp_succeed: down -> LOADER_DOWN
- post loader_downed event
- clamp_succeed: up -> LOADER_UPING
- move up
- clamp_failed -> LOADER_ERROR
- post loader_errored event
-