Терминал (для работы с 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. Циклически передавать в порт строку(текст или HEX - в 16-ричном формате для отладки
бинарных протоколов) с заданным интервалом времени.
6. Передавать в порт файл.
7. Проиграть сценарий из файла (передача данных + задержка между данными).
8. Показывать состояние линий: CTS, DSR, RI, CD.
9. Изменять состояние линий: DTR, RST.
10. Добавлена кнопка Пауза (в окне приема) для приостановки вывода в консоль, при этом продолжается прием данных во внутренний буфер.
11. Добавлена кнопка Очистка RX буфера (в окне приема) служит для очистки промежуточного приемного буфера.
12. Добавлена кнопка Сохранить RX буфер на диск.
Программа пока не может:
1. Разбирать ESC последовательности.
2. Вести историю передаваемых строк.
3. Передавать в порт кода нажатых клавиш в окне приема и передачи.
4. Показывать ответы (RX от устройства) при проигрывании сценария из файла.
5. Вести в логах длинную историю (автоматическое укорачивание при достижении заданной длинны).
На текущий момент планов по развитию и доработки программы много.
Обычно в процесс работы с программой, во время отладки очередного устройства,
появляется необходимость в новом функционале.
Так в программу попадает новый функционал, продиктованный практикой.
При добавления нового функционала в программу, иногда добавляются и проявляются
глюки (по недосмотру), прошу отнестись с понимание :)
Глюки исправляются, и новая версия выкладывается в репозитарий.
Исходники на GiHub.
Текущая версия: Скачать (exe) в Zip архиве.
На основе данной программы была создана еще одна утилита для работы по протоколу PELCO-D,
для тестирования и управления камерами и поворотными платформами.
01-04-2025
Текущая версия: v1.7.0.
[+] Добавлена периодическая передача HEX строки.
В предыдущих версиях можно было включать периодическую передачу только для текстовых строк, теперь можно и для HEX строк.
13-03-2025
Текущая версия: v1.6.2.
[+] Добавлена кнопка Пауза (в окне приема) для приостановки вывода в консоль, при этом продолжается прием данных во внутренний(Qbuf - в строке статуса) буфер.
Для чего это нужно: Принимается большой поток с постоянным скролингом и на этом фоне не видно что принимается.
Если нажать кнопку Пауза то вывод в терминал прекращается и появляется возможность просмотреть лог.
[+] Добавлена кнопка Очистка RX буфера (в окне приема) служит для очистки промежуточного приемного буфера.
Для чего это нужно: Перед этим была нажата кнопка Пауза (в окне приема) и прошло много времени, в результате в промежуточном буфере накопились данные (много данных...) и если теперь нажать кнопку Продолжить то вывод из промежуточного буфера займет много времени.
Это может быть неудобно, или данные утратили свою актуальность(просмотрел лог и стало понятно что дальше тоже самое....). Нажали кнопку Очистка RX буфера и содержимое буфера стерто.
[+] Добавлена кнопка Сохранить RX буфер на диск.
Для чего это нужно: Включена запись принимаемых данных в файл. Затем нажата кнопка Пауза, если нажать Сохранить RX буфер на диск то содержимое буфера запишется в лог файл и затем буфер будет очищен. Т.е. бывает необходимо все же сохранить в файл для последующего анализа принятые данные и нет смысла выводит в терминал для просмотра.
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
[+] Добавлена передача в порт кодов нажатых клавиш в окне приема и передачи.