Skip to content

utils

Functions

get_serial_transport

get_serial_transport(
    vid_pid: Optional[str] = None, baudrate: Optional[int] = None, timeout: float = 10
) -> SerialTransport

Create serial transport. Scans looking for port matching criteria.

Parameters:

  • vid_pid

    (Optional[str], default: None ) –

    VID & PID. Defaults to None.

  • baudrate

    (Optional[int], default: None ) –

    Baudrate. Defaults to None.

Raises:

  • TimeoutError

    Unable to find serial device within timeout

Returns:

  • SerialTransport ( SerialTransport ) –

    Serial device

Examples:

import heartkit as hk
transport = hk.backends.utils.get_serial_transport(vid_pid="51966:16385", baudrate=115200)

transport.open()
transport.write(b"Hello, World!")
data = transport.read(13)
print(data)
transport.close()
Source code in heartkit/backends/utils.py
def get_serial_transport(
    vid_pid: Optional[str] = None, baudrate: Optional[int] = None, timeout: float = 10
) -> SerialTransport:
    """Create serial transport. Scans looking for port matching criteria.

    Args:
        vid_pid (Optional[str], optional): VID & PID. Defaults to None.
        baudrate (Optional[int], optional): Baudrate. Defaults to None.

    Raises:
        TimeoutError: Unable to find serial device within timeout

    Returns:
        SerialTransport: Serial device

    Examples:

    ```python
    import heartkit as hk
    transport = hk.backends.utils.get_serial_transport(vid_pid="51966:16385", baudrate=115200)

    transport.open()
    transport.write(b"Hello, World!")
    data = transport.read(13)
    print(data)
    transport.close()

    ```
    """
    port = None
    tic = time.time()
    while not port and (time.time() - tic) < timeout:
        port = _find_serial_device(vid_pid=vid_pid)
        if not port:
            time.sleep(0.5)
    if port is None:
        raise TimeoutError("Unable to locate serial port. Please verify connection")
    logger.debug(f"Found serial device @ {port.device}")
    return SerialTransport(port.device, baudrate=baudrate)