From 817e598cabbb14f5487f6afe3ad0dd0b22faf0af Mon Sep 17 00:00:00 2001 From: Nicolas Haller Date: Thu, 21 May 2009 16:21:16 +0200 Subject: * digital/io/src: - fix of distributor add-on --- digital/io/src/cylinder.c | 3 --- digital/io/src/cylinder.fsm | 10 +--------- digital/io/src/cylinder.h | 6 +++--- digital/io/src/cylinder_cb.c | 32 ++++++-------------------------- digital/io/src/main.c | 5 +---- 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) { @@ -342,17 +332,6 @@ cylinder__TURN_PLUS_1_CLOSE__move_done (void) return cylinder_next (TURN_PLUS_1_CLOSE, move_done); } -/* - * 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 @@ -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, -- cgit v1.2.3