【发布时间】:2014-05-01 13:25:44
【问题描述】:
我正在使用PySerial 从串行端口读取,如下面的代码所示。
CheckReadUntil() 读取我发送到串行端口的命令的输出,直到符号序列 readUntil 在串行输出中。
...
self.ser = serial.Serial(comDev, 115200, timeout=10)
...
#Function that continue to read from Serial port until 'readUntil'
#sequence of symbols appears
def CheckReadUntil(self, readUntil):
outputCharacters = []
while 1:
ch = self.ser.read()
outputCharacters += ch
if outputCharacters[-len(readUntil):]==readUntil:
break
outputLines = ''.join(outputCharacters)
return outputLines
但是,如果没有序列readUntil(出于任何原因),我将永远停留在函数CheckReadUntil() 中。设置 timeout=10 设置了超时,所以我陷入了一个每 10 秒迭代一次并且什么都不做的循环,只是等待。
如何理解存在超时事件以便我可以退出无限循环?输出长度可能不同。
【问题讨论】:
标签: python serial-port timeout pyserial