1
0
mirror of https://github.com/ARM-software/devlib.git synced 2025-09-10 05:51:54 +01:00

utils/serial_port: fix logging

pexpect.spawn object expects the logger to have write() and flush()
methods, neither of which are present in logging.Logger. Create a
subclass that adds these missing methods to enable correct logging for
pexpect.spawn.
This commit is contained in:
Sergei Trofimov
2017-12-11 17:17:07 +00:00
committed by marcbonnici
parent 56a5f8ab12
commit 8ac588bc1f

View File

@@ -32,6 +32,14 @@ from pexpect import EOF, TIMEOUT # NOQA pylint: disable=W0611
from devlib.exception import HostError from devlib.exception import HostError
class SerialLogger(Logger):
write = Logger.debug
def flush(self):
pass
def pulse_dtr(conn, state=True, duration=0.1): def pulse_dtr(conn, state=True, duration=0.1):
"""Set the DTR line of the specified serial connection to the specified state """Set the DTR line of the specified serial connection to the specified state
for the specified duration (note: the initial state of the line is *not* checked.""" for the specified duration (note: the initial state of the line is *not* checked."""
@@ -40,7 +48,7 @@ def pulse_dtr(conn, state=True, duration=0.1):
conn.setDTR(not state) conn.setDTR(not state)
def get_connection(timeout, init_dtr=None, logcls=Logger, def get_connection(timeout, init_dtr=None, logcls=SerialLogger,
*args, **kwargs): *args, **kwargs):
if init_dtr is not None: if init_dtr is not None:
kwargs['dsrdtr'] = True kwargs['dsrdtr'] = True
@@ -83,7 +91,7 @@ def write_characters(conn, line, delay=0.05):
@contextmanager @contextmanager
def open_serial_connection(timeout, get_conn=False, init_dtr=None, def open_serial_connection(timeout, get_conn=False, init_dtr=None,
logcls=Logger, *args, **kwargs): logcls=SerialLogger, *args, **kwargs):
""" """
Opens a serial connection to a device. Opens a serial connection to a device.