是否可以使用 PySerial 以编程方式检查新连接?

Is it possible to programmatically check for a new connection using PySerial?

我发现 this post 提出了类似的问题。但是,答案不是我期望找到的,所以我将尝试以不同的方式提出问题。

让我们假设函数 searching_for_connection 将 运行 在 while True 循环中无限期地执行。对于该功能,我们将循环并执行检查以查看是否已与 /dev/ttyAMA0 建立了新连接。如果该连接存在,则退出循环,完成 searching_for_connection,然后开始其他一些进程。这可能吗?我该怎么做?

我目前的方法是发送回车符 return 并检查响应。我的问题是这种方法非常参差不齐,并没有为我产生一致的结果。此方法有时有效,有时会停止工作

def serial_device_connected(serial_device: "serial.Serial") -> bool:
    try:
        serial_device.write(b"\r")
        return bool(serial_device.readlines())
    except serial.SerialException
        return False

我建议延迟一下,让设备有时间响应。

import time

def serial_device_connected(serial_device: "serial.Serial") -> bool:
    try:
        serial_device.write(b"\r")
        time.sleep(0.01)
        return bool(serial_device.readlines())
    except serial.SerialException
        return False