From 4af6e816f0ca13d7ee85ce5892520e493782e33c Mon Sep 17 00:00:00 2001 From: Jerome Jutteau Date: Tue, 5 Mar 2013 19:48:54 +0100 Subject: digital/io/src: update FSM --- digital/io/src/Makefile | 16 +++++++- digital/io/src/hola.c | 12 +----- digital/io/src/init.c | 13 ------- digital/io/src/loader.c | 96 ++++++++++++++---------------------------------- digital/io/src/move.c | 97 ++++++++++++++++++++++--------------------------- digital/io/src/top.c | 52 ++++++++------------------ 6 files changed, 102 insertions(+), 184 deletions(-) (limited to 'digital/io') diff --git a/digital/io/src/Makefile b/digital/io/src/Makefile index 56cf4a03..b582c95c 100644 --- a/digital/io/src/Makefile +++ b/digital/io/src/Makefile @@ -26,7 +26,7 @@ vpath %.c $(AI_MODULES:%=../../ai/src/%) vpath %.h $(AI_MODULES:%=../../ai/src/%) INCLUDES += -I. $(AI_MODULES:%=-I../../ai/src/%) -EXTRA_CLEAN_FILES = angfsm_gen_avr_AI.h fsm_AI_gen.avr.c +EXTRA_CLEAN_FILES = angfsm_gen_avr_AI.h fsm_AI_gen.avr.c AI.dot AI.png AI.svg include $(BASE)/make/Makefile.gen @@ -34,9 +34,21 @@ include $(BASE)/make/Makefile.gen obj/main.avr.o: angfsm_gen_avr_AI.h fsm_AI_gen.avr.c: angfsm_gen_avr_AI.h angfsm_gen_avr_AI.h: io.host - ./$< --ang-gen avr + ./$< --ang-gen avr --ang-dot AI.dot mv angfsm_gen_avr_AI.c fsm_AI_gen.avr.c +# Image generation +view: AI.view +png: AI.png +svg: AI.svg + +%.view: %.dot + dot -Txlib $< +%.png: %.dot + dot -Tpng $< > $@ +%.svg: %.dot + dot -Tsvg $< > $@ + events.h events.host.c: trace.trc $(BASE)/../../tools/trace/lib/parser.py PYTHONPATH=$(BASE)/../../host python $(BASE)/../../tools/trace/trace.py -t create -i $< -o diff --git a/digital/io/src/hola.c b/digital/io/src/hola.c index af663c4a..a53980a1 100644 --- a/digital/io/src/hola.c +++ b/digital/io/src/hola.c @@ -60,22 +60,18 @@ FSM_START_WITH (HOLA_IDLE) FSM_TRANS (HOLA_IDLE, start, HOLA_WAIT_HOLA) { - return FSM_NEXT (HOLA_IDLE, start); } FSM_TRANS (HOLA_WAIT_HOLA, hola_start, HOLA_WAIT_JACK_IN) { - return FSM_NEXT (HOLA_WAIT_HOLA, hola_start); } FSM_TRANS (HOLA_WAIT_JACK_IN, jack_inserted_into_bot, HOLA_WAIT_JACK_OUT) { - return FSM_NEXT (HOLA_WAIT_JACK_IN, jack_inserted_into_bot); } FSM_TRANS (HOLA_WAIT_JACK_OUT, jack_removed_from_bot, HOLA_ROUNDS) { - return FSM_NEXT (HOLA_WAIT_JACK_OUT, jack_removed_from_bot); } FSM_TRANS (HOLA_ROUNDS, asserv_last_cmd_ack, @@ -96,14 +92,14 @@ FSM_TRANS (HOLA_ROUNDS, asserv_last_cmd_ack, mimot_move_motor1_absolute (dx, BOT_CLAMP_SPEED); asserv_move_motor0_absolute (dy, BOT_ELEVATOR_SPEED); hola_angle += 0x1000000 / (225 / 12); - return FSM_NEXT (HOLA_ROUNDS, asserv_last_cmd_ack, no_timeout); + return FSM_BRANCH (no_timeout); } else { asserv_set_speed (0x10, 0x1c, 0x10, 0x1c); asserv_move_motor0_absolute (BOT_ELEVATOR_REST_STEP, BOT_ELEVATOR_SPEED / 3); asserv_move_angularly (POSITION_A_DEG (174)); - return FSM_NEXT (HOLA_ROUNDS, asserv_last_cmd_ack, timeout); + return FSM_BRANCH (timeout); } } @@ -112,21 +108,18 @@ FSM_TRANS (HOLA_UP, bot_move_succeed, HOLA_CENTER) asserv_set_speed (0x10, 0x20, 0x10, 0x20); asserv_move_angularly (POSITION_A_DEG (-90)); asserv_move_motor0_absolute (BOT_ELEVATOR_REST_STEP / 2, BOT_ELEVATOR_SPEED); - return FSM_NEXT (HOLA_UP, bot_move_succeed); } FSM_TRANS (HOLA_CENTER, bot_move_succeed, HOLA_CLAP_CLOSE) { mimot_motor0_clamp (BOT_CLAMP_ZERO_SPEED, 0); mimot_motor1_clamp (BOT_CLAMP_ZERO_SPEED, 0); - return FSM_NEXT (HOLA_CENTER, bot_move_succeed); } FSM_TRANS (HOLA_CLAP_CLOSE, clamp_succeed, HOLA_CLAP_OPEN) { mimot_move_motor0_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); mimot_move_motor1_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); - return FSM_NEXT (HOLA_CLAP_CLOSE, clamp_succeed); } /* @@ -136,5 +129,4 @@ FSM_TRANS (HOLA_CLAP_OPEN, clamp_succeed, HOLA_CLAP_CLOSE) { mimot_motor0_clamp (BOT_CLAMP_SPEED, 0); mimot_motor1_clamp (BOT_CLAMP_SPEED, 0); - return FSM_NEXT (HOLA_CLAP_OPEN, clamp_succeed); } diff --git a/digital/io/src/init.c b/digital/io/src/init.c index 77701c2b..7915e961 100644 --- a/digital/io/src/init.c +++ b/digital/io/src/init.c @@ -82,7 +82,6 @@ FSM_START_WITH (INIT_IDLE) */ FSM_TRANS (INIT_IDLE, start, INIT_WAIT_FIRST_JACK_IN) { - return FSM_NEXT (INIT_IDLE, start); } /* @@ -92,7 +91,6 @@ FSM_TRANS (INIT_WAIT_FIRST_JACK_IN, jack_inserted_into_bot, INIT_WAIT_FIRST_JACK_OUT) { - return FSM_NEXT (INIT_WAIT_FIRST_JACK_IN, jack_inserted_into_bot); } /* @@ -107,7 +105,6 @@ FSM_TRANS (INIT_WAIT_FIRST_JACK_OUT, trace_init (); /* Get the color. */ team_color = switch_get_color (); - return FSM_NEXT (INIT_WAIT_FIRST_JACK_OUT, jack_removed_from_bot); } /* @@ -117,7 +114,6 @@ FSM_TRANS (INIT_WAIT_SECOND_JACK_IN, jack_inserted_into_bot, INIT_WAIT_FOR_HANDS_OUT) { - return FSM_NEXT (INIT_WAIT_SECOND_JACK_IN, jack_inserted_into_bot); } /* @@ -128,7 +124,6 @@ FSM_TRANS_TIMEOUT (INIT_WAIT_FOR_HANDS_OUT, 225, { /* Go to the wall, no backward. */ asserv_go_to_the_wall (0); - return FSM_NEXT_TIMEOUT (INIT_WAIT_FOR_HANDS_OUT); } /* @@ -144,7 +139,6 @@ FSM_TRANS (INIT_GO_TO_THE_WALL, asserv_set_angle_position (PG_A_DEG (90)); /* Move away from the border. */ asserv_move_linearly (- INIT_DIST); - return FSM_NEXT (INIT_GO_TO_THE_WALL, bot_move_succeed); } /* @@ -156,7 +150,6 @@ FSM_TRANS (INIT_GO_AWAY_FROM_THE_WALL, { /* Face the other wall. */ asserv_goto_angle (PG_A_DEG (180)); - return FSM_NEXT (INIT_GO_AWAY_FROM_THE_WALL, bot_move_succeed); } /* @@ -166,7 +159,6 @@ FSM_TRANS (INIT_FACE_OTHER_WALL, bot_move_succeed, INIT_WAIT_AFTER_ROTATION) { - return FSM_NEXT (INIT_FACE_OTHER_WALL, bot_move_succeed); } /* @@ -177,7 +169,6 @@ FSM_TRANS_TIMEOUT (INIT_WAIT_AFTER_ROTATION, 100, { /* Go to the wall, no backward. */ asserv_go_to_the_wall (0); - return FSM_NEXT_TIMEOUT (INIT_WAIT_AFTER_ROTATION); } /* @@ -191,7 +182,6 @@ FSM_TRANS (INIT_GO_TO_THE_WALL_AGAIN, asserv_set_x_position (PG_X (BOT_SIZE_FRONT)); /* Move away from the border. */ asserv_move_linearly (- INIT_DIST); - return FSM_NEXT (INIT_GO_TO_THE_WALL_AGAIN, bot_move_succeed); } /* @@ -203,7 +193,6 @@ FSM_TRANS (INIT_GO_AWAY_FROM_THE_WALL_AGAIN, { /* Move away from the border. */ asserv_goto_xya (BOT_INIT_XYA, 0); - return FSM_NEXT (INIT_GO_AWAY_FROM_THE_WALL_AGAIN, bot_move_succeed); } /* @@ -213,7 +202,6 @@ FSM_TRANS (INIT_GO_TO_START_POSITION, bot_move_succeed, INIT_WAIT_SECOND_JACK_OUT) { - return FSM_NEXT (INIT_GO_TO_START_POSITION, bot_move_succeed); } /* @@ -228,5 +216,4 @@ FSM_TRANS (INIT_WAIT_SECOND_JACK_OUT, init_match_is_started = 1; /* Start the chrono. */ chrono_start (); - return FSM_NEXT (INIT_WAIT_SECOND_JACK_OUT, jack_removed_from_bot); } diff --git a/digital/io/src/loader.c b/digital/io/src/loader.c index 82a548d8..21007506 100644 --- a/digital/io/src/loader.c +++ b/digital/io/src/loader.c @@ -132,21 +132,18 @@ FSM_START_WITH (LOADER_IDLE) FSM_TRANS (LOADER_IDLE, start, LOADER_WAIT_JACK_IN) { - return FSM_NEXT (LOADER_IDLE, start); } FSM_TRANS (LOADER_WAIT_JACK_IN, jack_inserted_into_bot, LOADER_WAIT_JACK_OUT) { - return FSM_NEXT (LOADER_WAIT_JACK_IN, jack_inserted_into_bot); } FSM_TRANS (LOADER_WAIT_JACK_IN, hola_start, LOADER_IDLE) { - return FSM_NEXT (LOADER_WAIT_JACK_IN, hola_start); } /* @@ -162,14 +159,12 @@ FSM_TRANS (LOADER_WAIT_JACK_OUT, mimot_motor0_clamp (BOT_CLAMP_ZERO_SPEED, 0); mimot_motor1_clamp (BOT_CLAMP_ZERO_SPEED, 0); asserv_motor1_zero_position (-BOT_GATE_SPEED); - return FSM_NEXT (LOADER_WAIT_JACK_OUT, jack_removed_from_bot); } FSM_TRANS (LOADER_INIT_ELEVATOR_ZERO, elevator_succeed, LOADER_INIT_CLAMP_CLOSE) { - return FSM_NEXT (LOADER_INIT_ELEVATOR_ZERO, elevator_succeed); } /* @@ -184,28 +179,24 @@ FSM_TRANS (LOADER_INIT_CLAMP_CLOSE, BOT_ELEVATOR_ZERO_SPEED); mimot_motor0_zero_position (-BOT_CLAMP_ZERO_SPEED); mimot_motor1_zero_position (-BOT_CLAMP_ZERO_SPEED); - return FSM_NEXT (LOADER_INIT_CLAMP_CLOSE, clamp_succeed); } FSM_TRANS (LOADER_INIT_CLAMP_ZERO, clamp_succeed, LOADER_INIT_GATE_ZERO) { - return FSM_NEXT (LOADER_INIT_CLAMP_ZERO, clamp_succeed); } FSM_TRANS (LOADER_INIT_GATE_ZERO, gate_succeed, LOADER_INIT_ELEVATOR_UP) { - return FSM_NEXT (LOADER_INIT_GATE_ZERO, gate_succeed); } FSM_TRANS (LOADER_INIT_ELEVATOR_UP, elevator_succeed, LOADER_INIT_GATE_WAIT) { - return FSM_NEXT (LOADER_INIT_ELEVATOR_UP, elevator_succeed); } /* @@ -218,7 +209,6 @@ FSM_TRANS (LOADER_INIT_ELEVATOR_UP, /* Move so that the operator notice it. */ asserv_move_motor0_absolute (BOT_ELEVATOR_STROKE_STEP / 3, BOT_ELEVATOR_ZERO_SPEED); - return FSM_NEXT (LOADER_INIT_ELEVATOR_UP, elevator_failed); } /* @@ -228,14 +218,12 @@ FSM_TRANS_TIMEOUT (LOADER_INIT_GATE_WAIT, 225, LOADER_INIT_GATE_CLOSE) { asserv_move_motor1_absolute (BOT_GATE_STROKE_STEP, BOT_GATE_SPEED); - return FSM_NEXT_TIMEOUT (LOADER_INIT_GATE_WAIT); } FSM_TRANS (LOADER_INIT_GATE_CLOSE, gate_succeed, LOADER_UP) { - return FSM_NEXT (LOADER_INIT_GATE_CLOSE, gate_succeed); } /* @@ -246,7 +234,6 @@ FSM_TRANS (LOADER_UP, LOADER_DOWNING) { asserv_move_motor0_absolute (BOT_ELEVATOR_DOWN_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_UP, loader_down); } /* @@ -257,7 +244,6 @@ FSM_TRANS (LOADER_DOWN, LOADER_UPING) { asserv_move_motor0_absolute (BOT_ELEVATOR_REST_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_DOWN, loader_up); } /* @@ -269,7 +255,6 @@ FSM_TRANS (LOADER_DOWN, { mimot_motor0_clamp (BOT_CLAMP_SPEED, BOT_CLAMP_PWM); mimot_motor1_clamp (BOT_CLAMP_SPEED, BOT_CLAMP_PWM); - return FSM_NEXT (LOADER_DOWN, loader_element); } /* @@ -279,8 +264,7 @@ FSM_TRANS (LOADER_UPING, elevator_succeed, LOADER_UP) { - fsm_queue_post_event (FSM_EVENT (AI,loader_uped)); - return FSM_NEXT (LOADER_UPING, elevator_succeed); + fsm_queue_post_event (FSM_EVENT (loader_uped)); } /* @@ -290,8 +274,7 @@ FSM_TRANS (LOADER_UPING, elevator_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_UPING, elevator_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -302,7 +285,6 @@ FSM_TRANS (LOADER_UPING, LOADER_DOWNING) { asserv_move_motor0_absolute (BOT_ELEVATOR_DOWN_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_UPING, loader_down); } /* @@ -314,8 +296,7 @@ FSM_TRANS (LOADER_DOWNING, LOADER_DOWN) { asserv_motor0_free (); - fsm_queue_post_event (FSM_EVENT (AI, loader_downed)); - return FSM_NEXT (LOADER_DOWNING, elevator_succeed); + fsm_queue_post_event (FSM_EVENT (loader_downed)); } /* @@ -325,8 +306,7 @@ FSM_TRANS (LOADER_DOWNING, elevator_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_DOWNING, elevator_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -338,8 +318,7 @@ FSM_TRANS (LOADER_DOWNING, LOADER_ERROR) { asserv_motor0_free (); - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_DOWNING, loader_element); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -350,7 +329,6 @@ FSM_TRANS (LOADER_DOWNING, LOADER_UPING) { asserv_move_motor0_absolute (BOT_ELEVATOR_REST_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_DOWNING, loader_up); } /* @@ -361,7 +339,6 @@ FSM_TRANS (LOADER_ERROR, LOADER_ERROR_DOWNING) { asserv_move_motor0_absolute (BOT_ELEVATOR_DOWN_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_ERROR, loader_down); } /* @@ -372,7 +349,6 @@ FSM_TRANS (LOADER_ERROR, LOADER_ERROR_UPING) { asserv_move_motor0_absolute (BOT_ELEVATOR_STROKE_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_ERROR, loader_up); } /* @@ -386,7 +362,6 @@ FSM_TRANS (LOADER_ERROR_DOWNING, asserv_motor0_free (); mimot_move_motor0_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); mimot_move_motor1_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); - return FSM_NEXT (LOADER_ERROR_DOWNING, elevator_succeed); } /* @@ -396,8 +371,7 @@ FSM_TRANS (LOADER_ERROR_DOWNING, elevator_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_ERROR_DOWNING, elevator_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -406,8 +380,7 @@ FSM_TRANS (LOADER_ERROR_DOWNING, FSM_TRANS_TIMEOUT (LOADER_ERROR_DOWNING, 225, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT_TIMEOUT (LOADER_ERROR_DOWNING); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -417,8 +390,7 @@ FSM_TRANS (LOADER_ERROR_DOWNING_OPEN, clamp_succeed, LOADER_DOWN) { - fsm_queue_post_event (FSM_EVENT (AI, loader_downed)); - return FSM_NEXT (LOADER_ERROR_DOWNING_OPEN, clamp_succeed); + fsm_queue_post_event (FSM_EVENT (loader_downed)); } /* @@ -428,8 +400,7 @@ FSM_TRANS (LOADER_ERROR_DOWNING_OPEN, clamp_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_ERROR_DOWNING_OPEN, clamp_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -438,8 +409,7 @@ FSM_TRANS (LOADER_ERROR_DOWNING_OPEN, FSM_TRANS_TIMEOUT (LOADER_ERROR_DOWNING_OPEN, 225, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT_TIMEOUT (LOADER_ERROR_DOWNING_OPEN); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -451,7 +421,6 @@ FSM_TRANS (LOADER_ERROR_UPING, { mimot_move_motor0_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); mimot_move_motor1_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); - return FSM_NEXT (LOADER_ERROR_UPING, elevator_succeed); } /* @@ -461,8 +430,7 @@ FSM_TRANS (LOADER_ERROR_UPING, elevator_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_ERROR_UPING, elevator_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -471,8 +439,7 @@ FSM_TRANS (LOADER_ERROR_UPING, FSM_TRANS_TIMEOUT (LOADER_ERROR_UPING, 225, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT_TIMEOUT (LOADER_ERROR_UPING); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -482,8 +449,7 @@ FSM_TRANS (LOADER_ERROR_UPING_OPEN, clamp_succeed, LOADER_UP) { - fsm_queue_post_event (FSM_EVENT (AI, loader_uped)); - return FSM_NEXT (LOADER_ERROR_UPING_OPEN, clamp_succeed); + fsm_queue_post_event (FSM_EVENT (loader_uped)); } /* @@ -493,8 +459,7 @@ FSM_TRANS (LOADER_ERROR_UPING_OPEN, clamp_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_ERROR_UPING_OPEN, clamp_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } /* @@ -503,8 +468,7 @@ FSM_TRANS (LOADER_ERROR_UPING_OPEN, FSM_TRANS_TIMEOUT (LOADER_ERROR_UPING_OPEN, 225, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT_TIMEOUT (LOADER_ERROR_UPING_OPEN); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } FSM_TRANS (LOADER_LOAD_CLOSING, clamp_succeed, @@ -526,13 +490,13 @@ FSM_TRANS (LOADER_LOAD_CLOSING, clamp_succeed, asserv_get_position (&robot_position); food_taken (robot_position); loader_elements++; - return FSM_NEXT (LOADER_LOAD_CLOSING, clamp_succeed, full); + return FSM_BRANCH (full); } else { mimot_move_motor0_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); mimot_move_motor1_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); - return FSM_NEXT (LOADER_LOAD_CLOSING, clamp_succeed, empty); + return FSM_BRANCH (empty); } } @@ -545,7 +509,6 @@ FSM_TRANS (LOADER_LOAD_UPING, { mimot_move_motor0_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); mimot_move_motor1_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); - return FSM_NEXT (LOADER_LOAD_UPING, elevator_unload_position); } /* @@ -561,20 +524,18 @@ FSM_TRANS (LOADER_LOAD_UPING, { if (loader_elements) loader_elements--; - fsm_queue_post_event (FSM_EVENT (AI, loader_black)); + fsm_queue_post_event (FSM_EVENT (loader_black)); } else - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); + fsm_queue_post_event (FSM_EVENT (loader_errored)); mimot_move_motor0_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); mimot_move_motor1_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); - return FSM_NEXT (LOADER_LOAD_UPING, elevator_failed); } FSM_TRANS (LOADER_LOAD_UNLOADING, elevator_succeed, LOADER_LOAD_UNLOADING_OPEN) { - return FSM_NEXT (LOADER_LOAD_UNLOADING, elevator_succeed); } /* @@ -585,10 +546,9 @@ FSM_TRANS (LOADER_LOAD_UNLOADING, elevator_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); + fsm_queue_post_event (FSM_EVENT (loader_errored)); mimot_move_motor0_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); mimot_move_motor1_absolute (BOT_CLAMP_OPEN_STEP, BOT_CLAMP_SPEED); - return FSM_NEXT (LOADER_LOAD_UNLOADING, elevator_failed); } FSM_TRANS (LOADER_LOAD_UNLOADING_OPEN, clamp_succeed, @@ -601,13 +561,13 @@ FSM_TRANS (LOADER_LOAD_UNLOADING_OPEN, clamp_succeed, { asserv_move_motor0_absolute (BOT_ELEVATOR_REST_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_LOAD_UNLOADING_OPEN, clamp_succeed, up); + return FSM_BRANCH (up); } else { asserv_move_motor0_absolute (BOT_ELEVATOR_DOWN_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_LOAD_UNLOADING_OPEN, clamp_succeed, down); + return FSM_BRANCH (down); } } @@ -618,8 +578,7 @@ FSM_TRANS (LOADER_LOAD_UNLOADING_OPEN, clamp_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_LOAD_UNLOADING_OPEN, clamp_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } FSM_TRANS (LOADER_LOAD_EMPTY_OPEN, clamp_succeed, @@ -632,12 +591,12 @@ FSM_TRANS (LOADER_LOAD_EMPTY_OPEN, clamp_succeed, { asserv_move_motor0_absolute (BOT_ELEVATOR_REST_STEP, BOT_ELEVATOR_SPEED); - return FSM_NEXT (LOADER_LOAD_EMPTY_OPEN, clamp_succeed, up); + return FSM_BRANCH (up); } else { - fsm_queue_post_event (FSM_EVENT (AI, loader_downed)); - return FSM_NEXT (LOADER_LOAD_EMPTY_OPEN, clamp_succeed, down); + fsm_queue_post_event (FSM_EVENT (loader_downed)); + return FSM_BRANCH (down); } } @@ -648,6 +607,5 @@ FSM_TRANS (LOADER_LOAD_EMPTY_OPEN, clamp_failed, LOADER_ERROR) { - fsm_queue_post_event (FSM_EVENT (AI, loader_errored)); - return FSM_NEXT (LOADER_LOAD_EMPTY_OPEN, clamp_failed); + fsm_queue_post_event (FSM_EVENT (loader_errored)); } diff --git a/digital/io/src/move.c b/digital/io/src/move.c index c497d2f0..6d94164c 100644 --- a/digital/io/src/move.c +++ b/digital/io/src/move.c @@ -299,14 +299,14 @@ FSM_TRANS (MOVE_IDLE, move_start, if (next) { if (next == 2) - return FSM_NEXT (MOVE_IDLE, move_start, path_found_rotate); + return FSM_BRANCH (path_found_rotate); else - return FSM_NEXT (MOVE_IDLE, move_start, path_found); + return FSM_BRANCH (path_found); } else { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_IDLE, move_start, no_path_found); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (no_path_found); } } @@ -319,7 +319,6 @@ FSM_TRANS (MOVE_ROTATING, { loader_down (); move_go (); - return FSM_NEXT (MOVE_ROTATING, bot_move_succeed); } /* @@ -331,7 +330,6 @@ FSM_TRANS (MOVE_ROTATING, { loader_down (); move_go (); - return FSM_NEXT (MOVE_ROTATING, bot_move_failed); } /* @@ -342,7 +340,6 @@ FSM_TRANS_TIMEOUT (MOVE_ROTATING, 1125, { loader_down (); move_go (); - return FSM_NEXT_TIMEOUT (MOVE_ROTATING); } /* @@ -355,7 +352,6 @@ FSM_TRANS (MOVE_ROTATING, { asserv_move_linearly (-MOVE_LOADER_UNBLOCKING_DISTANCE); loader_up (); - return FSM_NEXT (MOVE_ROTATING, loader_errored); } FSM_TRANS (MOVE_MOVING, bot_move_succeed, @@ -370,18 +366,18 @@ FSM_TRANS (MOVE_MOVING, bot_move_succeed, { if (move_data.final_move) { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_succeed)); - return FSM_NEXT (MOVE_MOVING, bot_move_succeed, done); + fsm_queue_post_event (FSM_EVENT (move_fsm_succeed)); + return FSM_BRANCH (done); } else { uint8_t next = move_path_next (); if (next == 2) - return FSM_NEXT (MOVE_MOVING, bot_move_succeed, path_found_rotate); + return FSM_BRANCH (path_found_rotate); else - return FSM_NEXT (MOVE_MOVING, bot_move_succeed, path_found); + return FSM_BRANCH (path_found); } - //return FSM_NEXT (MOVE_MOVING, bot_move_succeed, no_path_found); + //return return FSM_BRANCH (no_path_found); } @@ -414,7 +410,6 @@ FSM_TRANS (MOVE_MOVING, MOVE_MOVING_BACKWARD_TO_TURN_FREELY) { move_MOVE_MOVING_bot_move_failed_MOVE_MOVING_BACKWARD_TO_TURN_FREELY (); - return FSM_NEXT (MOVE_MOVING, bot_move_failed); } /* @@ -425,7 +420,6 @@ FSM_TRANS_TIMEOUT (MOVE_MOVING, 2250, MOVE_MOVING_BACKWARD_TO_TURN_FREELY) { move_MOVE_MOVING_bot_move_failed_MOVE_MOVING_BACKWARD_TO_TURN_FREELY (); - return FSM_NEXT_TIMEOUT (MOVE_MOVING); } FSM_TRANS (MOVE_MOVING, obstacle_in_front, @@ -440,11 +434,11 @@ FSM_TRANS (MOVE_MOVING, obstacle_in_front, asserv_stop_motor (); if (--move_data.try_again_counter == 0) { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_MOVING, obstacle_in_front, tryout); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (tryout); } else - return FSM_NEXT (MOVE_MOVING, obstacle_in_front, tryagain); + return FSM_BRANCH (tryagain); } /* @@ -457,7 +451,6 @@ FSM_TRANS (MOVE_MOVING, { asserv_move_linearly (-MOVE_LOADER_UNBLOCKING_DISTANCE); loader_up (); - return FSM_NEXT (MOVE_MOVING, loader_errored); } FSM_TRANS (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_succeed, @@ -472,8 +465,8 @@ FSM_TRANS (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_succeed, { if (--move_data.try_again_counter == 0) { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_succeed, tryout); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (tryout); } else { @@ -481,14 +474,14 @@ FSM_TRANS (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_succeed, if (next) { if (next == 2) - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_succeed, path_found_rotate); + return FSM_BRANCH (path_found_rotate); else - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_succeed, path_found); + return FSM_BRANCH (path_found); } else { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_succeed, no_path_found); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (no_path_found); } } } @@ -507,8 +500,8 @@ FSM_TRANS (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_failed, { if (--move_data.try_again_counter == 0) { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_failed, tryout); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (tryout); } else { @@ -516,19 +509,19 @@ FSM_TRANS (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_failed, if (next) { if (next == 2) - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_failed, path_found_rotate); + return FSM_BRANCH (path_found_rotate); else - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_failed, path_found); + return FSM_BRANCH (path_found); } else { if (--move_data.try_again_counter == 0) { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_failed, no_path_found_tryout); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (no_path_found_tryout); } else - return FSM_NEXT (MOVE_MOVING_BACKWARD_TO_TURN_FREELY, bot_move_failed, no_path_found_tryagain); + return FSM_BRANCH (no_path_found_tryagain); } } } @@ -548,20 +541,20 @@ FSM_TRANS_TIMEOUT (MOVE_WAIT_FOR_CLEAR_PATH, 255, if (next) { if (next == 2) - return FSM_NEXT_TIMEOUT (MOVE_WAIT_FOR_CLEAR_PATH, path_found_rotate); + return FSM_BRANCH (path_found_rotate); else - return FSM_NEXT_TIMEOUT (MOVE_WAIT_FOR_CLEAR_PATH, path_found); + return FSM_BRANCH (path_found); } else { /* Error, no new position, should we try again? */ if (--move_data.try_again_counter == 0) { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT_TIMEOUT (MOVE_WAIT_FOR_CLEAR_PATH, no_path_found_tryout); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (no_path_found_tryout); } else - return FSM_NEXT_TIMEOUT (MOVE_WAIT_FOR_CLEAR_PATH, no_path_found_tryagain); + return FSM_BRANCH (no_path_found_tryagain); } } @@ -575,7 +568,6 @@ FSM_TRANS (MOVE_LOADER_UNBLOCKING_UPING, { loader_down (); move_data.loader_unblocking_retry = 2; - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_UPING, bot_move_succeed); } /* @@ -588,7 +580,6 @@ FSM_TRANS (MOVE_LOADER_UNBLOCKING_UPING, { loader_down (); move_data.loader_unblocking_retry = 2; - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_UPING, bot_move_failed); } FSM_TRANS (MOVE_LOADER_UNBLOCKING_DOWNING, loader_downed, @@ -604,14 +595,14 @@ FSM_TRANS (MOVE_LOADER_UNBLOCKING_DOWNING, loader_downed, if (next) { if (next == 2) - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_DOWNING, loader_downed, path_found_rotate); + return FSM_BRANCH (path_found_rotate); else - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_DOWNING, loader_downed, path_found); + return FSM_BRANCH (path_found); } else { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_DOWNING, loader_downed, no_path_found); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (no_path_found); } } @@ -630,7 +621,7 @@ FSM_TRANS (MOVE_LOADER_UNBLOCKING_DOWNING, loader_errored, { asserv_move_linearly (-MOVE_LOADER_UNBLOCKING_DISTANCE); loader_up (); - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_DOWNING, loader_errored, tryagain); + return FSM_BRANCH (tryagain); } else { @@ -639,14 +630,14 @@ FSM_TRANS (MOVE_LOADER_UNBLOCKING_DOWNING, loader_errored, if (next) { if (next == 2) - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_DOWNING, loader_errored, tryout_path_found_rotate); + return FSM_BRANCH (tryout_path_found_rotate); else - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_DOWNING, loader_errored, tryout_path_found); + return FSM_BRANCH (tryout_path_found); } else { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT (MOVE_LOADER_UNBLOCKING_DOWNING, loader_errored, tryout_no_path_found); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (tryout_no_path_found); } } } @@ -666,7 +657,7 @@ FSM_TRANS_TIMEOUT (MOVE_LOADER_UNBLOCKING_DOWNING, 450, { asserv_move_linearly (-MOVE_LOADER_UNBLOCKING_DISTANCE); loader_up (); - return FSM_NEXT_TIMEOUT (MOVE_LOADER_UNBLOCKING_DOWNING, tryagain); + return FSM_BRANCH (tryagain); } else { @@ -675,14 +666,14 @@ FSM_TRANS_TIMEOUT (MOVE_LOADER_UNBLOCKING_DOWNING, 450, if (next) { if (next == 2) - return FSM_NEXT_TIMEOUT (MOVE_LOADER_UNBLOCKING_DOWNING, tryout_path_found_rotate); + return FSM_BRANCH (tryout_path_found_rotate); else - return FSM_NEXT_TIMEOUT (MOVE_LOADER_UNBLOCKING_DOWNING, tryout_path_found); + return FSM_BRANCH (tryout_path_found); } else { - fsm_queue_post_event (FSM_EVENT (AI, move_fsm_failed)); - return FSM_NEXT_TIMEOUT (MOVE_LOADER_UNBLOCKING_DOWNING, tryout_no_path_found); + fsm_queue_post_event (FSM_EVENT (move_fsm_failed)); + return FSM_BRANCH (tryout_no_path_found); } } } diff --git a/digital/io/src/top.c b/digital/io/src/top.c index 83cbdbda..224957ce 100644 --- a/digital/io/src/top.c +++ b/digital/io/src/top.c @@ -125,7 +125,6 @@ FSM_START_WITH (IDLE) /* Nothing to do. */ FSM_TRANS (IDLE, start, WAIT_INIT_TO_FINISH) { - return FSM_NEXT (IDLE, start); } /* @@ -139,7 +138,6 @@ FSM_TRANS (WAIT_INIT_TO_FINISH, { asserv_set_speed (BOT_MOVE_FAST); move_start_noangle (PG_VECT (375, 1503), 0, 0); - return FSM_NEXT (WAIT_INIT_TO_FINISH, init_match_is_started); } /* @@ -152,7 +150,6 @@ FSM_TRANS (FIRST_GO_BEGIN_OF_LINE_FAST, { move_start_noangle (PG_VECT (2625, 253), 0, 0); loader_down (); - return FSM_NEXT (FIRST_GO_BEGIN_OF_LINE_FAST, move_fsm_succeed); } /* @@ -165,7 +162,6 @@ FSM_TRANS (FIRST_GO_BEGIN_OF_LINE_FAST, { asserv_set_speed (BOT_MOVE_SLOW); move_start_noangle (PG_VECT (375, 1503), 0, 0); - return FSM_NEXT (FIRST_GO_BEGIN_OF_LINE_FAST, move_fsm_failed); } /* @@ -176,7 +172,6 @@ FSM_TRANS (FIRST_GO_END_OF_LINE_FAST, FIRST_GO_END_OF_LINE_SLOW) { asserv_set_speed (BOT_MOVE_SLOW); - return FSM_NEXT (FIRST_GO_END_OF_LINE_FAST, in_field); } /* @@ -189,7 +184,6 @@ FSM_TRANS (FIRST_GO_END_OF_LINE_FAST, { asserv_set_speed (BOT_MOVE_SLOW); loader_up (); - return FSM_NEXT (FIRST_GO_END_OF_LINE_FAST, move_fsm_succeed); } /* @@ -202,7 +196,6 @@ FSM_TRANS (FIRST_GO_END_OF_LINE_FAST, { asserv_set_speed (BOT_MOVE_SLOW); move_start_noangle (PG_VECT (2625, 253), 0, 0); - return FSM_NEXT (FIRST_GO_END_OF_LINE_FAST, move_fsm_failed); } /* @@ -213,7 +206,6 @@ FSM_TRANS (FIRST_GO_END_OF_LINE_SLOW, UNLOAD_LOADER_UP) { loader_up (); - return FSM_NEXT (FIRST_GO_END_OF_LINE_SLOW, move_fsm_succeed); } /* @@ -224,7 +216,6 @@ FSM_TRANS (FIRST_GO_END_OF_LINE_SLOW, FIRST_GO_END_OF_LINE_SLOW) { move_start_noangle (PG_VECT (2625, 253), 0, 0); - return FSM_NEXT (FIRST_GO_END_OF_LINE_SLOW, move_fsm_failed); } /* @@ -233,7 +224,6 @@ FSM_TRANS (FIRST_GO_END_OF_LINE_SLOW, FSM_TRANS (UNLOAD, move_fsm_succeed, UNLOAD_LOADER_UP) { loader_up (); - return FSM_NEXT (UNLOAD, move_fsm_succeed); } /* @@ -242,7 +232,6 @@ FSM_TRANS (UNLOAD, move_fsm_succeed, UNLOAD_LOADER_UP) FSM_TRANS (UNLOAD, move_fsm_failed, UNLOAD) { move_start_noangle (PG_VECT (2625, 253), 0, 0); - return FSM_NEXT (UNLOAD, move_fsm_failed); } /* @@ -251,7 +240,6 @@ FSM_TRANS (UNLOAD, move_fsm_failed, UNLOAD) FSM_TRANS (UNLOAD_LOADER_UP, loader_uped, UNLOAD_FACE_BIN) { asserv_goto_angle (PG_A_DEG (90)); - return FSM_NEXT (UNLOAD_LOADER_UP, loader_uped); } /* @@ -260,7 +248,6 @@ FSM_TRANS (UNLOAD_LOADER_UP, loader_uped, UNLOAD_FACE_BIN) FSM_TRANS (UNLOAD_LOADER_UP, loader_errored, UNLOAD_FACE_BIN) { asserv_goto_angle (PG_A_DEG (90)); - return FSM_NEXT (UNLOAD_LOADER_UP, loader_errored); } /* @@ -269,7 +256,6 @@ FSM_TRANS (UNLOAD_LOADER_UP, loader_errored, UNLOAD_FACE_BIN) FSM_TRANS (UNLOAD_FACE_BIN, bot_move_succeed, UNLOAD_BACK_BIN) { asserv_move_linearly (-(128 + 250 / 2 - BOT_SIZE_BACK - 50)); - return FSM_NEXT (UNLOAD_FACE_BIN, bot_move_succeed); } /* @@ -278,7 +264,6 @@ FSM_TRANS (UNLOAD_FACE_BIN, bot_move_succeed, UNLOAD_BACK_BIN) FSM_TRANS (UNLOAD_FACE_BIN, bot_move_failed, UNLOAD_FACE_BIN_UNBLOCK) { asserv_move_linearly (-40); - return FSM_NEXT (UNLOAD_FACE_BIN, bot_move_failed); } /* @@ -287,7 +272,6 @@ FSM_TRANS (UNLOAD_FACE_BIN, bot_move_failed, UNLOAD_FACE_BIN_UNBLOCK) FSM_TRANS (UNLOAD_FACE_BIN_UNBLOCK, bot_move_succeed, UNLOAD_FACE_BIN) { asserv_goto_angle (PG_A_DEG (90)); - return FSM_NEXT (UNLOAD_FACE_BIN_UNBLOCK, bot_move_succeed); } /* @@ -296,7 +280,6 @@ FSM_TRANS (UNLOAD_FACE_BIN_UNBLOCK, bot_move_succeed, UNLOAD_FACE_BIN) FSM_TRANS (UNLOAD_FACE_BIN_UNBLOCK, bot_move_failed, UNLOAD_FACE_BIN) { asserv_goto_angle (PG_A_DEG (90)); - return FSM_NEXT (UNLOAD_FACE_BIN_UNBLOCK, bot_move_failed); } /* @@ -305,7 +288,6 @@ FSM_TRANS (UNLOAD_FACE_BIN_UNBLOCK, bot_move_failed, UNLOAD_FACE_BIN) FSM_TRANS (UNLOAD_BACK_BIN, bot_move_succeed, UNLOAD_UNLOAD) { asserv_move_motor1_absolute (0, BOT_GATE_SPEED); - return FSM_NEXT (UNLOAD_BACK_BIN, bot_move_succeed); } /* @@ -314,7 +296,6 @@ FSM_TRANS (UNLOAD_BACK_BIN, bot_move_succeed, UNLOAD_UNLOAD) FSM_TRANS (UNLOAD_BACK_BIN, bot_move_failed, UNLOAD_UNLOAD) { asserv_move_motor1_absolute (0, BOT_GATE_SPEED); - return FSM_NEXT (UNLOAD_BACK_BIN, bot_move_failed); } /* @@ -328,7 +309,6 @@ FSM_TRANS_TIMEOUT (UNLOAD_UNLOAD, 255, COLLECT) asserv_move_motor1_absolute (BOT_GATE_STROKE_STEP, BOT_GATE_SPEED); loader_down (); top_collect (1); - return FSM_NEXT_TIMEOUT (UNLOAD_UNLOAD); } /* @@ -343,12 +323,12 @@ FSM_TRANS (COLLECT, move_fsm_succeed, if (slow_motion) { FSM_HANDLE (AI, loader_element); - return FSM_NEXT (COLLECT, move_fsm_succeed, slow_motion); + return FSM_BRANCH (slow_motion); } else if (top_collect (0)) - return FSM_NEXT (COLLECT, move_fsm_succeed, collect); + return FSM_BRANCH (collect); else - return FSM_NEXT (COLLECT, move_fsm_succeed, unload); + return FSM_BRANCH (unload); } /* @@ -361,10 +341,10 @@ FSM_TRANS (COLLECT, move_fsm_failed, if (top_collect (0)) { food_cancel (top_food); - return FSM_NEXT (COLLECT, move_fsm_failed, collect); + return FSM_BRANCH (collect); } else - return FSM_NEXT (COLLECT, move_fsm_failed, unload); + return FSM_BRANCH (unload); } /* @@ -375,7 +355,6 @@ FSM_TRANS (COLLECT, loader_black, COLLECT_BLACK) { asserv_move_linearly (-90); food_black (top_food); - return FSM_NEXT (COLLECT, loader_black); } /* @@ -386,9 +365,9 @@ FSM_TRANS (COLLECT_SLOW_MOTION, loader_downed, collect, COLLECT) { if (top_collect (0)) - return FSM_NEXT (COLLECT_SLOW_MOTION, loader_downed, collect); + return FSM_BRANCH (collect); else - return FSM_NEXT (COLLECT_SLOW_MOTION, loader_downed, unload); + return FSM_BRANCH (unload); } /* @@ -399,9 +378,9 @@ FSM_TRANS (COLLECT_SLOW_MOTION, loader_errored, collect, COLLECT) { if (top_collect (0)) - return FSM_NEXT (COLLECT_SLOW_MOTION, loader_errored, collect); + return FSM_BRANCH (collect); else - return FSM_NEXT (COLLECT_SLOW_MOTION, loader_errored, unload); + return FSM_BRANCH (unload); } /* @@ -412,9 +391,9 @@ FSM_TRANS_TIMEOUT (COLLECT_SLOW_MOTION, 450, collect, COLLECT) { if (top_collect (0)) - return FSM_NEXT_TIMEOUT (COLLECT_SLOW_MOTION, collect); + return FSM_BRANCH (collect); else - return FSM_NEXT_TIMEOUT (COLLECT_SLOW_MOTION, unload); + return FSM_BRANCH (unload); } /* @@ -425,7 +404,6 @@ FSM_TRANS (COLLECT_SLOW_MOTION, loader_black, COLLECT_BLACK) { asserv_move_linearly (-90); food_black (top_food); - return FSM_NEXT (COLLECT_SLOW_MOTION, loader_black); } FSM_TRANS (COLLECT_BLACK, bot_move_succeed, @@ -433,9 +411,9 @@ FSM_TRANS (COLLECT_BLACK, bot_move_succeed, collect, COLLECT) { if (top_collect (0)) - return FSM_NEXT (COLLECT_BLACK, bot_move_succeed, collect); + return FSM_BRANCH (collect); else - return FSM_NEXT (COLLECT_BLACK, bot_move_succeed, unload); + return FSM_BRANCH (unload); } FSM_TRANS (COLLECT_BLACK, bot_move_failed, @@ -443,8 +421,8 @@ FSM_TRANS (COLLECT_BLACK, bot_move_failed, collect, COLLECT) { if (top_collect (0)) - return FSM_NEXT (COLLECT_BLACK, bot_move_failed, collect); + return FSM_BRANCH (collect); else - return FSM_NEXT (COLLECT_BLACK, bot_move_failed, unload); + return FSM_BRANCH (unload); } -- cgit v1.2.3