2
我试图写一个连续读取串行输入的函数。该功能必须能够处理来自串行端口的意外断开连接,并在可能时重新连接。尽管在stackoverflow上阅读了几个问题帖子并查看了pySerial文档,但我还没有找到解决方案。重新连接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)
这里是我的输出:
Enter a Serial Port: 7
Writing Data...
Writing Data...
Writing Data...
Writing Data...
我开始与我的设备连接。离开程序运行后,不显示“断开连接”或“无连接”并且程序停止(不会崩溃)。
你是如何退出该计划的? – RageCage
我不退出该计划。我试图编写程序,以便它继续运行,即使连接丢失。 – Raeven
对不起,我误解了“离开程序运行”。那么当你断开连接到端口的连接时会发生什么? – RageCage