Source code for herosdevices.core.templates.serial
"""Templates for devices connect via a serial interface."""
from herosdevices.core.bus.serial import SerialConnection
[docs]
class SerialDeviceTemplate:
"""Template (base class) for devices which are controlled or read out through a serial interface.
The interface must be accessible via pyserial. This can be via UART, Serial via IP, etc.
Inheriting your device driver from this class allows to use `herosdevices.core.DeviceCommandQuantity` to define
the serial commands within your device driver class.
"""
def __init__(
self,
address: str,
baudrate: int,
write_line_termination: bytes = b"",
read_line_termination: bytes = b"\n",
keep_alive: bool = True,
delays: dict | None = None,
**kwargs,
) -> None:
self.address = address
self.connection = SerialConnection(
address,
baudrate=baudrate,
read_line_termination=read_line_termination,
write_line_termination=write_line_termination,
keep_alive=keep_alive,
delays=delays,
**kwargs,
)