Added queue put and get with print

This commit is contained in:
2026-07-29 16:10:33 +01:00
parent 7a01c06740
commit 7052b78cce

42
main.py
View File

@@ -1,17 +1,22 @@
from queue import Queue
from queue import Empty, Queue
from time import sleep
from typing import final
import pyudev
from gpiozero import Device
from gpiozero.pins.mock import MockFactory
from gpiozero import LED
from threading import Thread, Event
from dataclasses import dataclass
red = LED(17)
yellow = LED(27)
blue = LED(22)
@dataclass
class DiskEvent:
event: str
node: str
serial: str
def diskPollWorker(stopEvent: Event, eventQueue: Queue) -> None:
context = pyudev.Context()
@@ -22,16 +27,22 @@ def diskPollWorker(stopEvent: Event, eventQueue: Queue) -> None:
for device in iter(monitor.poll, None):
if device.action == "add" and device.device_type == "disk":
print("\nDisk connected")
print(f"Device: {device.device_node}")
print(f"Name: {device.sys_name}")
print(f"Model: {device.get('ID_MODEL', 'Unknown')}")
print(f"Serial: {device.get('ID_SERIAL_SHORT', 'Unknown')}")
print(f"Bus: {device.get('ID_BUS', 'Unknown')}")
eventQueue.put(
DiskEvent(
event="connected",
node=f"{device.device_node}",
serial=f"{device.get('ID_SERIAL_SHORT', 'Unknown')}",
)
)
elif device.action == "remove" and device.device_type == "disk":
print("\nDisk disconnected")
print(f"Name: {device.sys_name}")
eventQueue.put(
DiskEvent(
event="disconnected",
node=f"{device.device_node}",
serial=f"{device.get('ID_SERIAL_SHORT', 'Unknown')}",
)
)
if stopEvent.is_set():
return
@@ -40,7 +51,7 @@ def diskPollWorker(stopEvent: Event, eventQueue: Queue) -> None:
def main() -> None:
try:
stopEvent = Event()
diskEventQueue = Queue()
diskEventQueue: Queue[DiskEvent] = Queue()
diskPollThread = Thread(
target=diskPollWorker,
@@ -51,7 +62,10 @@ def main() -> None:
diskPollThread.start()
while True:
try:
event = diskEventQueue.get_nowait()
print(event)
except Empty:
sleep(1)
finally: