Windows terminal com port

Windows terminal com port

Терминал (для работы с COM портом) под Windows.

Зачем понадобилось создавать еще одну программу терминал .

На просторах интернета полно подобных программ ?!

Что есть, то есть !

Но есть маленькое НО, все дело в нюансах !

— Требуемый функционал был разбросан по нескольким программам и это было очень не удобно.

— Часть требуемых функций не было и вовсе.

— Часть программ банально падали в самый неподходящий момент.

— Часть функций реализованы с ошибками.

Так жить нельзя и работать тоже . 🙂

Значит надо создать свою программу, с необходимым функционалом.

Данный проект задумывался как вспомогательный для тестирования большого проекта связанного

с телеметрией. В проекте требовалось принимать и передавать данные через COM порт компьютера.

Проект готов и сдан. Программа осталась и продолжает использоваться по назначению, для отладки

разного рода устройств !

На текущий момент программа продолжает дорабатывается, исправляются ошибки, добавляются

В данной статье будут публиковаться все изменения и нововведения сделанные в программе.

Краткое описание программы.

Программа создана в среде Microsoft Studio 2008, на языке VB.

Репозитарий программы представлен на GitHub, готовый бинарный файл(exe) в виде Zip архива.

Собранная программа представляет из себя один запускаемый файл.

Программа не требует установки и работает из любого места.

Программа не требует для запуска привилегий администратора.

1. Подключаться к любому com порту в системе.

2. Выставлять параметры работы com порта, включая нестандартные скорости работы порта

(при условии что драйвер windows поддерживает нестандартные скорости).

3. Производить запись принимаемых данных в файл.

4. Передавать в порт строку с разными концовками в виде дополнительных кодов.

5. Циклически передавать в порт строку с заданным интервалом времени.

6. Передавать в порт файл.

Программа пока не может:

1. Разбирать ESC последовательности.

2. Вести историю передаваемых строк.

3. Передавать в порт кода нажатых клавиш в окне приема и передачи.

Текущая версия: v1.3.2

[+] Вывод подробного описания СОМ портов.

[+] Проигрывание сценария из текстового файла.

Пример сценария (Файл TXT), формат:

81 01 04 07 03 FF
> 100
81 01 04 07 02 FF

Где:
81 01 04 07 03 FF — значения байт в TXT-HEX формате отправляемых в СОМ порт.
> 100 — Формирование паузы 100 мс.
81 01 04 07 02 FF — значения байт в HEX формате отправляемых в СОМ порт.

[+] Перевод строки в TXT-HEX виде в байтовый массив и передача в СОМ порт.

Версия: v1.2.2

[+] Добавлена история ввода передаваемых строк.

Версия: v1.2.1

[+] Внесены изменения в интерфейс. Часть функций вынесены в окно приема.

[+] Добавлена функция Вкл/Выкл печати символа с кодом 0x0A.

0x0D + 0x0A -> 0x0D.

[+] Решено: При закрытии порта продолжалась передача в порт.

[+] Добавлена подсказка при наведении курсора на элементы управления.

[+] При запуске программы производится автоматический поиск СОМ портов в системе.

Версия: v1.1.0

[+] Добавлена передача в порт кодов нажатых клавиш в окне приема и передачи.

Электроника для всех

Блог о электронике

Терминальные программы

Практически постоянно приходится смотреть что шлет контроллер или заслать в него какой нибудь байтик. Это нужно для отладки, иногда для настройки. Порой для управления. Кому как, я так для отладки использую. Без толкового инструмента тут никак, поэтому я давно уже присмотрел себе парочку прикольных программок.

Первой хотел бы упомянуть Terminal v1.9b by Bray. На мой взгляд — гениальная программа! Более удобного интерфейса для работы я не встречал. Судите сами — все под рукой!

Для настроек скорости работы, номера порта, параметров передачи и прочих сиюминутных потребностей не надо даже по менюшкам лазать — все прям сразу же. Также можно в один тык выдать инфу в разных системах счисления, что порой бывает очень удобно. Я бы сказал жизненно необходимо.
В один клик доступна таблица ASCII, а среди особых фишек которую я очень люблю — возможность выдать поток данных в виде графика от 0 до 255.
А еще можно писать скрипты на паскалеподобном языке, делающие с входящими-исходящими данными всякие непотребности.
В общем, рулез!

Читайте также:  Build windows update server

Из минусов можно только отметить некоторую тормознутость при выводе в Hex кодах, но это мелочи. Еще автор похоже забил на эту разработку, так что новых версий я не видел уже много лет. Найти эту дивную программу можно много где, в том числе и у меня:

Вторая программа это COM Port Toolkit от Михаила Голикова. Ей я пользуюсь гораздо реже, но она умеет весьма нужную штуку — возможность перехватывать обмен данными между софтом и физическим COM портом. Это чертовски выручило меня когда я ломал защиту PLC, а также помогло отреверсить обмен между программой настройки модулей HM-TR433. В общем, редко, но метко.

Программка эта довольно проста в обращении, имеет три режима работы:

  • Терминал
    Может выдавать логи обмена данных улетевших к нами от нас. Слать из файла. Обрабатывать пересылаемое макросами (что может быть очень крутым подспорьем, но мне пока не пригождалось). Терминал как терминал, ничего особенного.
  • Прослушка
    Это фишка уже поинтересней. Позволяет воткнуть комп в разрез между принимающим и передающим девайсом и прослушать передачу данных кто кому и что передал. Также ведутся логи с указанием времени передачи посылки.
  • Захват
    Вот за эту фичу я и люблю эту программу — возможность снифферить обмен между софтом и портом. Редкая фича. Из бесплатных программ я нигде такого не встречал, а у программ вроде Advanced Serial Port Monitor или Free Serial Port Monitor эта фича доступна только в платной версии, тут же ее можно заюзать даже в демо версии.

Также можно писать скрипты на этот раз уже на Си подобном языке. Мне это больше нравится, т.к. я его лучше знаю.

Недостатков пожалуй три:

  • Невозможность разделить в режиме «Захват» входящие и исходящие данные на два разных окна.
  • Отстуствие русской документации, хотя бы по тому же скриптописанию.
  • Шароварность. Впрочем, я бы не назвал это недостатком. Автор, я думаю, не святым духом питается.

Демка проработала 30 дней, потом захотела денег. Но свою работу по облегчению разбора протокола обмена PLC она выполнила.

Поначалу была мысль вспомнить шальное детство, сдуть пыль с родимого SoftICE и похачить защиту, но потом вспомнил что шашек такой формы не брал в руки уже лет 5, как минимум. Да и цена программы оказалась смешной — всего 10 баксов для русскоязычных пользователей.
Так что проще было ее зарегистрировать. Тем более штука нужная и уже неоднократно себя окупившая.

HyperTerminal в Windows 7

Если вам понадобится программа HyperTerminal в Windows 7, то смею вас огорчить: ее там больше нет. По какой-то причине разработчики компании Microsoft перестали включать эту замечательную утилиту в состав своих ОС (Vista, Server 2008/R2, Windows 7). Вероятно, одной из причин такого решения являться тот факт, что COM порты на современных компьютерах практически отсутствуют, а если и есть, то покрыты толстым слоем пыли…

Напомним, что HyperTerminal – это приложение, позволяющее эмулировать работу терминала при взаимодействии с удалёнными устройствами по последовательной шине (RS-232), dial-up-у или протоколу TCP/IP (последнее скорее редкость, предпочтительнее использовать telnet). Через консольный COM порт обычно настраивают различное сетевое оборудование, такое как маршрутизаторы, модемы, свитчи, АТС и т.д.

Так как же работать с COM-портами и устройствами на них в Windows 7 , когда нужен функционал старого доброго гипертерминала?

Используем стандартный HyperTerminal из Windows XP

Чтобы вернуть HyperTerminal в Windows 7 достаточно просто скопировать файлы данной программы из Windows XP. Нам понадобятся следующие файлы:

  • C:\Program Files\Windows NT\hypertrm.exe
  • C:\WINODWS\system32\hypertrm.dll
  • C:\WINODWS\Help\hypertrm.chm
  • C:\Windows\Help\hyperterm.hlp

Скопируйте их в отдельный каталог в Windows 7, после чего можно запустить гипертерминал в Windows 7, открыв файл hypertrm.exe с явными правами админа (Run as administrator по правой кнопочке мыши).

Для тех счастливчиков, которые уже полностью мигрировали на Windows 7 и в чьем ведении не осталось Xp-шек, в архиве публикую все необходимые файлы.

Скачать hyperterminal для windows 7 : HyperTerminal_for_win7.zip (215 Кб)

Putty как аналог гипертерминала

Если вы хотите радикально избавиться от устаревшего гипертерминала, придется искать его аналоги для Windows 7.

Читайте также:  Windows live movie maker downloads

Из наиболее удобных вариантов аналога мне видится утилита Putty (тем более она входит в арсенал практически любого администратора). Все, что необходимо сделать для работы Putty с локальным COM-портом, выполнить следующую настройку:

  • Запустить утилиту putty.exe и в дереве настроек перейти в раздел Connection->Serial
  • И задать нужные параметры для подключения к конкретному оборудованию. Для подключения к устройству Cisco выставляем следующие параметры:
    • Bits per Second –> 9600
    • Data bit –> 8
    • Parity –> None
    • Stop bit–> 1
    • Flow control –> None
  • Затем возвращаемся в начальное окно Putty, в качестве типа соединения указываем Serial и указываем COM порт, к которому подключено оборудование (например, COM1)
  • Жмем кнопку Open и — вуаля! – открывается искомая консоль!

Alex_EXE

Сайт об электронике и не только

Универсальный терминал для работы с COM-портом “Termial ST”

В настоящее время ПК и ноутбуки с “железными” COM-портами в наборе интерфейсов уверенно перемещается в ряды экспонатов раритетной техники, но в мире микроконтроллерной техники и в промышленном оборудовании он будет ещё долго держать свои позиции. Для возможности беспроблемного сопряжения ПК и микроконтроллерных устройств выпускаются различные платы расширения и переходники типа USB-RS232, RS232-Bluetooth, USB-RS485 и т.д, также во все МК с USB-интерфейсом можно записать код для эмуляции обычного COM-порта. Во многие датчики встроены микроконтроллеры для оцифровки и первичной обработки сигналов от сенсоров различных типов, а результаты обработки во внешний мир передаются в цифровом виде опять же через тот самый последовательный интерфейс. Разработчики часто осваивают новые протоколы непосредственно “в железе”, используя в качестве ведущего устройства микроконтроллер или ПК. С помощью микроконтроллера можно сформировать пакеты из любой последовательности байтов данных для отправки и любой алгоритм обработки принимаемых данных. В своей практике на первом этапе разработки ПО для работы с различными устройствами через UART стараюсь вначале освоить работу с ним через ПК, на котором должен быть соответствующий терминал. Существуют множество терминалов для работы с COM-портом, но универсального на все случаи своей практики не нашёл, поэтому решил сделать его сам. Далее сильно напряг фантазию и в целях однозначности идентификации поисковиками дал ему название “Terminal ST”.


Общий вид терминала (версия 3)

Один из читателей из города Тамбова прислал обновленную версию терминала для работы с COM портом и статью описывающие особенности программы. Особенностью данной программы является возможность формировать групп команд, для удобного общения с различными устройствами через последовательный порт. Примечание Alex_EXE.

Особенности данного терминала:

  • возможность хранения и редактирования до 1485 символьных и/или бинарных последовательностей (команд). Все команды разбиты на группы и подгруппы.
  • возможность хранения и редактирования краткой справки по каждой команде; Сохранённая справка появляется при наведении курсора мыши на кнопку с соответствующей командой, т.е. не нужно держать под рукой соответствующие справочники.
  • возможность выбора одного из четырёх режимов отправки команд, описание которых приведено далее;
  • возможность добавления в конец каждой команды заготовленной последовательности символов, например или “ exit ” для текстового режима или любую последовательность данных в формате HEX для бинарного.
  • возможность устанавливать задержку для накопления данных в приёмном буфере, чтобы визуально весь ответ располагался в одной строке.
  • автоматическое переподключение к выбранному порту на случай кратковременной потери связи или временного пропадания COM-порта в диспетчере устройств Windows, что актуально при использовании переходника USB-COM или в случае перезапуска МК с соответствующим эмулятором.


Общий вид терминала


Режим редактирования команд

Показана последовательность кликаний мышкой для успешного сохранения команды с описанием.

Описание алгоритма редактирования команд можно прочитать в статье GSM DIALOG. Во всём остальном интерфейс постарался сделать максимально понятным.

Опишу дополнительные особенности терминала.

  1. Имеются 4 режима отправки команд. Режим ручной отправки очевиден – вводите команду (вручную или нажатием соответствующей кнопки) и нажимаете “Отправить”, далее с предвкушением ожидаете ответ. Режим отправки “После ответа” реализован так, что текущие данные из командной строки будут отправлены сразу же после получения ответа на предыдущий запрос. Следует иметь ввиду, что ответ от устройства может приходить частями, если его длительность превысит 1-10 мс, но программа после успешного считывания приёмного буфера сразу же отправит содержимое командной строки устройству. Во избежание недоразумений имеется опция “Время накопления буфера чтения, мс”, с помощью которой можно задать время ожидания заполнения приёмного буфера после отправки последнего байта устройству, т.к. обычно устройства отсылают сформированный ответ без разбивки на части во времени. Милисекунды в данном случае условные ввиду того, что Windows по своей природе не является операционной системой реального времени. Режим отправки “При выборе” означает то, что команда в порт будет отправлена сразу же после нажатия соответствующей кнопки, т.е. не нужно каждый раз двигать мышкой в сторону кнопки “Отправить”. Следующий режим – периодичная отправка, которая подразумевает возможность задать период отправки содержимого командной строки, после чего с заданной периодичностью последовательность будет отправляться в порт вне зависимости от того, приходит ответ от устройства или нет. Опция “Накопление буфера чтения” актуальна для всех режимов отправки команд.
  2. Имеется возможность выбора формата обмена данными. Можно работать с данными в бинарном или в текстовом формате. Первый вариант обычно актуален при работе с датчиками, второй с законченными устройствами. Каждый байт бинарного запроса записывется в формате XX, символы A..F должны быть в верхнем регистре, разделитель между байтами любой.
    Пример бинарного запроса:
    64’69’61’67’20’67’70’73’0D’
    64 69 61 67 20 67 70 73 0D
    Данные запросы идентичные, т.к. вид разделителя не играет никакой роли — терминал берёт в оборот первый и второй символ, третий пропускает, затем четвёртый и пятый, шестой пропускает и т.д.
Читайте также:  Сбрасывается герцовка монитора windows 10

Содержимое командной строки можно менять в любое время и при любом режиме отправки. Можно как вручную вносить изменения, так и нажатием соответствующей кнопки с командой.


Текстовый формат обмена данными


Бинарный формат обмена данными

Сейчас возможностей данного терминала мне хватает на все случаи моей творческой деятельности. На данном этапе пока все идеи по развитию закончились, буду ждать появления следующих или замечаний от читателей-писателей сайта. Советую делать копию файла “ComandConfig”, если в нём хранится большой объём команд с описаниями. На всякий случай. C уважением, ваш тамбовский товарищ : )

Изменения в версии v3 от 2018.08.19


Изменения интерфейса v6

  • добавлена возможность отправки команды по нажатию «Enter», кнопка «Esc» очищает строку с командой
  • добавлена возможность копирования лога из окна диалога, переключение в интерактивный режим окна осуществляется установкой соответствующей галочки.
  • добавлена возможность отправки команд из файла. Отправлять можно циклически или до достижения конца файла. Для считывания очередной команды из файла в ручном режиме нужно нажать кнопку «Из файла» и затем «Отправить». В режиме «После ответа» и «Периодически» следующая команда из файла будет считываться автоматически. Это удобно в том случае, если в последовательный порт нужно отправить последовательность команд с ожиданием ответа на каждую команду или отправку нужно выполнять с определённым интервалом.
  • улучшен интерфейс программы.
  • добавлен счётчик отправленных и полученных пакетов.
  • добавлены кнопки для более быстрого переключения вкладок с командами.
  • исправлены замеченные ошибки в коде.

Изменения в версии v4 от 2018.08.27


Изменения интерфейса v4

  • Добавлен режим однократной отправки содержимого консольной строки в порт после восстановления соединения;
  • На главную панель добавлена дублирующая кнопка Отключить/Подключить;
  • Для кнопок с командой добавлена всплывающая строка, отображающая полностью всю надпись;
  • Исправлена ошибка вывода смешанных данных (бинарных и текстовых), доработан интерфейс программы.

Режим однократной отправки удобно применять в том случае, когда имеются несколько приборов и в каждый из них нужно отправить одну и ту же команду. При использовании данного режима пользователю нужно будет только подключать разъём к очередному прибору, а программа сама будет устанавливать соединение и отправлять заданную команду один раз, но предварительно должно быть настроено и установлено соединение с первым прибором, это работает с эмулятором USB, но не с «железным» COM-портом. Если подключен один и тот же прибор со встроенным эмулятором COM-порта, но в консольной строке будет команда для перезапуска, то терминал в данном режиме будет бесконечно перезапускать прибор, т.к. после каждого перезапуска кратковременно теряется соединение. Так же удобно использовать данный режим для отслеживания перезапусков прибора с эмулятором порта в микроконтроллере, факт перезапуска можно фиксировать по времени отправленной команды в лог-файле.

Программа обновлена 27.08.2018

Иван Абдулхаев | 27.02.2018 | Программы |

3 комментария на « Универсальный терминал для работы с COM-портом “Termial ST”»

Сергей пишет 24.10.2018 в 19:25 #

Оцените статью