ускорьте автоматическое сканирование COM-ПОРТОВ в pySerial

#python #pyserial

Вопрос:

Я пытаюсь выполнить функцию автоматического сканирования КОМПОРТА. Однако целевое устройство «COM7» на рисунке не имеет имени, поэтому я не могу выполнить оператор if else на основе имени устройства. введите описание изображения здесь

поэтому я просканировал все порты и попытался открыть каждый из них методом Serial.serial.

 for p in list(serial.tools.list_ports.comports()):  try:  with serial.Serial(port=p[0], baudrate=9600, timeout=0.01) as ser:  msg = 10  ser.write(f"{msg}r".encode('utf-8'))  time.sleep(0.1)  ser.flushOutput()  data = read_data(ser) # if the correct COM is connected, the MCU will return "ok, switched to DUT{msg}"  if 'ok' in data:  break  except serial.serialutil.SerialException:  pass  

но для запуска потребовалось 10 секунд, в то время как если бы я запускал серийно.Последовательный(порт=’COM7′, скорость передачи данных=9600, время ожидания=0,01) требуется всего 0,1 с. Мне интересно, есть ли аргумент тайм-аута в сериале.Последовательный метод не работает? И есть ли какой-либо способ сократить время выполнения функции в течение 1 секунды?

Комментарии:

1. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.