【发布时间】:2021-11-05 22:51:32
【问题描述】:
我正在尝试为学校项目做简单的串行链接程序,但我有一个小问题。我创建了类来维护串行通信,但是当我拔出并重新插入串行端口时,它不会改变串行连接的状态(self.ser 仍然具有与初始化时相同的对象)。我希望它重新连接并继续工作。你能帮我告诉我我做错了什么吗?我是 python 新手。非常感谢!
import serial
import uuid
class SerialWrapper:
def __init__(self):
self.ser = serial.Serial("COM3", 9600)
def handleconnect(self):
try:
if self.ser is None:
self.ser = serial.Serial("COM3", 9600)
self.ser.close()
self.ser.open()
print("Reconnecting...")
except:
if not (self.ser is None):
self.ser.close()
self.ser = None
print("Disconnecting")
else:
print("No Connection")
def serialwrite(self, data):
self.handleconnect()
try:
datalength = self.ser.write(data.encode())
print("Writing data...")
return datalength
except:
print("Error in writing data")
def serialread(self, datalength):
self.handleconnect()
try:
data = self.ser.read(datalength).decode()
print("Reading data...")
return data
except:
print("Error in reading data")
def main():
ser = SerialWrapper()
while 1:
value = uuid.uuid4().hex
length = ser.serialwrite(value)
print(ser.serialread(length))
main()
【问题讨论】:
标签: python python-3.x pyserial