TransportModem: raise TransportIOError exception on I/O error

This commit is contained in:
Vadim Yanitskiy 2022-03-28 04:44:14 +03:00
parent ea6018b822
commit 45548e0a3e
1 changed files with 12 additions and 2 deletions

View File

@ -23,6 +23,10 @@ import serial
import abc
class TransportIOError(Exception):
''' I/O error during read/write operation '''
class Transport(abc.ABC):
''' Abstract transport layer for DebugMux '''
@ -70,11 +74,17 @@ class TransportModem(Transport):
def write(self, data: bytes) -> int:
''' Write the given data bytes '''
try:
return self._sl.write(data)
except Exception as e:
raise TransportIOError('Failed to write() data') from e
def read(self, length: int = 0) -> bytes:
''' Read the given number of bytes '''
try:
return self._sl.read(length)
except Exception as e:
raise TransportIOError('Failed to read() data') from e
def send_at_cmd(self, cmd: str, handle_echo: bool = True) -> None:
''' Send an AT command to the modem '''