def M_WAIT_main(ctrlr): sensor = ctrlr.sensors['ROT'] if sensor.positive: state.set_property(ctrlr, 'angle', int(sensor.bodies[0], 10)) state.set_sequence(ctrlr, 'ROTATING', 'M_WAIT', ) state.next_state(ctrlr)
def M_START_main(ctrlr): if state.get_property(ctrlr, 'num_sk') <= 3: state.set_sequence(ctrlr, 'PUSH_SAW', 'FORWARD', 'PULL_SAW', 'REACHED', 'BACKWARD', 'ROT_SHAFT', 'M_START', ) state.next_state(ctrlr) else: state.goto_master(ctrlr, 'M_WAIT')
def ROT_SHAFT_main(ctrlr): if digital_read(ctrlr, 'Shaft_ROTATED'): state.next_state(ctrlr)
def BACKWARD_main(ctrlr): if digital_read(ctrlr, 'SawBaseStartTouch'): digital_write(ctrlr, 'SawBase_BACK', False) state.next_state(ctrlr)
def REACHED_main(ctrlr): if state.statetime(ctrlr) > 1: state.next_state(ctrlr)
def PULL_SAW_main(ctrlr): if state.statetime(ctrlr) > 1: digital_write(ctrlr, 'Saw', False) state.next_state(ctrlr)
def FORWARD_main(ctrlr): if digital_read(ctrlr, 'SawBaseEndTouch'): digital_write(ctrlr, 'SawBase_FOR', False) state.next_state(ctrlr)
def PUSH_SAW_main(ctrlr): if state.statetime(ctrlr) > 1: digital_write(ctrlr, 'Saw', True) state.next_state(ctrlr)
def ROTATING_main(ctrlr): if state.stateframe(ctrlr) > state.get_property(ctrlr, 'angle'): ctrlr.deactivate(ctrlr.actuators['rotation']) ctrlr.activate(ctrlr.actuators['Shaft_ROTATED']) print(ctrlr.owner.localOrientation.to_euler('XYZ')) state.next_state(ctrlr)