Терминал для com порта windows

Терминал для com порта windows

Терминал (для работы с 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

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

Alex_EXE

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

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

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

Читайте также:  Лучшие читалки для windows phone


Общий вид терминала (версия 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 ce

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


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


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

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

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


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

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

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


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

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

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

Читайте также:  Низкий звук windows 10

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

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

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

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

Как пользоваться терминальной программой Terminal 1.9b

Как работать с устройствами по COM-порту с помощью терминальной программы?
В различных инструкциях и руководствах вы можете увидеть рекомендации по работе с устройствами через терминальную программу. Как правило, такие действия производят с помощью HyperTerminal — стандартной программы в операционных системах Windows. Мы же рекомендуем использовать терминальную программу «Terminal v1.9b by bray», потому что это более гибкий и удобный в работе инструмент. Ниже мы расскажем как работать с нашими устройствами на примере именно этой программы.

В первую очередь подключите устройство, с которым собираетесь работать, к компьютеру через COM-порт. Подключите питание.
Теперь запустите Terminal v1.9b.

Интерфейс и основные настройки подключения по порту

В верхнем поле находятся параметры подключения:

  1. Колонка №1:
    Connect
    — кнопка для открытия COM-порта,
    Rescan — пересканировать список COM-портов,
    Help — справка,
    About.. — о программе,
    Quit — выход из программы.

Колонка №2:

  • Поле выбора номера COM-порта для подключения.
    Колонка №3:
  • Выбор скорости COM-порта.
    Колонка №4:
  • Выбор количества бит данных.
    Колонка №5:
  • Выбор четности.
    Колонка №6:
    Выбор количества стоповых бит.
    Колонка №7:
  • Выбор типа управления потоком.
  • В разделе Settings находятся дополнительные параметры. Они пригодятся для написания скриптов, работы с нестандартными скоростями или для записи лога от устройства.

    В разделе Recieve находятся параметры отображения ответа от устройства.

    В разделе Transmit находятся параметры передачи данных на устройство. Кнопки DTR и RTS устанавливают соответствующие выводы в положительное состояние.

    Макросы

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

    1. Блок №1:
      Поле для ввода последовательности символов для отправки. Для того чтобы отправить специальные символы, необходимо воспользоваться ASCII таблицей и ввести код символа, предварительно экранировав его знаком «$«. Например, на картинке выше, вы можете видеть экранированный символ возврата каретки $0D (нажатие клавиши Enter)
      Блок №2:
    2. Здесь в левом поле задаётся имя кнопки, а в правом отображается сама кнопка.
      Блок №3:
    3. Тут задаётся задержка при автоматическом повторении команд.
      Блок №4:
    4. Включение автоматического повтора команды через интервал времени, заданный в п.3.

    Кнопки Load и Save позволяют сохранить или загрузить файл с макросами, введёнными в этом окне.

    Отправка и прием данных


    Блок №1:
    В этом большом поле вы будете видеть ответы от вашего устройства.
    Если в разделе «Settings» вы не забыли поставить галочку «Time«, то перед каждой строкой будет проставлена метка времени. Это бывает очень полезно при анализе логов с устройства.

    Блок №2:
    Тут находится поле для отправки текста сообщений. Установленная галочка «+CR» будет дописывать к отправляемому сообщению символ возврата каретки (эмулировать нажатие клавиши Enter). Кнопка «->Send» отправит ваше сообщение на устройство.

    Блок №3:
    В самом низу находится поле, где вы можете видеть отправленные на устройство команды.

    Теперь вы знакомы с интерфейсом Terminal 1.9b!

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