From 4ab14b8cf8d54ef73a3d171925d2f540d5f1c699 Mon Sep 17 00:00:00 2001 From: Maksim Drachov Date: Fri, 24 Jul 2026 13:48:58 +0300 Subject: [PATCH 1/2] Expose WebSerial SLCAN readiness --- src/pycyphal2/can/webserial.py | 4 ++++ tests/can/test_webserial.py | 1 + 2 files changed, 5 insertions(+) diff --git a/src/pycyphal2/can/webserial.py b/src/pycyphal2/can/webserial.py index 84522c895..269adda01 100644 --- a/src/pycyphal2/can/webserial.py +++ b/src/pycyphal2/can/webserial.py @@ -99,6 +99,10 @@ def purge(self) -> None: if dropped > 0: _logger.debug("WebSerial SLCAN purge iface=%s dropped=%d", self._name, dropped) + async def wait_ready(self) -> None: + """Wait until the SLCAN adapter has been configured and opened.""" + await self._ensure_initialized() + async def receive(self) -> TimestampedFrame: self._raise_if_closed() if self._rx_task is None: diff --git a/tests/can/test_webserial.py b/tests/can/test_webserial.py index 56afdd581..dc0ca52b1 100644 --- a/tests/can/test_webserial.py +++ b/tests/can/test_webserial.py @@ -86,6 +86,7 @@ async def _start( for i in range(len(encode_init_sequence(bitrate))): await _wait_for(_writes_reach(port, i + 2)) # writes: [close, cmd_0, ..., cmd_i] port.feed(_ACK) + await iface.wait_ready() return iface From 872ad8e2b3a18f22fcc197e8011f6981df67664f Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Fri, 24 Jul 2026 15:53:39 +0300 Subject: [PATCH 2/2] Bump version to 2.0.0.dev10 --- src/pycyphal2/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pycyphal2/__init__.py b/src/pycyphal2/__init__.py index e68812487..f83c17fd6 100644 --- a/src/pycyphal2/__init__.py +++ b/src/pycyphal2/__init__.py @@ -155,7 +155,7 @@ async def main(): from ._transport import Transport as Transport from ._transport import TransportArrival as TransportArrival -__version__ = "2.0.0.dev9" +__version__ = "2.0.0.dev10" # pdoc needs __all__ to display re-exported members. __all__ = [