summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/elevator_cb.c
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/elevator_cb.c')
-rw-r--r--digital/io/src/elevator_cb.c77
1 files changed, 30 insertions, 47 deletions
diff --git a/digital/io/src/elevator_cb.c b/digital/io/src/elevator_cb.c
index 7fc880c6..d6cf1005 100644
--- a/digital/io/src/elevator_cb.c
+++ b/digital/io/src/elevator_cb.c
@@ -1,4 +1,4 @@
-/* filterbridge_cb.c - filterbridge FSM callbacks. */
+/* elevator_cb.c - elevator FSM callbacks. */
/* {{{
*
* Copyright (C) 2009 Nicolas Haller
@@ -49,17 +49,6 @@ elevator__WAIT_FOR_CLOSE_ORDER__order_received (void)
}
/*
- * CLOSE_DOORS =doors_closed=>
- * => GO_TO_POS_X
- * pucks are released and elevator is ready to make a new column
- */
-fsm_branch_t
-elevator__CLOSE_DOORS__doors_closed (void)
-{
- return elevator_next (CLOSE_DOORS, doors_closed);
-}
-
-/*
* WAIT_A_PUCK =time_up=>
* => WAIT_POS_ORDER
* no more time to wait a new puck
@@ -72,24 +61,29 @@ elevator__WAIT_A_PUCK__time_up (void)
/*
* WAIT_A_PUCK =new_puck=>
- * => BLAH
+ * ok_for_other_pucks => GO_TO_POS_X
* incrementing nb_puck var
+ * update elevator position to get a new puck
+ * not_ok_for_other_pucks => WAIT_POS_ORDER
+ * incrementing nb_puck var
+ * no more time to wait a new puck
*/
fsm_branch_t
elevator__WAIT_A_PUCK__new_puck (void)
{
- return elevator_next (WAIT_A_PUCK, new_puck);
+ return elevator_next_branch (WAIT_A_PUCK, new_puck, ok_for_other_pucks);
+ return elevator_next_branch (WAIT_A_PUCK, new_puck, not_ok_for_other_pucks);
}
/*
- * GO_TO_POX_Y =in_position=>
+ * GO_TO_POS_Y =in_position=>
* => WAIT_FOR_RELEASE_ORDER
* ready to release pucks at altitude Y
*/
fsm_branch_t
-elevator__GO_TO_POX_Y__in_position (void)
+elevator__GO_TO_POS_Y__in_position (void)
{
- return elevator_next (GO_TO_POX_Y, in_position);
+ return elevator_next (GO_TO_POS_Y, in_position);
}
/*
@@ -104,58 +98,47 @@ elevator__GO_TO_POS_X__in_position (void)
}
/*
- * WAIT_FOR_RELEASE_ORDER =order_received=>
- * => OPEN_DOORS
- * release pucks to the target position (I hope)
+ * IDLE =started=>
+ * => GO_TO_POS_X
+ * match begin, we're going to be ready to get a new puck
*/
fsm_branch_t
-elevator__WAIT_FOR_RELEASE_ORDER__order_received (void)
+elevator__IDLE__started (void)
{
- return elevator_next (WAIT_FOR_RELEASE_ORDER, order_received);
+ return elevator_next (IDLE, started);
}
/*
- * BLAH =not_ok_for_other_pucks=>
- * => WAIT_POS_ORDER
- * no more puck, going next step
+ * WAIT_FOR_RELEASE_ORDER =order_received=>
+ * => OPEN_DOORS
+ * release pucks to the target position (I hope)
*/
fsm_branch_t
-elevator__BLAH__not_ok_for_other_pucks (void)
+elevator__WAIT_FOR_RELEASE_ORDER__order_received (void)
{
- return elevator_next (BLAH, not_ok_for_other_pucks);
+ return elevator_next (WAIT_FOR_RELEASE_ORDER, order_received);
}
/*
- * BLAH =ok_for_other_pucks=>
- * => GO_TO_POS_X
- * update elevator position to get a new puck
+ * WAIT_POS_ORDER =order_received=>
+ * => GO_TO_POS_Y
+ * go to position Y
*/
fsm_branch_t
-elevator__BLAH__ok_for_other_pucks (void)
+elevator__WAIT_POS_ORDER__order_received (void)
{
- return elevator_next (BLAH, ok_for_other_pucks);
+ return elevator_next (WAIT_POS_ORDER, order_received);
}
/*
- * IDLE =started=>
+ * CLOSE_DOORS =doors_closed=>
* => GO_TO_POS_X
- * match begin, we're going to be ready to get a new puck
- */
-fsm_branch_t
-elevator__IDLE__started (void)
-{
- return elevator_next (IDLE, started);
-}
-
-/*
- * WAIT_POS_ORDER =order_received=>
- * => GO_TO_POX_Y
- * go to position Y
+ * pucks are released and elevator is ready to make a new column
*/
fsm_branch_t
-elevator__WAIT_POS_ORDER__order_received (void)
+elevator__CLOSE_DOORS__doors_closed (void)
{
- return elevator_next (WAIT_POS_ORDER, order_received);
+ return elevator_next (CLOSE_DOORS, doors_closed);
}