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:
Returns:
-
SerialTransport ( SerialTransport
) –
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)
|