From f8b176796a32d5dce63724731ff90c22b97b706b Mon Sep 17 00:00:00 2001 From: AeroGlory Date: Sun, 9 Aug 2026 22:29:53 -0400 Subject: [PATCH] Made a basic watchdog system for Pico --- main.py | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index ce9aa75..c09e59a 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,44 @@ import serial +import threading -pishock = serial.Serial('/dev/tty.usbserial-120') +def listen(keep_alive_event, pi): + while True: + message = pi.readline().decode() + if '\n' in message: + if "keep-alive" in message: + keep_alive_event.set() + else: + print("Other stuff is happening") + else: + print("No newline found") -pishock.baudrate = 115200 -pishock.timeout = 15 -print(pishock) +def watchdog(keep_alive_event): + while True: + alive = keep_alive_event.wait(1.0) -pishock.write(b'{"cmd": "info"}\n') + if alive: + print("Yay!") + keep_alive_event.clear() + else: + print("Nay!") -print(pishock.readlines()) + +if __name__ == "__main__": + + pi = serial.Serial('/dev/tty.usbmodem2101') + + pi.baudrate = 115200 + pi.timeout = 0.1 + + print(pi) + + keep_alive = threading.Event() + + listen_thread = threading.Thread(target=listen, args=(keep_alive, pi)) + + watchdog_thread= threading.Thread(target=watchdog, args=(keep_alive,)) + + listen_thread.start() + watchdog_thread.start() +