From 5fedb64b03dc8f2856bd720550a19213a4ee0a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniele=20Vigan=C3=B2?= Date: Wed, 5 Jan 2022 22:28:55 +0100 Subject: [PATCH] Improve board initialization --- daemons/net-to-serial.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/daemons/net-to-serial.py b/daemons/net-to-serial.py index 8d1bb3f..fda59cd 100755 --- a/daemons/net-to-serial.py +++ b/daemons/net-to-serial.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +import re import time import logging import serial @@ -61,11 +62,12 @@ class SerialDaemon: async def return_board(self): """Return the board signature""" - self.__read_serial() # drain the serial buffer on startup + line = "" + # drain the serial until we are ready to go self.__write_serial(b"") - time.sleep(0.5) - board = self.__read_serial().decode().split("\n")[1] # get second line - + while "DCC-EX" not in line: + line = self.__read_serial().decode() + board = re.findall(r"", line)[0] return(board) @@ -88,8 +90,8 @@ async def main(): config["Serial"]["Baudrate"], config["Serial"]["Timeout"])) logging.warning("Initializing board") - logging.warning( - await sd.return_board()) + logging.warning("Board {} ready".format( + await sd.return_board())) async with server: await server.serve_forever()