Initial main impl with disk poll thread

This commit is contained in:
2026-07-29 16:01:01 +01:00
parent f4900adb79
commit 7a01c06740
2 changed files with 38 additions and 1 deletions

38
main.py
View File

@@ -1,7 +1,18 @@
from queue import Queue
from time import sleep
from typing import final
import pyudev import pyudev
from gpiozero import Device
from gpiozero.pins.mock import MockFactory
from gpiozero import LED
from threading import Thread, Event
red = LED(17)
yellow = LED(27)
blue = LED(22)
def main() -> None: def diskPollWorker(stopEvent: Event, eventQueue: Queue) -> None:
context = pyudev.Context() context = pyudev.Context()
monitor = pyudev.Monitor.from_netlink(context) monitor = pyudev.Monitor.from_netlink(context)
@@ -22,6 +33,31 @@ def main() -> None:
print("\nDisk disconnected") print("\nDisk disconnected")
print(f"Name: {device.sys_name}") print(f"Name: {device.sys_name}")
if stopEvent.is_set():
return
def main() -> None:
try:
stopEvent = Event()
diskEventQueue = Queue()
diskPollThread = Thread(
target=diskPollWorker,
name="disk_poll_thread",
args=(stopEvent, diskEventQueue),
daemon=True,
)
diskPollThread.start()
while True:
sleep(1)
finally:
stopEvent.set()
return
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@@ -6,6 +6,7 @@ readme = "README.md"
requires-python = ">=3.13,<3.14" requires-python = ">=3.13,<3.14"
dependencies = [ dependencies = [
"gpiozero>=2.0.1.post3", "gpiozero>=2.0.1.post3",
"lgpio>=0.2.2.0",
"numpy>=2.5.1", "numpy>=2.5.1",
"picamera2>=0.3.36", "picamera2>=0.3.36",
"pyudev>=0.24.4", "pyudev>=0.24.4",