【发布时间】:2012-06-26 07:37:38
【问题描述】:
我正在开发一个用于处理串行/USB 端口的多线程服务器应用程序。
问题是,如果拔下电缆,pyserial 会不断报告端口已打开且可用。阅读时我只收到Empty 异常(由于读取超时)。
如何得知某个端口已断开连接,以便处理这种情况?
编辑:操作系统是 Ubuntu 12.04
编辑 2:澄清 - 我通过 Serial to USB 连接器连接到串行端口设备,因此断开连接的设备是 USB 设备。
【问题讨论】:
-
在 linux 上你可以使用
dmesg来完成这类任务 -
我需要一个适用于我的 Python 应用程序的解决方案,以便在端口丢失时关闭整个进程。
-
它将适用于您的 python 应用程序。例如伪代码:
while(subprocess(dmesg | tail "any grep params")): do -
@ZagorulkinDmitry:这可能行得通,但感觉不够洁净。特别是因为 dmesg 指定驱动程序 inf/ttyUSB 而不是链接的端口名称(这是我唯一可用的确定性信息)。