所以我正在开发一个项目,它通过USB转串口连接器将Raspberry Pi连接到串行设备。我正在尝试使用PySerial来跟踪通过连接的串行设备发送的数据,但是存在问题。
目前,我已经设置了我的项目,以便每5秒调用一次我创建的自定义port.open()
方法,如果端口实际打开,则返回True
。这样我就不必在最初启动程序时插入串行设备了。
但是我也想设置它,以便程序也可以检测我的串行设备何时断开连接,然后重新连接。但我不知道如何做到这一点。
如果我尝试使用PySerial方法isOpen()
来检查设备是否在那里,只要插入USB转串口连接器,即使我没有串口设备,我总是让它返回true连接到连接器本身。
答案 0 :(得分:0)
您可以通过检查其中一条RS232控制线(CTS,DSR,RI或CD(所有这些都在PySerial中作为属性公开)的状态来判断设备是否已物理插入。并非所有USB串行适配器都支持这些。
如果与设备的唯一连接是TX / RX线路,则您的选择非常有限: