Терминал (для работы с COM портом) под Windows.
Зачем понадобилось создавать еще одну программу терминал ???
На просторах интернета полно подобных программ ?!
Что есть, то есть !
Но есть маленькое НО, все дело в нюансах !
— Требуемый функционал был разбросан по нескольким программам и это было очень не удобно….
— Часть требуемых функций не было и вовсе…
— Часть программ банально падали в самый неподходящий момент….
— Часть функций реализованы с ошибками….
Так жить нельзя и работать тоже ….
Значит надо создать свою программу, с необходимым функционалом.
Данный проект задумывался как вспомогательный для тестирования большого проекта связанного
с телеметрией. В проекте требовалось принимать и передавать данные через COM порт компьютера.
Проект готов и сдан. Программа осталась и продолжает использоваться по назначению, для отладки
разного рода устройств !
На текущий момент программа продолжает дорабатывается, исправляются ошибки, добавляются
новый функции.
В данной статье будут публиковаться все изменения и нововведения сделанные в программе.
Краткое описание программы.
Программа создана в среде Microsoft Studio 2008, на языке VB.
Работоспособность проверенна в следующих ОС: Windows XP, Windows 7-32/64Pro, Windows 11-64Pro.
Репозиторий программы представлен на GitHub, готовый бинарный файл(exe) в виде Zip архива.
Собранная программа представляет из себя один запускаемый файл.
Программа не требует установки и работает из любого места.
Программа не требует для запуска привилегий администратора.
Программа может:
1. Подключаться к любому com порту в системе.
2. Выставлять параметры работы com порта, включая нестандартные скорости работы порта
(при условии что драйвер windows поддерживает нестандартные скорости,
хотя как показала практика погрешность может быть очень большой.
Например: При заданной 250000 — в железе получаем 256000, ;(
увы точнее делитель не устанавливается….).
3. Производить запись принимаемых данных в файл.
Для этого необходимо поставить галку в Записать в файл,
будет создан файл с именем файла в виде текущей даты и времени и расширение log (например 05_06_2023_15_15_07.log)
в той же папке где находится сам терминал. Снятие и установка гадки приводит к созданию нового файла.
4. Передавать в порт строку с разными концовками в виде дополнительных кодов.
5. Циклически передавать в порт строку с заданным интервалом времени.
6. Передавать в порт файл.
7. Проиграть сценарий из файла (передача данных + задержка между данными).
8. Показывать состояние линий: CTS, DSR, RI, CD.
9. Изменять состояние линий: DTR, RST.
Программа пока не может:
1. Разбирать ESC последовательности.
2. Вести историю передаваемых строк.
3. Передавать в порт кода нажатых клавиш в окне приема и передачи.
4. Показывать ответы (RX от устройства) при проигрывании сценария из файла.
5. Вести в логах длинную историю (автоматическое укорачивание при достижении заданной длинны).
На текущий момент планов по развитию и доработки программы много.
Обычно в процесс работы с программой, во время отладки очередного устройства,
появляется необходимость в новом функционале.
Так в программу попадает новый функционал, продиктованный практикой.
При добавления нового функционала в программу, иногда добавляются и проявляются
глюки (по недосмотру), прошу отнестись с понимание
Глюки исправляются, и новая версия выкладывается в репозитарий.
Исходники на GiHub.
Текущая версия: Скачать (exe) в Zip архиве.
На основе данной программы была создана еще одна утилита для работы по протоколу PELCO-D,
для тестирования и управления камерами и поворотными платформами.
19-09-2023
Текущая версия: v1.6.0.
[+] Новое: В приемном окне добавлена кнопка ПАУЗА, которая позволяет не выводить
принимаемый поток в окно терминала, пока не будет нажата повторно.
При этом данные продолжают приниматься и накапливаться во внутреннем буфере.
Данный функционал предназначен для просмотра части принятого потока при постоянной
передаче со стороны устройства.
[+] Исправление: Кнопка ПОИСК(СОМ портов в системе) выключается при открытии порта.
19-12-2022
Текущая версия: v1.5.0.
[+] Исправление: Замораживание интерфейса терминала при приеме потока данных.
12-12-2022
Текущая версия: v1.4.1.
[+] Исправление: Не верная полярность сигналов CTS/DSR/RI/CD.
[+] Исправление: Терминал вылетает с ошибкой при запуске, если в системе нет СОМ портов.
5-12-2022
Текущая версия: v1.4.0 (По просьбе коллеги был добавлен новый функционал).
[+] Новое: Вывод в строку статуса состояния сигналов CTS/DSR/RI/CD.
[+] Новое: Добавлена возможность изменения состояния сигналов RTS/DTR.
1-6-2022
Текущая версия: v1.3.8
[+] Исправление: Вывод в TXT и HEX строки.
3-8-2021
Текущая версия: v1.3.7
[+] Исправление: Зависание программы при отключении COM порта из системы (выдернули кабель…).
29-7-2021
Текущая версия: v1.3.6
[+] Исправление: Перепутаны STOP BIT 1.5 <-> 2.
22-7-2021
Текущая версия: v1.3.5
[+] Исправление: Не корректный вывод кодов \r \n.
8-6-2021
Текущая версия: v1.3.4
[+] Исправление: Подвисание интерфейса при приеме не отображаемых кодов (0x00-0x19).
[+] Исправление: Конвертации кодов \n -> \n\r.
3-12-2020
Текущая версия: 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 виде в байтовый массив и передача в СОМ порт.
15-05-2019
Версия: v1.2.2
[+] Добавлена история ввода передаваемых строк.
16-12-2018
Версия: v1.2.1
[+] Внесены изменения в интерфейс. Часть функций вынесены в окно приема.
[+] Добавлена функция Вкл/Выкл печати символа с кодом 0x0A.
0x0D + 0x0A -> 0x0D.
[+] Решено: При закрытии порта продолжалась передача в порт.
[+] Добавлена подсказка при наведении курсора на элементы управления.
[+] При запуске программы производится автоматический поиск СОМ портов в системе.
4-09-2018
Версия: v1.1.0
[+] Добавлена передача в порт кодов нажатых клавиш в окне приема и передачи.
Программа Terminal 1.9b является монитором COM порта персонального компьютера. С помощью программы можно легко отправлять и принимать данные через COM порт компьютера по протоколу RS232. Среди достоинств Terminal гибкая настройка программы под различные режимы работы. Интерфейс программы прост и понятен.
Смотрите ещё:
Преобразователь USB-UART на базе PL2303HX. Скачать драйвера для windows
Преобразователь USB-UART на базе CH340G. Скачать драйвера для windows
Программа очень удобная для связи AVR микроконтроллеров и компьютером по UART/USART.
Основные возможности Terminal 1.9b:
- работает без установки. Вся программа — один exe-файл размером около 300Кб
- есть счетчик переданных и принятых байтов
- возможность отправлять файлы
- помимо стандартных скоростей (baudrate) есть возможность установить свою нестандартную
- поддерживает до 64 COM-портов
- можно весь лог работы записывать в файл
- можно назначить до 24 макросов
- реализованы Pascalе-подобные скрипты (правда документации по этому скриптовому языку я не нашел. В архиве есть несколько примеров применения скриптов и это все)
Программа очень удачная, легкая, интуитивно-понятная.
Скачать
Terminal 1.9b
Похожие записи
Здравствуйте, уважаемые хабровчане! Я хотел написать просто комментарий к статье «Программное обеспечение для тестирования и наладки устройств и сетей на базе MODBUS», однако для вновь зарегистрированных пользователей сайт не даёт это сделать для «не свежих» публикаций. Поэтому пишу это в виде публикации, что бы хоть каким-либо образом донести информацию. Суть этого небольшого поста — представить вниманию читателей новый терминал для работы с COM-портами, который, возможно, многим придётся по душе. А теперь — непосредственно сам пост:
Думаю, что каждый из embeded-разработчиков хотя бы раз в жизни пользовался терминалом для работы с COM-портом ПК — простой программой, позволяющей персональному компьютеру через встроенный интерфейс RS-232 (или USB-переходник) общаться с внешними устройствами, например такими, как GSM-модем или просто обмениваться данными с микроконтроллером в процессе разработки и отладки прошивки.
Таких терминалов на данный момент создано довольно много, как говорится «на любой вкус». Однако, как часто бывает, когда начинаешь более-менее длительно работать в какой-либо программе, начинает постоянно не хватать то одной функции, то другой, то одно кажется сделано неудобно, то другое. Всё время ловишь себя на мысли: «это лучше сделать было бы так, а это — вот эдак»
Подобные мысли и определённые требования к функционалу в конечном счёте привели к созданию «своего» терминала, который создавался не один год, наращивая свою функциональность и удобство. Он создавался в процессе разработки прошивок для микроконтроллеров, разбора многих протоколов опроса оборудования и возможно придётся «по душе» многим разработчикам ПО и электроники в целом.
В основе его дизайна легла простая, но как мне кажется правильная идея, что при обмене данными с устройством все передаваемые и принимаемые данные должны отображаться в виде диалога двух «умных» устройств так, как этот диалог отображается в любом современном мессенджере: слева вопрос, справа и ниже — ответ, слева и ещё ниже — новый вопрос и т.д. При таком «разнесении» данных существенно улучшается визуальное восприятие протокола обмена двух устройств.
Другим фактором, но уже в области функциональности терминала послужило частое требование видеть обмен двух «внешних» устройств, которые общаются с друг с другом (например какой-либо контроллер общается с подключенным к нему GSM-модемом), так сказать «подсматривать» их обмен данными, а не отсылать данные с компьютера. Это привело к появлению в терминале функции «мониторинга» COM-портов. Реализуется это просто и очевидно: программа открывает ОДНОВРЕМЕННО два COM-порта, оба в режиме ПРИЁМА. Все принятые данные по обоим портам заносятся в хронологическом порядке в описанный выше «диалог».
Изначально разбивка принимаемых данных происходила классически — по терминаторам перевода строки и возврата каретки ($0D, $0A), что характерно для текстовых протоколов. Позже была добавлена функция разбивки принимаемых данных по таймауту молчания, что очень удобно для работы с бинарными протоколами, где нет характерного терминатора.
С годами терминал оброс дополнительными полезными и удобными «плюшками», которые по достоинству могут оценить многие. Была добавлена таблица на 1000 макросов, детализация последнего принятого блока данных, детальная (побайтная) разбивка любой строки. Добавлена реализация даже такой тривиальной задачи, как перевод числа между двоичной, десятичной и шестнадцатеричной системами счисления, побитный сдвиг числа влево и вправо, просмотр таблицы ASCII. Эти операции можно выполнить и другими программами, но очень УДОБНО, когда всё это собрано в одном месте и всегда под рукой.
Все настройки и данные введенные в полях ввода автоматически сохраняются при закрытии программы и автоматически загружаются при новом сеансе работы с терминалом, что очень удобно.
Внешний вид главного окна терминала:
На последних этапах разработки терминала TbK была добавлена поддержка протокола MODBUS, причём реализован как режим MASTER, так и режим SLAVE. То есть терминал может как опрашивать MODBUS-устройства, так и имитировать из себя такое устройство. Поддерживаются все самые «ходовые» функции протокола: 1, 2, 3, 4, 5, 6 и 16
Все регистры заполняются в виде таблиц, которые удобны для восприятия.
Так выглядят дополнительные окна для работы по протоколу Modbus:
Основной функционал терминала:
-
визуально — пространственное разделение принимаемых и отсылаемых данных (либо данных, принимаемыми разными портами – в режиме мониторинга), что облегчает их восприятие оператором, так как данные представлены в виде диалога, как в мессенджере;
-
представление данных в текстовом (TEXT), десятичном (DEC), шестнадцатеричном (HEX) и бинарном (BIN) форматах в табличном виде (Таблицы) и в виде свободного текста (Memo). В режиме Memo имеется возможность выбрать фонт, размер и цвет текста;
-
таблица из 1000 макросов и комментариев к ним, каждый из которых может быть мгновенно отослан в порт двойным кликом по его номеру;
-
терминал удобен для работы как с текстовыми (символьными), так и с бинарными протоколами обмена; – различные режимы разбивки принимаемых данных на строки: по обнаружению фиксированного терминатора ($0D, $0A, $0D$0A, $0D or $0A), по таймауту после окончания приёма последнего байта, по приёму фиксированного количества байт;
-
автоматическое добавление к отсылаемым данным различных контрольных сумм (CRC) и терминаторов: $0D, $0A или $0D$0A (на выбор);
-
детализация последнего принятого блока данных (DLRB) — инструмент, позволяющий в реальном масштабе времени разбивать принимаемые данные по отдельным байтам, определив для каждого байта свой порядковый номер в посылке и задав отдельный цвет для подсвечивания каждого байта или группы байт, что облегчает визуальное восприятие данных. Это удобно при работе с позиционными протоколами, когда положение каждого байта в посылке всегда фиксировано и не изменяется во времени;
-
возможность в реальном масштабе времени вычислять на основе принимаемых данных одно-, двух- и четырёхбайтовые величины и, принимая их за аргументы, вычислять на их основе сложные функции, заданные текстовой формулой;
-
инструменты, позволяющие реализовать поддержку протокола Modbus, как в режиме Master, так и в режиме Slave. Поддерживаются 1, 2, 3, 4, 5, 6 и 16 функции протокола;
-
режим сохранения всех принимаемых / отсылаемых в log-файл;
-
инструмент Programs, позволяющий реализовать выполнение простейших программ на основе отсылки заданных макросов с определёнными паузами между ними с возможностью зацикливания выполнения отдельных блоков;
-
инструмент String, позволяющий детально проанализировать строку, скопировав её через буфер обмена и разбив по байтам, определить её длину, подсветить отдельные байты определённым цветом и привязать к каждому свой комментарий, вычислить различные контрольные суммы данной строки, произвести перевод заданного числа между различными системами исчисления (DEC<>HEX<>BIN), разложив его на отдельные байты, произвести побитный сдвиг этих байт влево и вправо;
-
быстрый доступ в терминале к встроенной справочной информации: таблицы ASCII-символов, описания выводов COM-порта (цоколёвки разъёма), схем распайки кабеля для реализации режима мониторинга COM-портов.
Сама программа написана на Delphi, работает только под Windows, для загрузки доступен сам exe-файл, а также два файла инструкции — на русском и английском языках.
Сам терминал полностью бесплатный, без каких-либо ограничений по использованию.
Скачивать терминал по ссылке
Очень хотелось бы услышать Ваши отзывы о его использовании, а также разумные предложения по наращиванию функциональности терминала.
Приятного пользования!
Advanced Serial Port Terminal is a must-have tool for every developer and programmer. This session-based multi-purpose application lets you connect to any serial port device to check, troubleshoot or debug its work and connection. Our terminal is much more functional than standard Windows Terminal, as it is able to send/receive various types of data (ASCII string, binary, octal and hexadecimal) over a serial line, redirect input/output data streams into a specified file, troubleshoot and test modem settings, etc.
Using Advanced Serial Port Terminal you will be able to change serial port settings without the need to close and reopen the serial port, adjust baudrate, databits, parity, stop bits, flow control parameters; save all received bytes into a file for later analysis and lots more. Send, receive and view data in hexadecimal format, switch between dump and terminal view modes: all of these features are very useful for debugging and testing serial port connections.
Serial Port Terminal
Connect Your Port and log your data
Specially to debug your device like microcontroller, raspberry phi, PLC etc,
Send RAW data in various type
Features
- Compact, Powerfull, Easy To Use
- Modern UI, Based on .Net Framework 3.5 and 4.6
- Log Received Data type : ASCII (text) , Decimal, Hexadecimal, Binary
- Send Data Type : ASCII (text) , Decimal, Hexadecimal, Binary
- Cosmumized Log Text, Received and Transmitted
- and more…
The premier cloud-based TMS software that makes logistics simple with one login for all inbound and outbound transportation management across parcel, LTL, FTL, ocean, and intl air. Seamless integration into your current tech stack (ERP/ WMS/CRM) and highly configurable to your existing workflows. With connections to 300+ carriers, brokers, & marketplaces, getting the best rates and optimizing shipping processes is easy. Trusted by Toshiba, NewEgg, Forever 21, e-commerce, and top automakers.
User Reviews
Be the first to post a review of Serial Port Terminal!