Терминал (для работы с 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
[+] Добавлена передача в порт кодов нажатых клавиш в окне приема и передачи.