Возникла небольшая проблема с открытием последовательного / консольного порта через pySerial.
Моя программа предназначена для получения активного com-порта, открытия консольного соединения и отправки данных. Когда программа работает и я подключаю мой RS232 USB, я получаю сообщение об ошибке SerialException. (В частности, «Не удалось открыть порт: FileNotFoundError»)
В случае, если программа запущена, она продолжит печатать «Нет подключенного RS232», но при подключении RS232 USB программа обрывается и запускается с ошибкой SerialException.
Если я подключу RS232 USB перед запуском программы, а затем запустю ее, она считывает и выполняет обычную работу без проблем.
ports = serial.tools.list_ports.comports(include_links=False)
if not ports:
print("No RS232 Connected")
if ports:
for port in ports:
print('Found port ' + port.device)
ser = serial.Serial(port.device)
if ser.isOpen():
ser.close()
break
console = serial.Serial(port.device, baudrate=9600, parity="N", stopbits=1, bytesize=8, timeout=0.4)
Я довольно новичок в Python и программировании в целом, но я чувствую, что проблема может быть в том, что список 'портов' уже заполнен дважды из-за цикла while True. Затем, когда мы создадим консоль, открыв порт, мы ожидаем одну запись в списке, но их две.
Поскольку у нас не может быть двух открытых консольных подключений к одному и тому же COM-порту, мы получаем сообщение об ошибке.
Если я распечатываю список портов, я получаю это.
"[<serial.tools.list_ports_common.ListPortInfo object at 0x000002B5D77F0D68>]
[<serial.tools.list_ports_common.ListPortInfo object at 0x000002B5D77F0D68>]
"
Любая помощь будет принята с благодарностью! Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Спасибо,