Added state switch with button press

This commit is contained in:
2026-07-29 17:19:50 +01:00
parent d55c69ab36
commit d6bcbfafe8

13
main.py
View File

@@ -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,