From f757e2b2f646d8262da430a5900c910f19ad2bbf Mon Sep 17 00:00:00 2001 From: Florent Date: Mon, 14 Sep 2026 12:34:55 -0400 Subject: [PATCH] let user specify rts state upon connect --- src/meshcore/meshcore.py | 3 ++- src/meshcore/serial_cx.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/meshcore/meshcore.py b/src/meshcore/meshcore.py index 73b154e..5471fac 100644 --- a/src/meshcore/meshcore.py +++ b/src/meshcore/meshcore.py @@ -118,9 +118,10 @@ class MeshCore: auto_reconnect: bool = False, max_reconnect_attempts: int = 3, cx_dly: float = 0.1, + rts = True ) -> "MeshCore": """Create and connect a MeshCore instance using serial connection""" - connection = SerialConnection(port, baudrate, cx_dly=cx_dly) + connection = SerialConnection(port, baudrate, cx_dly=cx_dly, rts=rts) mc = cls( connection, diff --git a/src/meshcore/serial_cx.py b/src/meshcore/serial_cx.py index 2eeba71..c4fee30 100644 --- a/src/meshcore/serial_cx.py +++ b/src/meshcore/serial_cx.py @@ -11,7 +11,7 @@ logger = logging.getLogger("meshcore") class SerialConnection: - def __init__(self, port, baudrate, cx_dly=0.2): + def __init__(self, port, baudrate, cx_dly=0.2, rts=True): self.port = port self.baudrate = baudrate self.transport = None @@ -21,6 +21,7 @@ class SerialConnection: self.cx_dly = cx_dly self._connected_event = asyncio.Event() self._background_tasks: set[asyncio.Task] = set() + self.rts = rts self.frame_expected_size = 0 self.inframe = b"" @@ -42,7 +43,7 @@ class SerialConnection: logger.debug('port opened') if isinstance(transport, serial_asyncio.SerialTransport) and transport.serial: transport.serial.dtr = False # Deassert DTR to avoid serial-open reset/handshake issues - transport.serial.rts = False # You can manipulate Serial object via transport + transport.serial.rts = self.cx.rts self.cx._connected_event.set() def data_received(self, data):