Initial main impl with disk poll thread
This commit is contained in:
38
main.py
38
main.py
@@ -1,7 +1,18 @@
|
||||
from queue import 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
|
||||
|
||||
red = LED(17)
|
||||
yellow = LED(27)
|
||||
blue = LED(22)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
def diskPollWorker(stopEvent: Event, eventQueue: Queue) -> None:
|
||||
context = pyudev.Context()
|
||||
|
||||
monitor = pyudev.Monitor.from_netlink(context)
|
||||
@@ -22,6 +33,31 @@ def main() -> None:
|
||||
print("\nDisk disconnected")
|
||||
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__":
|
||||
main()
|
||||
|
||||
@@ -6,6 +6,7 @@ readme = "README.md"
|
||||
requires-python = ">=3.13,<3.14"
|
||||
dependencies = [
|
||||
"gpiozero>=2.0.1.post3",
|
||||
"lgpio>=0.2.2.0",
|
||||
"numpy>=2.5.1",
|
||||
"picamera2>=0.3.36",
|
||||
"pyudev>=0.24.4",
|
||||
|
||||
Reference in New Issue
Block a user