编辑
我发现了问题所在,并回答了我自己的问题。
此行下方的原始问题
我在软件之间有一个串行桥接COM4
并COM5
在软件中实现(特别是 HDD 的免费虚拟串行配置实用程序)
我有两个不同的 Python 脚本在两个不同的 Powershell 实例中启动,首先接收:
import serial
receive = serial.Serial(port = 'COM5', baudrate = 9600)
text = receive.read(100)
receive.close()
print text
然后是发件人:
import serial
send = serial.Serial(port = 'COM4', baudrate = 9600, timeout = 0)
send.write("Hello")
send.close()
启动发送者脚本时,接收者脚本得到发送的消息(因此通信已明确建立)但发送者脚本立即以错误结束:
Traceback (most recent call last):
File ".\sending.py", line 3, in <module>
send.writelines("Hello")
File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 270, in write
raise writeTimeoutError
serial.serialutil.SerialTimeoutException: Write timeout
当我将发件人脚本更改为
send = serial.Serial(port = 'COM4', baudrate = 9600)
所以我的问题是:到底什么是超时?我该如何防止这种情况发生?我的意思是,正在发送数据,所以我可能只是将整个事情放在一个try/except(and do nothing)
块中,但从长远来看,这似乎是一个糟糕的解决方案。