Rae*_*ven 5 python reconnect pyserial
我正在尝试编写一个连续读取串行输入的函数。该函数必须能够处理与串行端口的意外断开,并在可能的情况下重新连接。尽管阅读了 stackOverflow 上的几个问题帖子并浏览了 pySerial 文档,但我尚未找到解决方案。
这是我的代码:
def serialRead(serialPort, queue):
"""Adds serial port input to a queue."""
ser = serial.Serial(serialPort - 1, timeout = 2)
ser.parity = "O"
ser.bytesize = 7
while(True):
try:
if(ser == None):
ser = serial.Serial(serialPort - 1, timeout = 2)
ser.parity = "O"
ser.bytesize = 7
print("Reconnecting")
queue.put(ser.read(27))
ser.write(chr(6).encode())
print("Writing Data...")
except:
if(not(ser == None)):
ser.close()
ser = None
print("Disconnecting")
print("No Connection")
time.sleep(2)
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
Enter a Serial Port: 7
Writing Data...
Writing Data...
Writing Data...
Writing Data...
Run Code Online (Sandbox Code Playgroud)
我从连接的设备开始。程序运行后,不会显示“正在断开连接”或“无连接”,并且程序会停止(不会崩溃)。