summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/loader.fsm
diff options
context:
space:
mode:
authorNicolas Schodet2010-05-02 10:08:55 +0200
committerNicolas Schodet2010-05-02 10:08:55 +0200
commit276f7610f1a44b065407fa276dfeee970034aa7d (patch)
treec1298733f165e6207a2025af9c327e2433f99734 /digital/io/src/loader.fsm
parentd261d97b1497f67503faa04b83a999848381a791 (diff)
digital/io/src: add loader FSM
Diffstat (limited to 'digital/io/src/loader.fsm')
-rw-r--r--digital/io/src/loader.fsm41
1 files changed, 41 insertions, 0 deletions
diff --git a/digital/io/src/loader.fsm b/digital/io/src/loader.fsm
new file mode 100644
index 00000000..c89e8931
--- /dev/null
+++ b/digital/io/src/loader.fsm
@@ -0,0 +1,41 @@
+# 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_ELEVATOR_UP
+ move the elevator up so that the robot can go to the wall
+
+Events:
+ elevator_succeed
+ asserv success result
+ elevator_failed
+ asserv failure result
+
+LOADER_IDLE:
+ start -> LOADER_WAIT_JACK_IN
+
+LOADER_WAIT_JACK_IN:
+ jack_inserted_into_bot -> LOADER_WAIT_JACK_OUT
+
+LOADER_WAIT_JACK_OUT:
+ jack_removed_from_bot -> LOADER_INIT_ELEVATOR_ZERO
+ find elevator zero
+
+LOADER_INIT_ELEVATOR_ZERO:
+ elevator_succeed -> LOADER_INIT_ELEVATOR_UP
+ move elevator up
+
+LOADER_INIT_ELEVATOR_UP:
+ elevator_succeed -> LOADER_IDLE
+ elevator_failed -> LOADER_IDLE
+ initialisation failure
+