summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src
diff options
context:
space:
mode:
authorNicolas Haller2009-05-21 08:59:09 +0200
committerNicolas Haller2009-05-21 08:59:09 +0200
commit710a5ffc18798f11b54d1a1df56d188b30cc8557 (patch)
tree36391c9cf89b6f1168421980b3c425df27f247e0 /digital/io/src
parent5d6d7db94b1192213b6eca94ab89f1707e8ee7de (diff)
* digital/io/src:
- fix the order bypass on elevator
Diffstat (limited to 'digital/io/src')
-rw-r--r--digital/io/src/elevator.fsm12
-rw-r--r--digital/io/src/elevator_cb.c21
-rw-r--r--digital/io/src/filterbridge.fsm2
-rw-r--r--digital/io/src/main.c4
4 files changed, 11 insertions, 28 deletions
diff --git a/digital/io/src/elevator.fsm b/digital/io/src/elevator.fsm
index fd06c55a..cc815fb6 100644
--- a/digital/io/src/elevator.fsm
+++ b/digital/io/src/elevator.fsm
@@ -13,8 +13,6 @@ 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_FB_EMPTY
- waiting for the fb is empty
WAIT_POS_ORDER
waiting for position order (depending where we want to drop our column)
GO_TO_POS_Y
@@ -42,8 +40,8 @@ Events:
elevator is in position
new_puck
we received a new puck from FB (filter bridge, not facebook)
- fb_empty
- filterbridge empty
+ order_bypass
+ Dont wait to have 4 pucks but we wait we don't have puck before bridge
order_received
we received a new order
doors_opened
@@ -76,13 +74,9 @@ 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_received -> WAIT_FB_EMPTY
+ order_bypass -> GO_TO_POS_Y
elevator filling has been shut, get ready to drop pucks
-WAIT_FB_EMPTY:
- fb_empty -> GO_TO_POS_Y
- execute order
-
WAIT_POS_ORDER:
order_received -> GO_TO_POS_Y
go to position Y
diff --git a/digital/io/src/elevator_cb.c b/digital/io/src/elevator_cb.c
index e1799879..d47d286f 100644
--- a/digital/io/src/elevator_cb.c
+++ b/digital/io/src/elevator_cb.c
@@ -144,29 +144,18 @@ elevator__WAIT_A_PUCK__new_puck (void)
}
/*
- * WAIT_A_PUCK =order_received=>
- * => WAIT_FB_EMPTY
- * elevator filling has been shut, get ready to drop pucks
- */
-fsm_branch_t
-elevator__WAIT_A_PUCK__order_received (void)
-{
- elvt_is_ready = 0;
- return elevator_next (WAIT_A_PUCK, order_received);
-}
-
-/*
- * WAIT_FB_EMPTY =fb_empty=>
+ * WAIT_A_PUCK =order_bypass=>
* => GO_TO_POS_Y
- * execute order
+ * elevator filling has been shut, get ready to drop pucks
*/
fsm_branch_t
-elevator__WAIT_FB_EMPTY__fb_empty (void)
+elevator__WAIT_A_PUCK__order_bypass (void)
{
elvt_new_puck = 0;
+ elvt_is_ready = 0;
asserv_move_elevator_absolute(posy[elvt_order - 1] - MAJ_POSY,
ASSERV_ELVT_SPEED_DEFAULT);
- return elevator_next (WAIT_FB_EMPTY, fb_empty);
+ return elevator_next (WAIT_A_PUCK, order_bypass);
}
/*
diff --git a/digital/io/src/filterbridge.fsm b/digital/io/src/filterbridge.fsm
index 5613ffb5..728c5615 100644
--- a/digital/io/src/filterbridge.fsm
+++ b/digital/io/src/filterbridge.fsm
@@ -17,7 +17,7 @@ States:
release puck to the lift and block a new puck on pos1
PUSH_PUCK
push the puck to the lift
- TEMPO_ELVETATOR_COMMUNICATION [timeout=225]
+ TEMPO_ELVETATOR_COMMUNICATION [timeout=450]
a temporisation for the communication between the eleveator and the FB.
Events:
diff --git a/digital/io/src/main.c b/digital/io/src/main.c
index d905a21f..0b2545bb 100644
--- a/digital/io/src/main.c
+++ b/digital/io/src/main.c
@@ -240,9 +240,9 @@ main_event_to_fsm (void)
if(fb_nb_puck < 2)
FSM_HANDLE_EVENT (&cylinder_fsm,
CYLINDER_EVENT_bridge_ready);
- if(!fb_nb_puck)
+ if(!fb_nb_puck && elvt_order)
FSM_HANDLE_EVENT (&elevator_fsm,
- ELEVATOR_EVENT_fb_empty);
+ ELEVATOR_EVENT_order_bypass);
/* bot empty */
if(top_puck_inside_bot < 4)