Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Обнаружение настроек последовательного порта

Автор вопроса: wroniastyОтветов: 1

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

Я написал скрипт Python, который использует простой метод грубой силы (т. е. перебирает все возможные настройки, отправляет некоторый тестовый ввод и отображает ответ, чтобы человек мог решить, имеет ли он смысл), но:

  • это занимает много времени, чтобы завершить
  • не всегда работает (возможно, проблемы со сбросом порта/тайм-аутом)
  • просто не похоже на правильный способ сделать это :)

Итак, вопрос: кто-нибудь знает процедуру автоматического определения того, какие настройки порта использует удаленное устройство?

  • Я бы просто добавил некоторые функции в ваш скрипт Python, чтобы он содержал словарь, который сопоставляет имена ваших устройств с их настройками. Каждый раз, когда вы что-то выясняете, обновляйте свой сценарий, и вам не придется пытаться запоминать в следующий раз. TJD 05.10.2012
  • @wroniasty Можете ли вы прикрепить сюда свой сценарий, пожалуйста? :) Reflection 10.02.2016

pythoncommunicationserial-port

Ответы

Ответ 1 · рейтинг 1 · Gregor

Хотя часть 1 не является прямым ответом на ваш вопрос:

Есть устройства, в которых просто включен метод автоопределения (называемый Auto-bauding), что означает: отправить символ с вашими текущими настройками (9k6, 115k2, ..) на устройство, и высоки шансы, что устройство ответит вашим (!) настройки. Я видел это на коммутаторах HP.

Второй подход: попробуйте переупорядочить возможности подключения. Например. высоки шансы, что другой конец использует 9k6 без аппаратного рукопожатия, но меньше шансов, что он использует 38k4 с программным обеспечением Xon/Xoff.

Если вы разбиваете свои попытки на несколько, метод "грубой силы" будет намного эффективнее.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы