gpt4 book ai didi

Python PySerial 读行超时

转载 作者:太空狗 更新时间:2023-10-30 01:10:28 38 4
gpt4 key购买 nike

我正在使用 pyserial 与嵌入式设备进行通信。

ser = serial.Serial(PORT, BAUD, timeout = TOUT)
ser.write(CMD)
z = ser.readline(eol='\n')

因此我们将 CMD 发送到设备,它会回复一个以 '\n' 结尾的可变长度的字符串

如果设备无法重放,则 readline() 超时并且 z=''

如果设备中断或崩溃,它会发送数据然后 readline() 超时z 将是一个末尾没有 '\n' 的字符串。

除了检查 z 的状态之外,是否有检查 readline() 是否超时的好方法。

最佳答案

我想你可能喜欢做的是..

import re
import time
import serial

def doRead(ser,term):
matcher = re.compile(term) #gives you the ability to search for anything
tic = time.time()
buff = ser.read(128)
# you can use if not ('\n' in buff) too if you don't like re
while ((time.time() - tic) < tout) and (not matcher.search(buff)):
buff += ser.read(128)

return buff

if __name__ == "__main__":
ser = serial.Serial(PORT, BAUD, timeout = TOUT)
ser.write(CMD)
print doRead(ser,term='\n')

关于Python PySerial 读行超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437303/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com