Код: Выделить всё
class serialHandler:
delay = False
ser= serial.Serial()
ser.port = system.configComPort.COMPORT
ser.baudrate = system.configComPort.BAUDRATE
ser.parity = system.configComPort.PARITY
ser.open()
def __new__(cls):
if not hasattr(cls, 'instance'):
cls.instance = super(serialHandler, cls).__new__(cls)
return cls.instance
def isDelay(self):
return self.delay
def setDelay(self):
self.delay = True
def resetDelay(self):
self.delay = False
def reopenSer(self):
self.ser.reset_input_buffer()
self.ser.reset_output_buffer()
self.ser.close()
print("serial close")
sleep(2.5)
print("serial open")
self.ser= serial.Serial()
self.ser.port = system.configComPort.COMPORT
self.ser.baudrate = system.configComPort.BAUDRATE
self.ser.parity = system.configComPort.PARITY
self.ser.open()
self.ser.reset_input_buffer()
self.ser.reset_output_buffer()
def readUnil(self):
dataFrame = self.ser.read_until(expected = END_OF_USB_MSG.encode())
return dataFrame
def write(self, data):
self.ser.write(data)
def isOpen(self):
Произошло исключение: SerialException
Ошибка ClearCommError (PermissionError(13, ' Das Gerät erkennt den Befehl nicht.', None, 22))
Файл "D:\projects\efas\code\command\serial_usb.py", строка 195, в readUnil
dataFrame = self.ser.read_until(expected = END_OF_USB_MSG.encode())
Файл "D:\projects\efas\code\command\serial_usb.py", строка 224, в run_readline_serialdata_frame = serHandler.readUnil()
serial.serialutil.SerialException: Ошибка ClearCommError (PermissionError(13, 'Das Gerät erkennt den Befehl nicht.', None, 22))
Думаю, после перезагрузки STM32, в Windows используется старый порт, которого больше нет. есть ли способ полностью забыть старое соединение на стороне Python и восстановить его.
Подробнее здесь: https://stackoverflow.com/questions/792 ... can-i-hand
Мобильная версия