summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--digital/io/src/cylinder.c3
-rw-r--r--digital/io/src/cylinder.fsm10
-rw-r--r--digital/io/src/cylinder.h6
-rw-r--r--digital/io/src/cylinder_cb.c32
-rw-r--r--digital/io/src/main.c5
5 files changed, 11 insertions, 45 deletions
diff --git a/digital/io/src/cylinder.c b/digital/io/src/cylinder.c
index 62904f4a..af78f144 100644
--- a/digital/io/src/cylinder.c
+++ b/digital/io/src/cylinder.c
@@ -38,9 +38,6 @@ uint8_t cylinder_close_order = 0;
/* flush puck on the cylinder */
uint8_t cylinder_flush_order = 0;
-/* distributor mode switch */
-uint8_t cylinder_distributor_mode = 0;
-
/* distributor fucked */
uint8_t cylinder_distributor_fucked = 0;
diff --git a/digital/io/src/cylinder.fsm b/digital/io/src/cylinder.fsm
index 4b2fd49f..bb63d96c 100644
--- a/digital/io/src/cylinder.fsm
+++ b/digital/io/src/cylinder.fsm
@@ -33,8 +33,6 @@ States:
drop 1 puck to the fb
TURN_PLUS_1_CLOSE
close the cylinder
- WAIT_DISTRIB_FUCKED
- waiting for the bot are really on the distributor
WAIT_BRIDGE_READY_DISTRIB
waiting for the bridge
TURN_PLUS_1_AND_OFO_DISTRIB
@@ -66,8 +64,6 @@ Events:
the bot dont have 4 pucks
flush_order
we receive a flush order
- approching_distributor
- we go in distributor mode
distrib_fucked
we are really in the distributor
of_puck
@@ -100,12 +96,8 @@ WAIT_A_PUCK:
we close cylinder as requested
flush_order -> WAIT_BRIDGE_READY_FLUSH
flush all pucks to the bridge
- approching_distributor -> WAIT_DISTRIB_FUCKED
- We wait a distributor
-
-WAIT_DISTRIB_FUCKED:
distrib_fucked -> WAIT_BRIDGE_READY_DISTRIB
- We are on a distributor
+ we verify bridge
WAIT_BRIDGE_READY_DISTRIB:
bridge_ready -> TURN_PLUS_1_AND_OFO_DISTRIB
diff --git a/digital/io/src/cylinder.h b/digital/io/src/cylinder.h
index 78a65e7f..84e1a401 100644
--- a/digital/io/src/cylinder.h
+++ b/digital/io/src/cylinder.h
@@ -42,12 +42,12 @@ extern uint8_t cylinder_close_order;
/* flush puck on the cylinder */
extern uint8_t cylinder_flush_order;
-/* distributor mode switch */
-extern uint8_t cylinder_distributor_mode;
-
/* distributor fucked */
extern uint8_t cylinder_distributor_fucked;
+/* distributor empty */
+extern uint8_t cylinder_distributor_empty;
+
/* mecanical offset */
#define CYLINDER_OFFSET 0x43e
diff --git a/digital/io/src/cylinder_cb.c b/digital/io/src/cylinder_cb.c
index d2c31f6a..6ea2ec76 100644
--- a/digital/io/src/cylinder_cb.c
+++ b/digital/io/src/cylinder_cb.c
@@ -92,8 +92,6 @@ cylinder__INIT_POS__move_done (void)
fsm_branch_t
cylinder__WAIT_A_PUCK__new_puck (void)
{
- cylinder_distributor_mode = 0;
- cylinder_distributor_fucked = 0;
return cylinder_next (WAIT_A_PUCK, new_puck);
}
@@ -105,8 +103,6 @@ cylinder__WAIT_A_PUCK__new_puck (void)
fsm_branch_t
cylinder__WAIT_A_PUCK__close_order (void)
{
- cylinder_distributor_mode = 0;
- cylinder_distributor_fucked = 0;
asserv_move_arm(-1*60*ASSERV_ARM_STEP_BY_DEGREE,
ASSERV_ARM_SPEED_DEFAULT);
return cylinder_next (WAIT_A_PUCK, close_order);
@@ -120,22 +116,18 @@ cylinder__WAIT_A_PUCK__close_order (void)
fsm_branch_t
cylinder__WAIT_A_PUCK__flush_order (void)
{
- cylinder_distributor_mode = 0;
- cylinder_distributor_fucked = 0;
return cylinder_next (WAIT_A_PUCK, flush_order);
}
/*
- * WAIT_A_PUCK =approching_distributor=>
- * => WAIT_DISTRIB_FUCKED
- * We wait a distributor
+ * WAIT_A_PUCK =distrib_fucked=>
+ * => WAIT_BRIDGE_READY_DISTRIB
+ * we verify bridge
*/
fsm_branch_t
-cylinder__WAIT_A_PUCK__approching_distributor (void)
+cylinder__WAIT_A_PUCK__distrib_fucked (void)
{
- cylinder_distributor_mode = 0;
- cylinder_distributor_fucked = 0;
- return cylinder_next (WAIT_A_PUCK, approching_distributor);
+ return cylinder_next (WAIT_A_PUCK, distrib_fucked);
}
/*
@@ -205,7 +197,6 @@ cylinder__TURN_PLUS_1_AND_MINUS_OFO__move_done (void)
fsm_branch_t
cylinder__WAIT_BOT_NOT_FULL__bot_not_full (void)
{
- cylinder_distributor_mode = 0;
cylinder_distributor_fucked = 0;
return cylinder_next (WAIT_BOT_NOT_FULL, bot_not_full);
}
@@ -218,7 +209,6 @@ cylinder__WAIT_BOT_NOT_FULL__bot_not_full (void)
fsm_branch_t
cylinder__WAIT_BOT_NOT_FULL__flush_order (void)
{
- cylinder_distributor_mode = 0;
cylinder_distributor_fucked = 0;
if(of_offset_enabled)
{
@@ -343,17 +333,6 @@ cylinder__TURN_PLUS_1_CLOSE__move_done (void)
}
/*
- * WAIT_DISTRIB_FUCKED =distrib_fucked=>
- * => WAIT_BRIDGE_READY_DISTRIB
- * We are on a distributor
- */
-fsm_branch_t
-cylinder__WAIT_DISTRIB_FUCKED__distrib_fucked (void)
-{
- return cylinder_next (WAIT_DISTRIB_FUCKED, distrib_fucked);
-}
-
-/*
* WAIT_BRIDGE_READY_DISTRIB =bridge_ready=>
* => TURN_PLUS_1_AND_OFO_DISTRIB
* we turn to check the of
@@ -439,6 +418,7 @@ cylinder__PROBE_OF__of_puck (void)
fsm_branch_t
cylinder__PROBE_OF__of_no_puck (void)
{
+ cylinder_distributor_empty = 1;
asserv_move_arm((1-CYLINDER_OF_OFFSET)*60*ASSERV_ARM_STEP_BY_DEGREE,
ASSERV_ARM_SPEED_DEFAULT);
of_offset_enabled = 0;
diff --git a/digital/io/src/main.c b/digital/io/src/main.c
index 75b318dd..6c7d7c7c 100644
--- a/digital/io/src/main.c
+++ b/digital/io/src/main.c
@@ -244,13 +244,10 @@ main_event_to_fsm (void)
FSM_HANDLE_EVENT (&elevator_fsm,
ELEVATOR_EVENT_order_bypass);
- if(cylinder_distributor_mode)
- FSM_HANDLE_EVENT (&cylinder_fsm,
- CYLINDER_EVENT_approching_distributor);
-
if(cylinder_distributor_fucked)
FSM_HANDLE_EVENT (&cylinder_fsm,
CYLINDER_EVENT_distrib_fucked);
+
/* bot empty */
if(top_puck_inside_bot < 4)
FSM_HANDLE_EVENT (&cylinder_fsm,