Программа 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
Похожие записи
Терминал (для работы с 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. Производить запись принимаемых данных в файл.
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-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 -> nr.
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
[+] Добавлена передача в порт кодов нажатых клавиш в окне приема и передачи.
I hope that this blog post is found and helps someone. I wasn’t sure what to title it. Hope Google Juice got you here!
Read this whole post, there’s a lot initially but there’s really just two or three small pieces. It’ll be worth it because you’ll be able to have a nice one click menu and drop directly into a serial port terminal on Windows in the Windows Terminal
Often when you’re doing embedded systems development you’ll want to monitor or talk to the COM/Serial Port just like you SSH into remote system. Folks ask questions like «How to connect to a serial port as simple as using SSH?»
On Linux you’ll use things like «screen /dev/ttyS0» for COM0. With Windows, however, the historical guidance has always been to use Putty. It’ll work but it’s somewhat old, quirky, and it doesn’t integrate well with the Windows Terminal and a more modern workflow.
Say I have a small embedded microcontroller device that talks over a COM Port (usually via a USB->COM bridge) like an Arduino.
Let’s assume this device talks to the COM port as if it were a terminal and it’s outputting stuff I want to see. I’ll use this great little CLI example app for Arduino from Mads Aasvik to simulate such a device.
Here’s what it looks like under Arduino’s Serial Monitor, for example. This is a Windows app doing serial communication with its own interface wrapping around it. I want to do this at a command line, and bonus points if it’s in Windows Terminal.
Setup WSL1
If you have Windows 10 you can the Windows Subsystem for Linux quickly with this command at a Admin prompt:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Then go to the Windows Store and get any small Linux. Ubuntu or Kali will do for our purposes. Run it and set your user and password. (I tried Alpine but it still has issues with screen and /dev/null/utmp)
NOTE: If you are using WSL2 and have set it as default, run wsl —list -v and ensure that your new distro is using WSL1 as only WSL1 will let us talk to the COM Ports. You can change it to WSL1 with «wsl —set-version DISTRONAME 1» from any command prompt.
To test this out now, run your new distro from any command line prompt like this. Add the «screen» app with sudo apt update
» and «sudo app install screen
«.
You can see here that my Arduino serial device is on COM4. On Linux that device is /dev/ttyS4
That means that I should be able to talk it from any WSL1 Linux Distro on Windows like «screen /dev/ttyS4 9600
» where 9600 is the speed/baud rate.
> wsl --list -v
NAME STATE VERSION
* Ubuntu-18.04 Stopped 2
kali-linux Stopped 1
Ubuntu-20.04 Stopped 2
WLinux Stopped 2
Get Minicom on your WSL1 distro
Screen is somewhat persnickety for Serial Port work so try Minicom. Minicom is a nice little text com program. Install with apt install minicom and run for the first time with «sudo minicom -s» to set your default. Note I’ve change the default port from /dev/modem to /dev/ttyS4 and the speed, in my case, to 9600.
Then I hit enter and save settings as the dft (default) in minicom. You can also turn on Local Echo with «Ctrl-A E» and toggle it if needed. Now I can talk to my Arudino with minicom.
Ensure dialout permissions to talk to the COM port
NOTE: If you get «cannon open /dev/ttyS4: Permission denied, you may need to add your user to the dialout group. This way we don’t need to sudo and get no prompt when running minicom!
> wsl -d kali-linux minicom
minicom: cannot open /dev/ttyS4: Permission denied
> wsl -d kali-linux
$ groups scott
scott : scott adm cdrom sudo dip plugdev
$ sudo gpasswd --add scott dialout
[sudo] password for scott:
Adding user scott to group dialout
I can now run minicom on my configured COM port 4 (/dev/ttyS4) with wsl -d DISTRONAME minicom without sudo
.
Here I’m talking to that Arduino program. This embedded app doesn’t need to me hit enter after I type, so remember your own embedded devices will vary.
Make a nice menu
Bonus points, now I’ll add a menu item for Minicom by changing my Windows Terminal settings AND I’ll get more points for adding a nice serial port icon!
I hit settings and add a new profile like this at the top under profiles in the «list.» Again, your distro name will be different.
{
"guid": "{61c54bbd-a2c6-5271-96e7-009a87fa45cf}",
"name": "Minicom on Serial COM4",
"hidden": false,
"commandline": "wsl -d kali-linux minicom",
"startingDirectory": "%USERPROFILE%",
"icon": "C:/Users/scott/Desktop/serial_port_icon_138204.png"
},
To review:
- Use a WSL1 distro
- Install minicom, run with minicom -s once to make settings
- Make sure you are using the right /dev/ttyS0 device for your situation
- Ensure your flow control, baud, etc are all correct in minicom
- Add your user to the dialout group so you don’t have to sudo minicom
- Make a menu item in Windows Terminal
- or run minicom manually in your WSL1 instance whenever you like
Hope this helps!
Sponsor: Suffering from a lack of clarity around software bugs? Give your customers the experience they deserve and expect with error monitoring from Raygun.com. Installs in minutes, try it today!
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
Hosting By
Здравствуйте, уважаемые хабровчане! Я хотел написать просто комментарий к статье «Программное обеспечение для тестирования и наладки устройств и сетей на базе 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-файл, а также два файла инструкции — на русском и английском языках.
Сам терминал полностью бесплатный, без каких-либо ограничений по использованию.
Скачивать терминал по ссылке
Очень хотелось бы услышать Ваши отзывы о его использовании, а также разумные предложения по наращиванию функциональности терминала.
Приятного пользования!
Программа — драйвер виртуального последовательного порта. Эмулятор нуль-модемного провода Null-modem emulator
Бесплатная программа com0com позволяет в пару кликов создать в системе пары виртуальных COM портов. Это позволяет, например, отлаживать ваши программы, использующие последовательные порты, не подключая никаких кабелей, или на компьютере, у которого вообще нет ни одного COM порта. Вы можете легко связать две программы , работающие с такими портами через этот драйвер, просто выбрав в одной программе первый виртуальный порт из пары, а во второй программе — второй порт. После этого программы смогут обмениваться данными, как если бы они были запущены на разных машинах, соединенных кабелем через их COM порты. К примеру вы пишете программу, которая посылает текстовые сообщения через последовательный порт. Вы можете отлаживать такую программу, назначив ей один из пары виртуальных портов, а на второй виртуальный порт из пары «повесить» программу — терминал. Тогда вы сможете в терминале наблюдать данные, которые посылает в порт ваша программа.
Другое применение — отладка проектов на микроконтроллерах в симуляторе Proteus. разработчики очень часто используют COM PORT (UART интерфейс) в микроконтроллерных приложениях, так как аппаратный UART модуль имеется практически в любом современном микроконтроллере, и использовать его легко и просто. В программе Proteus есть специальный компонент для связи с COM портом компьютера (не важно, реальный это порт или виртуальный). Компонент называется COMPIM и выглядит вот так:
Этот компонент — практически «мостик», связывающий симуляцию Proteus c внешним по отношению к симулятору миром.
Предположим мы разрабатываем устройство на микроконтроллере, которое связывается с компьютером и, возможно, управляется от него, через COM порт. Одновременно мы разрабатываем программу для компьютера, которая будет взаимодействовать с этим микроконтроллерным устройством. Используя драйвер виртуальных портов мы можем отлаживать такой комплекс внутри виртуального пространства компьютера без подключения каких-либо проводов и без сборки реального устройства на микроконтроллере. Просто «собираем» схему в Proteus, загружаем в модель контроллера прошивку, добавляем в проект компонент COMPIM, соединяем линии TXD и RXD контроллера с соответствующими линиями COMPIM. В компоненте COMPIM нужно выбрать один из пары наших виртуальных портов и задать правильную скорость обмена. С другой стороны, в компьютерной программе выбираем второй из пары COM портов. Запускаем проект Proteus на выполнение и любуемся результатом.
Более простой вариант — в качестве компьютерной программы можно использовать любой COM — терминал, например вот этот. Тогда в программе — терминале мы сможем видеть данные, поступающие с нашего микроконтроллера (из Proteus) и посылать ему команды, как если бы это было реальное «железное» устройство.
Для установки драйвера на windows 7..10 нужно временно перевести винду в режим разработчика. Для этого в меню пуск выберите «выполнить» и запустите команду: bcdedit.exe -set TESTSIGNING ON
после этого перезагрузите компьютер.
Скачать программу — Virtual Serial Port Driver Com0Com
Программа — терминал V9b
Очень удобная терминалка для работы с COM портами
Бесплатная и компактная программа — терминал. Очень полезна для отладки софта и устройств, использующих COM PORT. Может использоваться с драйвером Virtual Serial Port Driver Com0Com, описанным выше.
BComPort — Удобный в работе Delphi компонент для работы с COM- портом
Компонент для обмена данными с внешними устройствами через интерфейс RS-232 в асинхронном или синхронном режиме. Автор: Брусникин Игорь Викторович. Компонент довольно старый, но устанавливается без проблем в любой Delphi вплоть до 10.2 Tokio.
Внимание! В новых UNICODE- версиями Delphi компонент хоть и устанавливается без проблем, но работает некорректно, так как все новые версии Delphi используют тип String в Unicode. Я адаптировал компонент для использования в новых Delphi . Подправленная версия в том же архиве в папке BComPortUnicode. Оригинальная версия — в папке BComPort. Для установки в не-юникод версии Delphi (До 8-й включительно) нужно использовать оригинальную версию. Устанавливается просто. Например в Delphi 10.2 Tokio нужно выбрать Component — Install Component и потом выбрать файл BCPort.pas. В архиве есть инструкция на русском языке и примеры. Скачать архив с компонентом…
Компоненты для среды программирования Lazarus. В том числе и для работы с Serial / COM / UART…
Представляю очередную версию программы для работы с COM-портом TerminalTMB. Предыдущая статья и версии программы, доступны по ссылке. Идея создания данного проекта возникла после непродолжительного поиска на просторах сети терминала с нужным функционалом. Отправить байт, строку, увидеть принимаемые данные, записать лог, запомнить отправленные строки — это стандартный набор возможностей большинства подобных программ, но для моей деятельности этого мало. Некоторые идеи взял из других подобных программ и развил дальше, но пока не реализовал подсветку строк, не добавил возможность построения графиков, сценариев, как в Terminal 1.9b, Al_Terminal. Пока не реализована возможность прослушивания порта, как умеет COM Port Toolkit. Это всё будет в будущем по мере развития проекта. Есть программа работы с более богатым и гибким функционалом – Обсервер, но она и сложнее для использования.
В представляемом терминале собрал следующие возможности и умения, которые мне потребовались в процессе творческой деятельности для устранения рутины:
Основные возможности терминала.
- удобное хранение и использование 4800 макросов, разбитых на 100 списков с полным описанием каждого макроса;
- работа в HEX и ASCII режиме;
- 4 режима отправки команд из консольной строки: ручной, периодический, после ответа и при нажатии на кнопку с макросом;
- отправка команд из файла;
- отправка файлов размером до 16 МБ;
- отправка списков команд с настраиваемыми временными интервалами;
- эмулирование ответов на запросы (до 320 запросов по 16 возможных ответов на каждый запрос, конфигурации можно сохранить и прочитать из файла);
- режим прямой отправки кодов символов с клавиатуры в момент нажатия клавиш;
- настройка условий для разделения строк;
- настройка условий для очистки лога;
- одновременный просмотр лога в HEX и ASCII-режимах;
- фильтрация сообщений перед выводом в лог;
- захват нужных подстрок с остановкой прокрутки лога;
- настройка условий для автоматического разворачивания окна терминала из свёрнутого состояния;
- ведение статистики;
- логирование событий в файл;
- запись текстового и бинарного лога с любым расширением;
- настройка цветов и шрифтов, возможность быстрого поиска по началу введённой команды из списка ранее отправленных;
- вывод лога через прямой и инверсный фильтр, когда нужно выводить ссобщения с заданной подстрокой или игнорировать только их;
- отправка команд в HEX или ASCII и приём ответов в любом одном или одновременно двух указанных режимах.
После копирования программы в пустую папку и её запуска создаются несколько пустых файлов для хранения настроек конфигурации, ранее отправленных команд и макросов, после чего открывается главное окно программы:
Настройки порта
При нажатии кнопки «Port» выполняется считывание существующих портов из реестра OC Windows, затем предлагается выбрать нужный порт для подключения. Первым в списке предлагаемых портов будет последний использованный, если такой был.
В открывшемся окне будет предложено выбрать порт и задать его настройки. Если скорость порта нестандартная, то в соответствующем окне можно вручную ввести необходимое значение. В настройках порта имеются две опции для настройки автоматического соединения. Первая нужна для случая, когда порт временно пропадает из системы и заново появляется в ней, например, при перезапуске микроконтроллера устройства или при переподключении кабеля USB. Вторая опция настройка автоматического соединения отвечает за автоматическое нажатие кнопки Connect после запуска терминала. В этой ситуации вероятна ситуация, когда терминал намертво зависнет (порт прописан в файле конфигурации, но из системы удалён вместе с переходником usb-com) и потребуется нажать три кнопки, но после данного способа выхода при повторном запуске эта опция будет отключена.
Если настроить автоматическое соединение при каждом появлении порта в системе и включить опцию отправки команды при соединении, то можно заметно уменьшить количество лишних движений, когда в каждый из десятков приборов нужно отправить одну и ту же команду или последовательность команд из файла. Все действия сведутся только к поочерёдному подключению кабеля к каждому прибору.
Работа с логом
На данной панели имеется команда очистки окна лога, окно ввода строки фильтра и настройки реакции программы при получении пакета, содержащего в себе заданную последовательность.
Miss – не выводить сообщения, содержащих подстроку из окна фильтра;
Out – в окно лога выводятся только те пакеты, которые содержат указанную подстроку;
Capt – при появлении пакета с заданной подстрокой окно лога останавливается;
No – никакое действие не выполняется (на случай, если нужно временно отключить фильтр);
Auto scroll – автоматическая прокрутка окна лога вниз при получении очередной порции байтов.
В окне статистики работы терминала отображается значение счётчика полученных подстрок, заданных в фильтре:
Для отображения данной статистики нужно нажать кнопку «Show stat»
Всё это даёт большие удобства, когда нет возможности постоянно следить за логом работы какого-либо прибора, отлавливая глазами нужное сообщение или выполняя его поиск в ранее записанном файле лога, когда уже всё прапало и прибор испустил дух.
«||» — кнопка остановки лога с последующим просмотром в отдельном окне, при этом в главном окне запись лога будет продолжаться. Для возврата в главное окно лога нужно нажать данную кнопку ещё раз (в это время на ней будет символ «>»).
Настройки программы
Start log – кнопка запуска записи лога. После её нажатия будет предложено ввести префикс названия файла, выбрать тип записываемого файла и записываемые данные: отправляемые и/или принимаемые данные для каждого записываемого файла.
Текстовый файл сохраняется в том виде, как его видно в окне лога без учёта фильтра. В бинарный файл сохраняются только те данные, которые были отправлены или получены из порта. Если задать расширение .exe, то можно таким образом принимать исполняемые файлы, которые можно затем запускать.
После завершения записи лога будет предложено открыть записанные файлы для просмотра в блокноте.
Файлы логов также можно просмотреть до остановки записи, нажав одну из соответствующих кнопок:
При нажатии данных кнопок откроется проводник для выбора файла, при этом в качестве пердвыбранного будет задано имя текущего файла.
Second Window – включение второго окна вывода лога, в котором можно указать режим вывода (ASCII или/и HEX) и направление выводимых сообщений (TX и/или RX). На скрине показан пример использования дополнительного окна, когда в левом окне отфильтрованный лог, а в правом полностью весь лог отображается. В левом окне запрещено выводить сообщения, содержащие подстроку “AT+”, в правом окне настроен вывод только прочитанных сообщений и только в формате ASCII. Включена опция игнорирования фильтра, чтобы выводить полный лог. Окно настроек дополнительного окна открывается при открытии этого окна или по двойному клику в его области.
Add Menu – отображение дополнительных пунктов меню настройки программы и включения дополнительных режимов программы.
Background color – выбор фонового цвета окна вывода лога;
Font settings – настройки шрифта окна вывода лога;
Monitor mode – скрытие/отображение нижней панели программы;
Описание нижеперечисленных кнопок будет в следующих разделах руководства:
EmulAns – режим эмулятора ответов в ответ на приходящие запросы;
Cmd list mode – режим отправки списков команд с заданными интервалами;
Fast send mode – режим прямой отправки кодов клавиатуры в порт;
Directories – настройки директорий хранения файлов, используемых программой;
Sent commands – окно отправленных в порт данных;
Sniffer – пока не задействована;
Line separator – настройка разделителя пакетов для отображения в логе;
Autocleaning – настройки автоочистки окна лога;
Buffer FIFO – работа с входным приёмным буфером;
Event alert – настройка отслеживаемых событий;
Event log – логирование событий и работы терминала;
ASCII table – таблица ASCII, актуальная для данной версии Windows.
Отображение лога
Имеется возможность выводить лог в текстовом и бинарном режиме, а при необходимости в обоих режимах. Режим вывода можно менять для главного и для дополнительного окна, в дополнительном окне можно одновременно выводить данные в двух режимах и задать опцию для отображения режима вывода каждого пакета наряду с отображением временного штампа и счётчика числа байтов. К каждому пакету можно прикреплять временной штамп со значком направления передачи и значение счётчика числа принятых или отправленных байт. Аналогичные дополнительные данные прикрепляются к пакетам в дополнительном окне, что упрощает поиск нужного сообщения, если их нужно посмотреть одновременно в двух режимах.
В текстовый лог всё пишется вместе с дополнительной информацией, а в бинарный записываются только отправляемые и принимаемые данные.
Режим отправки пакетов
Имеется возможность задать один из нескольких режимов отправки содержимого консольной строки в порт:
Manual – только ручная отправка по нажатию Enter (с очисткой строки), Ctrl+Enter(без очистки строки) или соответствующей кнопки отправки команды справа от окна ввода хвоста команды. Содержимое консольной строки меняется вручную или при нажатии соответствующей кнопки с макросом.
When choosing – отправка команды сразу после нажатия кнопки с соответствующим макросом, при этом содержимое консольной строки не изменяется, что позволяет без лишних движений повторно отправлять вручную содержимое консольной строки.
After answering – отправка содержимого консольной строки сразу после получения ответа на предыдущую команду или после прихода любых данных в общем случае. Содержимое консольной строки можно менять вручную или нажатием соответствующей кнопки с макросом. На частоту отправки команд влияет время, указанное в качестве разделителя строк, указываемое в дополнительном меню (Line separator).
Periodic – периодическая отправка содержимого консольной строки в порт с заданной периодичностью. Точность выдержки периодичности в пределах 10-30 мс, поэтому относительно точно период отправки будет выдерживаться при его значении больше 1000 мс. Содержимое консольной строки в данном режиме можно менять вручную или с помощью кнопок макросов.
Данные режимы отправки актуальны и при отправке команд из файла, в котором каждая команда записывается в текстовом виде с новой строки.
После выбора файла с командами можно организовать их отправку разными способами в зависимости от выбранного режима На скрине ниже показана кнопка, которая в режиме отправки команд из файла при каждом нажатии отправляет следующую команду.
В ручном режиме содержимое консольной строки меняется при клике мышкой по соответствующей строке с командой, далее отправка выполняется любым способом вручную, но для минимизации движений при последовательной отправке команд имеется отдельная кнопка, которая при каждом нажатии отправляет в порт следующую команду из файла.
В режиме отправки при выборе в консоль отправляется сразу же та команда из файла, по которой кликнули мышкой.
В режиме отправки “после ответа” в консоль отправляется следующая команда из файла после получения ответа на предыдущую, что удобно, например, когда нужно отправить сразу несколько команд, на каждую из которых обязательно нужно получить ответ. Начинать процесс отправки нужно ручной отправкой первой командой. В данном режиме можно задать циклическую отправку команд, когда все команды из файла будут отправляться по кругу бесконечно.
В режиме периодической отправки все команды из файла отправляются по очереди с заданным интервалом вне зависимости от получаемого ответа на предыдущую команду. Аналогично можно задать циклическую отправку в данном режиме.
Файл команд нужно обязательно завершать переходом на новую строку в конце файла.
Если задана опция “Send on connect”, то содержимое консольной строки отправляется в порт сразу после установки соединения, а дальше алгоритм отправки задаётся настройками режима отправки. Данная опция позволяет отправлять в порт при соединении не только содержимое консольной строки, но и файл команд, если он выбран и настроен нужный режим отправки. Вместе с опцией первого вида автоконнекта в настройках порта можно настроить такой алгоритм отправки, когда консольная строка или файл команд будет отправляться в прибор автоматически при подключении USB-кабеля.
Консольная строка
Пакет для отправки данных формируется из содержимого консольной строки и “хвоста сообщений”, которые склеиваются вместе перед отправкой. Для отправки консольной строки нужно нажать Enter, если нужно отправить строку с очисткой содержимого или Ctrl+Enter, если очищать не нужно. Нажатие стрелки вверх при нахождении фокуса ввода в консольной строке будет выполнена очистка окна лога. Нажатие стрелки вниз развернёт окно с историей ранее отправленных команд, начало которых совпадает с частично введённой командой. Если консольная строка пуста, то нажатие стрелки вниз отобразит все ранее отправленные из консольной строки команды (всего запоминается не более 500, повторно отправляемые команды в данный список не добавляются, а ранжируются в списке так, что в верхней строке списка будет последняя отправленная строка). Длина строки консоли не должна превышать 65000 символов для текстового режима и 205000 символов для бинарного.
«Хвост сообщений» – это та сущность, которая всегда добавляется к содержимому консольной строки. Если нужно добавить одно или несколько шестнадцатеричных чисел, то они записываются в виде $XX$YY$ZZ. Если нужно добавлять смешанные данные, то пример хвоста будет такой «text cmd$0D», также имеется возможность вставки в хвост сообщений шаблона контрольной суммы, рассчитываемого по одному из алгоритмов, например для NMEA-сообщений шаблон будет следующий: «*[XOR_8 (1..n)]$0D$0A»
Данные в консольной строке отправляются в том виде, который задан для отображения лога: ASCII или HEX. Всё ранее написанное было справедливо для текстового режима. При отправке данных из консоли в HEX-режиме строка формируется из двоичных чисел в формате XX через пробел, например «70 77 64 20 31 32 33 34 35 3B 65 63 68 6F 20 6F 66 66 2A 37 37 0D «, в аналогичном виде формируются строки файла команд, содержимое макросов и содержимое хвоста команд. Единственная необычность в том, что в конце консольной строки или команд в файле нужно ставить пробел, если предполагается добавление хвоста сообщений.
В хвост сообщений тоже можно добавлять один или несколько шаблонов контрольных сумм (для извращений) через пробел, например:
В логе выделена та часть отправленного сообщения, которая сформировалась из шаблона контрольной суммы и одного байта в хвосте сообщения, полученный ответ видно в режиме ASCII, как указано в настройке отображения прочитанных данных.
Макросы
В программе имеется возможность сохранения макросов, организованных в виде списков, число которых может быть не больше 100. Всего в сумме можно хранить до 4800 макросов с их описанием.
Макросы могут отображаться в виде списков команд или списков названий макросов (жирный шрифт), соответствующий режим выбирается радиокнопками справа от названия списка. При наведении указателя мышки на активный макрос в подсказке отображается содержимое команды или имя макроса в зависимости от выбранного режима отображения. В прямоугольном поле справа может выводиться справочная информация по каждому макросу. Для удобства пользователя макросы можно редактировать. Редактирование может быть простым, когда можно поменять название и содержимое и расширенным, когда дополнительно можно редактировать справочную информацию.
Для переключения в режим простого редактирования нужно выбрать вкладку «Editor».
В данном режиме можно менять название списка макросов их имена и содержимое, доступно перелистывание списков и переключение между режимами отображения команды и имени. Для каждого списка макросов сохраняется свой хвост сообщений и свой режим работы (ASCII или HEX). Для режима HEX команды записываются в том же виде, как в консоли для данного режима, например: «11 22 33 44 55 0F AB CD » с обязательным добавлением пробела в конце, если предполагается прикрепление хвоста сообщений.
Для переключения в режим расширенного редактирования макроса нужно на соответствующем макросе дважды кликнуть мышкой, после чего откроется нужное окно редактора:
На главном окне в правом нижнем углу будет отображаться результат редактирования в том виде, в котором он будет виден при наведении указателя мыши на редактируемый макрос.
Отправка файлов
Имеется возможность отправки файлов в порт. Размер файла при этом не должен превышать 16 МБ. При отправке файла можно видеть лог отправки всегда в HEX-виде и статистику процесса в правом нижнем углу, которая отображается по нажатию кнопки «Show stat»
После выбора файла его содержимое копируется в буфер оперативной памяти и на это время возможно временное зависание программы, после чего начнётся процесс отправки, который можно прервать или приостановить в любой момент закрытием порта или нажатием соответствующей кнопки.
Теперь вернёмся к описанию дополнительных режимов работы и настройкам терминала, доступных по нажатию кнопки «Add menu».
Режим эмулятора ответов
В данном режиме можно настраивать списки ответов, возвращаемых в порт после получения целого запроса или его части, начало которого совпадает с одним из заданных в списке входящих пакетов. Для активации данного режима нужно нажать нижнюю правую кнопку со значком «>». В процессе работы можно на ходу делать активными шаблоны входящих запросов и варианты ответов на них установкой галочки в соответствующем чекбоксе. На скрине показан пример настройки режима автоматической отправки ответов на запросы с использованием только текущего списка запросов. В автоматическом режиме в ответ на запросы будут автоматически отправляться в случайном порядке один из активных ответов именно для конкретного запроса. Для каждого запроса можно задать до 16 возможных ответов. Если число возможных запросов не помещаются в списке, то можно задействовать все списки, установив соответствующий режим. Ответы могут отправляться в текстовом или в бинарном виде, что выбирается соотвествующими радиокнопками слева от каждого возможного ответа. Правило записи бинарных последовательностей такое же, как и для консольной строки, т.е. в виде «XX YY ZZ » с обязательным наличием пробела в конце строки, если предполагается использование хвоста сообщений. Хвост сообщений для данного режима задаётся в соответствующих окнах отдельно для каждого возможного ответа. По нажатию стрелки вниз в окне редактирования хвоста сообщений открывается список шаблонов контрольных сумм, а далее алгоритм формирования такой же, как и при работе с консольной строкой. Внизу окна находятся кнопки редактирования списков и изменения пропорции ширины окон редактирования запросов и ответов. Данный режим можно применять для эмулирования ответов датчиков, возвращающих данные по запросу. Не составит большого труда составить нужный алгоритм работы с GSM-модулем, если задать ответы-команды на каждое синхронное или асинхронное сообщение данного модуля. Ещё одно применение данного режима можно найти при тестировании софта, который должен работать с каким-либо устройством по последовательному порту. В данном случае следует применить пару виртуальных портов com0com, к одному из которых следует подключить тестируемую программу верхнего уровня, а ко второму данный терминал и задействовать этот режим. Ничто не мешает отвечать программе верхнего уровня вручную или с помощью макросов, но в реальном времени это часто бывает сложно делать из-за необходимости быстро отвечать на запросы и вот тут будет очень удобно применять этот режим. Для каждого устройства или программы можно сохранять и загружать свою конфигурацию запросов и ответов.
Режим списка команд
Иногда требуется отправлять последовательно несколько команд с разными интервалами времени. Данный режим доступен в терминале по нажатию соответствующей кнопки в дополнительном меню.
В данном режиме можно формировать список отправляемых команд, после отправки каждой из которых нужно выдержать заданную паузу. Последняя отправленная команда подсвечивается зелёным цветом. Отправка может выполняться вручную или автоматически. В обоих режимах доступными для отправки будут только активные команды. Команды можно редактировать непосредственно в строке или в отдельном окне по двойному клику мыши. Пока ещё несохранённая команда выделяется жирным шрифтом. В отдельном окне редактирования можно также написать краткую справку к каждой команде. Список команд можно отправлять однократно или циклически. Также можно задать диапазон страниц с командами для автоматической отправки, если команд больше 32. Режим отправки данных (HEX или ASCII) зааётся отдельно для каждого списка команд. Правила формирования сообщений и хвостов такие же, как и для консольной строки. Данный режим можно применять для отправки асинхронных сообщений в порт совместно с другими режимами работы терминала.
Режим быстрой отправки команд
Данный режим позволяет отправлять печатаемые символы в порт сразу после нажатия.
Все режимы отправки команд можно использовать одновременно.
Окно просмотра ранее отправленных команд
В данном окне отображаются все ранее отправленные команды и опционально их режим отправки ([H] – HEX, [A] — ASCII). Данное окно очищается автоматически и/или вручную при нажатии соответствующей кнопки.
Бывают ситуации, когда главное окно терминала закрывает окно дополнительного режима или окно дополнительного режима не разворачивается. В этом случае в дополнительном меню главного окна нужно повторно нажать на соответствующую кнопку.
Настройки директорий
Для устранения неудобств при поиске нужных файлов имеется возможность настроить нужные пути к файлам разных типов, но будет удобнее хранить их все в одной директории.
Если пути к файлам не заданы, то они будут храниться в директории с программой.
Следующие настройки не открываются в отдельных окнах:
По нажатию каждой из кнопок открывается соответствующая панель с настройками. Для простоты и удобства повествования все эти панели покажу на одном скрине.
Здесь имеются следующие возможности:
- настроить условия разделения пакетов для вывода следующего в новой строке лога;
- настроить условие автоочистки окна лога;
- сбросить входной буфер, если нет желания томительно ожидать, пока он весь выгрузится в окно лога;
- настроить условия регистрации определённых событий и задать возможность автоматического разворачивания окна терминала при наступлении заданного события, что удобно, когда нужно посидеть за чаем в интернетах, но ещё нужнее в это время отслеживать появление нужного сообщения или ситуации в логе;
- включить/выключить опцию записи лога событий и просмотреть этот самый журнал с помощью блокнота.
При нажатии на кнопку ASCII table открывается окно с соответствующей таблицей:
Таблица формируется программным способом, поэтому для каждой версии Windows может отличаться от представленной на рисунке.
Данным терминалом постоянно пользуюсь в процессе своей творческой деятельности, поэтому число ошибок и неудобств в ней должно быть минимальным, т.к. добавление нового функционала и исправление возникающих ошибок выполнялось в процессе длительного активного использования. Программа бесплатная, ограничений по времени работы и реализованному функционалу нет, но для поддержания штанов и энтузиазма для дальнейшего развития проекта можно положить небольшое спасибо на указанный в окне обратной связи номер карты.
Плагиат статьи приветствуется при указании ссылки на первоисточник. Даже если ссылка не будет указана в скопированном тексте, то она имеется в информации для обратной связи в самой программе по нажатию кнопки «Info».
Скачать программу TetminalTMB v3.98b
Изменения в версии 3.104b от 2021.06.22:
- добавлена возможность выбора контрольной суммы LLS;
- добавлена возможность привязки всех настроек отправки, приёма, отображения и т.д. к каждому списку макросов;
- добавлены кнопки копирования и вставки списка максросов;
- добавлена функция сравнения бинарных файлов;
- небольшие визуальные улучшения.
Скачать программу TetminalTMB v3.104b
Изменения в версии 3.107b от 2021.11.20:
- Добавлен режим перебора комбинаций пакетов (Brute force)
Данный режим нужен на случай, если требуется отправка пакетов, в которых перебираются определённые байты, например, контрольная сумма. Аналогично можно сделать перебор байтов сразу в нескольких выбранных позициях. Разрешённые байты задаются отдельно для каждой выбранной позиции.
Скачать программу TetminalTMB v3.107b
Изменения в версии версии 3.112b от 2022.01.29:
- алгоритм побайтного чтения файлов с диска заменён на алгоритм поблочного чтения, что увеличило скорость считывания файлов в ОЗУ перед отправкой в порт;
- максимальный размер сравниваемых файлов увеличен до 8МБ;
- добавлена возможность формирования команд для отправки файлов с сохранением данных команд в конфигурации макросов, в конфигурациях сценариев эмулятора ответов и в конфигурации списков отправляемых команд;
- небольшие улучшения интерфейса.
Формат команды для отправки файла: [sendfile:]NameFile (без пробелов), пример:
[sendfile:]E:Файлы TerminalTMBDSCN5252.JPG
Длина всей команды должна быть не больше 250 байт, если команду предполагается сохранить в конфигурации. Режим отправки (ASCII или HEX) и шаблон хвоста пакета (добавляемый в конец символ или шаблон контрольной суммы) при отправке файла по команде значения не имеет. В редакторах макросов добавлена соответствующая кнопка для выбора отправляемого файла. Таким образом можно организовать последовательную отправку файлов или файлов вперемешку с командами. В окне эмулятора ответов можно вместо эмулируемых ответов отправлять файлы и тем самым настроить сценарий работы с каким-либо устройством, в алгоритме работы с которым предполагается отправка файлов в это самое устройство, например, запись файла альманаха в GPS-модуль. При отправке файлов больших объёмов на низкой скорости может возникнуть впечатление, что терминал завис, но это следствие отправки файла сплошным потоком. Максимальный размер отправляемого по команде файла не должен превышать 16МБ.
Скачать программу TerminalTMB 3.112b.rar
Абдулхаев Иван, г. Тамбов.
COM port is not dead. It is virtual! What is it?Terminal is a simple serial port (COM) terminal Features
!!! If you have problems with new version you can still download older releases on the bottom of the page !!! MacrosIn macros you can use all characters from keyboard and any ASCII You can store macro in macro file. Active macro is some examples: X1##Y2##Z3##$0D$0A — this will send ‘X1#Y2#Z3#»CR»»LF»‘ ABC%DLY1000DEF — this will send ABC and after ~1000ms DEF %RUN»cmd.exe» — this will run command line prompt %URL»http://www.google.com» — guess what?! %URL»mailto:xyz@xymail.com?subject=terminal&body=test» — %M03 — this will send/run macro #3 (there are some limits when using this) %LOGS — start logging
%SCRS»script.tsc» — load and start script Scripting
Simple pascal syntax scripting is possible. You can write short scripts to do some simple tasks. More about supported command you can find if you click «Help» button. TCP/IP remote controlTerminal can also act like telnet server and listen on selected TCP port. You can connect to it with any telnet client program from another computer in network (or over internet from different location) and see what’s going on in terminal and send commands etc. Download & LinksDownload new version of the Terminal software — version 1.93b 20141030 Click to download Terminal
|