Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class TimeoutSwitch:
- OFF = False
- ON = True
- def __init__(self):
- self.state = self.OFF
- self.thread = None
- self.cancel = False
- def callback(self, delay):
- time.sleep(delay)
- if self.cancel:
- self.cancel = False
- else:
- self.state = self.OFF
- print("Timeout -> Off")
- def timer(self, delay):
- if self.cancel or self.thread is None or not self.thread.is_alive():
- print("Started timeout")
- self.thread = threading.Thread(target=self.callback, args=(delay,))
- self.thread.start()
- def toggle(self):
- if self.state == self.OFF:
- self.state = self.ON
- print("On")
- self.timer(10)
- else:
- self.state = self.OFF
- self.cancel = True
- print("Off")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement