summaryrefslogtreecommitdiff
path: root/digital/io/src/elevator.fsm
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/elevator.fsm')
-rw-r--r--digital/io/src/elevator.fsm15
1 files changed, 14 insertions, 1 deletions
diff --git a/digital/io/src/elevator.fsm b/digital/io/src/elevator.fsm
index cc815fb6..c844f88c 100644
--- a/digital/io/src/elevator.fsm
+++ b/digital/io/src/elevator.fsm
@@ -13,6 +13,8 @@ States:
go to a position to be ready to get a new puck
WAIT_A_PUCK
waiting for a new puck (hurry up filter bridge!)
+ WAIT_BRIDGE_EMPTY[timeout=1200]
+ waiting bridge empty
WAIT_POS_ORDER
waiting for position order (depending where we want to drop our column)
GO_TO_POS_Y
@@ -42,6 +44,8 @@ Events:
we received a new puck from FB (filter bridge, not facebook)
order_bypass
Dont wait to have 4 pucks but we wait we don't have puck before bridge
+ bridge_empty
+ the bridge is empty
order_received
we received a new order
doors_opened
@@ -74,9 +78,18 @@ WAIT_A_PUCK:
new_puck: not_ok_for_other_pucks -> WAIT_POS_ORDER
incrementing nb_puck var
no more time to wait a new puck
- order_bypass -> GO_TO_POS_Y
+ order_bypass -> WAIT_BRIDGE_EMPTY
elevator filling has been shut, get ready to drop pucks
+WAIT_BRIDGE_EMPTY:
+ bridge_empty -> GO_TO_POS_Y
+ bridge is empty, we are happy, we drop the column
+ state_timeout -> GO_TO_POS_Y
+ we suppose bridge is empty and we said it to the fsm
+ new_puck -> WAIT_A_PUCK
+ We have a new puck, elevator must move, we go to WAIT_A_PUCK
+
+
WAIT_POS_ORDER:
order_received -> GO_TO_POS_Y
go to position Y