# Cylinder FSM # Control the puck's entrance cylinder States: IDLE waiting for init WAIT_FOR_JACK_IN waiting for jack RESET_POS reset the cylinder position INIT_POS initializing cylinder to a good position (open) WAIT_A_PUCK waiting a puck enter in cylinder TURN_PLUS_4 turn cylinder 4 position after Events: start start event jack_inserted_into_bot the init signal new_puck there is a puck in position 1 move_done cylinder move finished state_timeout IDLE: start -> WAIT_FOR_JACK_IN we wait the jack before moving anything WAIT_FOR_JACK_IN: jack_inserted_into_bot -> RESET_POS we init the cylinder position RESET_POS: move_done -> INIT_POS move the cylinder to open it INIT_POS: move_done -> WAIT_A_PUCK the cylinder is ready to get pucks WAIT_A_PUCK: new_puck -> TURN_PLUS_4 turn cylinder 4 position after TURN_PLUS_4: move_done -> WAIT_A_PUCK wait a puck again