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.
This commit is contained in:
Vadim Yanitskiy 2022-06-20 22:34:05 +07:00
parent f9759d1024
commit 2990cc14b8
2 changed files with 6 additions and 4 deletions

View File

@ -18,7 +18,7 @@
import logging as log import logging as log
from typing import Any from typing import Any, Optional
from construct import Const, Container, Int16ul from construct import Const, Container, Int16ul
from transport import Transport from transport import Transport
@ -63,9 +63,11 @@ class DbgMuxPeer:
if msg_type != DbgMuxFrame.MsgType.Ack: if msg_type != DbgMuxFrame.MsgType.Ack:
self.tx_count += 1 self.tx_count += 1
def recv(self) -> Container: def recv(self) -> Optional[Container]:
frame: bytes = b'' frame: bytes = b''
frame += self.io.read(2) # Magic frame += self.io.read(2) # Magic
if frame == b'':
return None
Const(b'\x42\x42').parse(frame[:2]) Const(b'\x42\x42').parse(frame[:2])
frame += self.io.read(2) # Length frame += self.io.read(2) # Length
length: int = Int16ul.parse(frame[2:]) length: int = Int16ul.parse(frame[2:])

View File

@ -169,8 +169,8 @@ group.add_argument('-p', '--serial-port', metavar='PORT', type=str, default='/de
help='Serial port path (default %(default)s)') help='Serial port path (default %(default)s)')
group.add_argument('--serial-baudrate', metavar='BAUDRATE', type=int, default=115200, group.add_argument('--serial-baudrate', metavar='BAUDRATE', type=int, default=115200,
help='Serial port speed (default %(default)s)') help='Serial port speed (default %(default)s)')
group.add_argument('--serial-timeout', metavar='TIMEOUT', type=int, group.add_argument('--serial-timeout', metavar='TIMEOUT', type=float, default=0.5,
help='Serial port timeout') help='Serial port read timeout (default %(default)s)')
log.basicConfig( log.basicConfig(
format='[%(levelname)s] %(filename)s:%(lineno)d %(message)s', level=log.INFO) format='[%(levelname)s] %(filename)s:%(lineno)d %(message)s', level=log.INFO)