class App(object): def __init__(self): #GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.switch = Switch(self.btn_pin) self.switch.set_callback_up(self.toggle) self.recording = False def loop(self): self.init_led_and_switch() try: while (True): time.sleep(1) except KeyboardInterrupt: print("User Cancelled (Ctrl C)") self.stop_at_exit() def toggle(self): print("press") self.recording = not self.recording if self.recording: self.led.blink(times=0, on_delay=0.8, off_delay=0.2) # blink foreever self.start_recording() else: self.led.stop() # stop blinking self.led.on() self.stop_recording() def init_led_and_switch(self): self.led.on() self.switch.start() def start_recording(self): print("start recording") def stop_recording(self): print("stop recording") def stop_at_exit(self): self.led.off() self.switch.stop() self.led.stop() self.board.cleanup()
class App(object): def __init__(self): #GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.switch = Switch(self.btn_pin) self.switch.set_callback_up(self.toggle) self.recording = False def loop(self): self.init_led_and_switch() try: while(True): time.sleep(1) except KeyboardInterrupt: print("User Cancelled (Ctrl C)") self.stop_at_exit() def toggle(self): print("press") self.recording = not self.recording if self.recording: self.led.blink(times=0, on_delay=0.8, off_delay=0.2) # blink foreever self.start_recording() else: self.led.stop() # stop blinking self.led.on() self.stop_recording() def init_led_and_switch(self): self.led.on() self.switch.start() def start_recording(self): print("start recording") def stop_recording(self): print("stop recording") def stop_at_exit(self): self.led.off() self.switch.stop() self.led.stop() self.board.cleanup()
class App(object): def __init__(self): #GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.switch = Switch(self.btn_pin) self.switch.set_callback_up(self.press) self.switch.set_callback_down(self.release) def loop(self): self.led.off() self.switch.start() #self.led.blink(times=0) # blink foreever try: while(True): time.sleep(1) except KeyboardInterrupt: print("User Cancelled (Ctrl C)") self.stop_at_exit() def press(self): print("press") self.toggle() def release(self): print("release") def toggle(self): self.led.toggle() def stop_at_exit(self): self.led.off() self.switch.stop() self.led.stop() self.board.cleanup()
class App(object): def __init__(self): #GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.switch = Switch(self.btn_pin) self.switch.set_callback_up(self.press) self.switch.set_callback_down(self.release) def loop(self): self.led.off() self.switch.start() #self.led.blink(times=0) # blink foreever try: while (True): time.sleep(1) except KeyboardInterrupt: print("User Cancelled (Ctrl C)") self.stop_at_exit() def press(self): print("press") self.toggle() def release(self): print("release") def toggle(self): self.led.toggle() def stop_at_exit(self): self.led.off() self.switch.stop() self.led.stop() self.board.cleanup()
class App(object): def __init__(self): # GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.push_button = PushButton(self.btn_pin) self.push_button.set_callback_pressed_long(self.on_push_button_pressed_long) self.push_button.set_callback_released(self.on_push_button_released_short) self.recording = False self.global_state = True def loop(self): self.init_led_and_switch() try: while True: time.sleep(1) except KeyboardInterrupt: logger.info("User Cancelled (Ctrl C)") self.stop_at_exit() def init_led_and_switch(self): self._update_led() self.push_button.start() def _update_led(self): if self.global_state: logger.info("power on") self.led.on() else: logger.info("power off") self.led.off() def on_push_button_pressed_long(self): logger.info("push button pressed long") self.global_state = not self.global_state self._update_led() def on_push_button_released_short(self): logger.info("push button released") self.recording = not self.recording if self.recording: self.led.blink(times=0, on_delay=0.2, off_delay=0.8) # blink forever self.start_recording() else: self.led.stop() # stop blinking self.stop_recording() def start_recording(self): logger.info("start recording") def stop_recording(self): logger.info("stop recording") def stop_at_exit(self): logger.info("stopping at exit") self.led.stop() self.led.off() self.push_button.stop() self.board.cleanup()
class App(object): def __init__(self): #GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.switch = Switch(self.btn_pin) self.switch.set_callback_up(self.pushtype) self.recording = False self.GlobalState = False def loop(self): self.init_led_and_switch() try: while (True): time.sleep(1) except KeyboardInterrupt: print("User Cancelled (Ctrl C)") self.stop_at_exit() def pushtype(self): timer = 0 while (self.switch.pin.state == pingo.HIGH): timer += 1 time.sleep(0.1) if (timer <= 10): push_type = " short_push" if self.GlobalState: self.toggle() else: push_type = " long_push" self.GlobalState = not self.GlobalState if self.GlobalState: self.led.on() print("Power on") else: self.led.off() print("Power off") print(str(timer) + push_type) def toggle(self): print("press") self.recording = not self.recording if self.recording: self.led.blink(times=0, on_delay=0.2, off_delay=0.8) # blink forever self.start_recording() else: self.led.stop() # stop blinking self.stop_recording() def init_led_and_switch(self): self.led.off() self.switch.start() def start_recording(self): print("start recording") def stop_recording(self): print("stop recording") def stop_at_exit(self): print("stopping") self.led.stop() self.led.off() self.switch.stop() self.board.cleanup()
class App(object): def __init__(self): #GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.push_button = PushButton(self.btn_pin) self.push_button.set_callback_pressed_long( self.on_push_button_pressed_long) self.push_button.set_callback_released( self.on_push_button_released_short) self.recording = False # recording is set when recording mode is on self.global_state = False # global_state is set when application is "powered on" def loop(self): self.init_led_and_switch() try: while (True): time.sleep(1) except KeyboardInterrupt: logger.info("User Cancelled (Ctrl C)") self.stop_at_exit() def init_led_and_switch(self): self._update_led() self.push_button.start() def _update_led(self): if self.global_state: logger.info("power on") self.led.on() else: logger.info("power off") self.led.off() def on_push_button_pressed_long(self): logger.info("push button pressed long") # In case we stop the system even when we're still recording if self.recording: self.led.stop() # stop blinking self.stop_recording() self.recording = False time.sleep(0.5) # wait the thread closure. Need to be reviewed self.global_state = not self.global_state self._update_led() def on_push_button_released_short(self): logger.info("push button released") if self.global_state: logger.info("short push and system was ON") self.recording = not self.recording if self.recording: self.led.blink(times=0, on_delay=0.2, off_delay=0.8) # blink forever self.start_recording() else: self.led.stop() # stop blinking self.stop_recording() else: logger.info("short push and system was off") def start_recording(self): logger.info("start recording") def stop_recording(self): logger.info("stop recording") def stop_at_exit(self): logger.info("stopping at exit") self.led.stop() self.led.off() self.push_button.stop() self.board.cleanup()
class App(object): def __init__(self): #GPIO.setwarnings(False) self.board = pingo.detect.get_board() led_pin = self.board.pins[13] self.led = Led(led_pin) self.btn_pin = self.board.pins[7] self.switch = Switch(self.btn_pin) self.switch.set_callback_up(self.pushtype) self.recording = False self.GlobalState = False def loop(self): self.init_led_and_switch() try: while(True): time.sleep(1) except KeyboardInterrupt: print("User Cancelled (Ctrl C)") self.stop_at_exit() def pushtype(self): timer = 0 while(self.switch.pin.state == pingo.HIGH): timer += 1 time.sleep(0.1) if(timer <= 10): push_type = " short_push" if self.GlobalState: self.toggle() else: push_type = " long_push" self.GlobalState = not self.GlobalState if self.GlobalState: self.led.on() print("Power on") else: self.led.off() print("Power off") print(str(timer) + push_type) def toggle(self): print("press") self.recording = not self.recording if self.recording: self.led.blink(times=0, on_delay=0.2, off_delay=0.8) # blink forever self.start_recording() else: self.led.stop() # stop blinking self.stop_recording() def init_led_and_switch(self): self.led.off() self.switch.start() def start_recording(self): print("start recording") def stop_recording(self): print("stop recording") def stop_at_exit(self): print("stopping") self.led.stop() self.led.off() self.switch.stop() self.board.cleanup()