summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/loader.fsm
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/loader.fsm')
-rw-r--r--digital/io/src/loader.fsm22
1 files changed, 22 insertions, 0 deletions
diff --git a/digital/io/src/loader.fsm b/digital/io/src/loader.fsm
index 05918468..747bb51e 100644
--- a/digital/io/src/loader.fsm
+++ b/digital/io/src/loader.fsm
@@ -27,6 +27,12 @@ States:
moving to the down position
LOADER_ERROR
error while moving up, stop in an unknown state
+ LOADER_LOAD_CLOSING
+ close clamp
+ LOADER_LOAD_UPING
+ move load up to the unload position
+ LOADER_LOAD_UNLOADING
+ open clamp to unload
Events:
elevator_succeed
@@ -35,6 +41,8 @@ Events:
asserv failure result
clamp_succeed
asserv success result, clamp movement cannot fail
+ loader_element
+ element sensed between clamp to be loaded
loader_down
make the loader ready to load an element
loader_up
@@ -80,6 +88,8 @@ LOADER_UP:
LOADER_DOWN:
loader_up -> LOADER_UPING
move up
+ loader_element -> LOADER_LOAD_CLOSING
+ close clamp
LOADER_ERROR:
loader_down -> LOADER_DOWNING
@@ -99,3 +109,15 @@ LOADER_UPING:
elevator_failed -> LOADER_ERROR
post loader_errored event
+LOADER_LOAD_CLOSING:
+ clamp_succeed -> LOADER_LOAD_UPING
+ move up
+
+LOADER_LOAD_UPING:
+ elevator_succeed -> LOADER_LOAD_UNLOADING
+ open clamp
+
+LOADER_LOAD_UNLOADING:
+ clamp_succeed -> LOADER_DOWNING
+ move down
+