diff --git a/main.py b/main.py index ac079f3..5c594f8 100644 --- a/main.py +++ b/main.py @@ -1,14 +1,16 @@ +from functools import partial from queue import Empty, Queue from time import sleep from typing import Literal import pyudev -from gpiozero import LED +from gpiozero import LED, Button from threading import Thread, Event from dataclasses import dataclass red = LED(17) yellow = LED(27) blue = LED(22) +button = Button(23, pull_up=True, bounce_time=0.05) @dataclass @@ -21,6 +23,10 @@ class DiskEvent: DiskState = Literal["disconnected", "pairing", "connecting", "connected"] +def onButtonPressed(diskState: DiskState) -> None: + diskState = "pairing" + + def diskPollWorker(stopEvent: Event, eventQueue: Queue) -> None: context = pyudev.Context() @@ -83,14 +89,13 @@ def ledWorker(stopEvent: Event, diskState: DiskState) -> None: stopEvent.wait(0.25) - yellow.off() - def main() -> None: try: stopEvent = Event() diskEventQueue: Queue[DiskEvent] = Queue() - diskState: DiskState = "pairing" + diskState: DiskState = "disconnected" + button.when_activated = partial(onButtonPressed, diskState) diskPollThread = Thread( target=diskPollWorker,