我正在编写一个使用com0com虚拟串口的Python(2.6)应用程序。它在Windows Server 2008 R2(sp1)上运行(我在我的开发机器上也看到了同样的问题,即Win 7)。
com0com端口对是在应用运行之前创建的。该应用程序打开端口(通过创建serial.Serial对象),利用它们和&然后关闭它们。
尝试过早地重用该端口失败 - 调用构造函数很好(也就是说,它返回一个打开的serial.Serial对象),但是这个对象似乎无法使用。由于这些对象正被另一个应用程序使用,因此应用程序可能无法正确释放内容。
是否有已知的时间间隔我应该等待重新使用com0com端口?是不是com0com端口以某种方式设置错误?或其他什么?
伪代码超高级代码概述:
loop:
serialPort = serial.Serial(port=COM90)
subprocess.check_call([blah.exe, "COM90"])
# this check_call succeeds on first iteration
# fails on second iteration, but will succeed subsequently ...
serialPort.close()
# pause before reusing COM90