From 2990cc14b86c68b6c75ef9740817ba75552b802a Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Mon, 20 Jun 2022 22:34:05 +0700 Subject: [PATCH] SEDbgMuxApp: use non-zero default serial port read timeout This is required for a follow-up change moving DebugMux I/O handling into separate threads. We need to be able to stop a thread, which is executing blocking self.io.read() call. --- peer.py | 6 ++++-- sedbgmux.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/peer.py b/peer.py index 9591cd4..f6b0606 100644 --- a/peer.py +++ b/peer.py @@ -18,7 +18,7 @@ import logging as log -from typing import Any +from typing import Any, Optional from construct import Const, Container, Int16ul from transport import Transport @@ -63,9 +63,11 @@ class DbgMuxPeer: if msg_type != DbgMuxFrame.MsgType.Ack: self.tx_count += 1 - def recv(self) -> Container: + def recv(self) -> Optional[Container]: frame: bytes = b'' frame += self.io.read(2) # Magic + if frame == b'': + return None Const(b'\x42\x42').parse(frame[:2]) frame += self.io.read(2) # Length length: int = Int16ul.parse(frame[2:]) diff --git a/sedbgmux.py b/sedbgmux.py index 35d1488..675e35b 100755 --- a/sedbgmux.py +++ b/sedbgmux.py @@ -169,8 +169,8 @@ group.add_argument('-p', '--serial-port', metavar='PORT', type=str, default='/de help='Serial port path (default %(default)s)') group.add_argument('--serial-baudrate', metavar='BAUDRATE', type=int, default=115200, help='Serial port speed (default %(default)s)') -group.add_argument('--serial-timeout', metavar='TIMEOUT', type=int, - help='Serial port timeout') +group.add_argument('--serial-timeout', metavar='TIMEOUT', type=float, default=0.5, + help='Serial port read timeout (default %(default)s)') log.basicConfig( format='[%(levelname)s] %(filename)s:%(lineno)d %(message)s', level=log.INFO)