Added state switch with button press
This commit is contained in:
13
main.py
13
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,
|
||||
|
||||
Reference in New Issue
Block a user