Com port toolkit инструкция на русском

Терминальные программы получили довольно широкое распространение в среде радиолюбителей и не только. Все потому, что с их помощью очень удобно выполнять отладку или что-то настраивать. Они существенно упрощают работу и экономят время. 

Помимо этого, они позволяют посмотреть, что шлет контроллер в процессе работы.

Некоторые мастера используют терминальные программы для управления. В общем, это действительно полезный инструмент, который должен быть как у профессионала, так и у новичка. 

ice_screenshot_20220202-215222

Содержание

  1. Какие терминальные программы выбрать
  2. Программа Terminal v1.9b by Bray
  3. Программа COM Port Toolkit 
  4. Терминал
  5. Прослушка
  6. Захват

Какие терминальные программы выбрать

В интернете очень много самых разных терминальных программ, потому что они очень востребованы. Но далеко не все удобны в работе. Но как минимум две программы однозначно достойны вашего внимания. 

Программа Terminal v1.9b by Bray

В первую очередь, рекомендуем обратить внимание на программу Terminal v1.9b by Bray. Она очень проста в освоении и интуитивно понятна. Интерфейс действительно очень удобный. Разберется даже новичок. 

В главном окне программы есть все инструменты, чтобы в один клик выполнить настройку скорости работы устройства, выбрать номер порта, отрегулировать доступные параметры передачи данных и запустить другие команды. 

Вам не надо будет переключаться между разными окнами, потому что все находится перед глазами.

term19

Кроме этого, всего одним щелчком мыши можно вывести информацию в разных системах счисления, что в определенных ситуациях очень упрощает работу. Кто долгое время работает в данной сфере, тот прекрасно понимает, о чем идет речь. 

Из преимуществ данной программы можно также выделить возможность пользоваться таблицей ASCII, а еще можно вывести поток данных в виде удобного для визуального восприятия графика со значениями от 0 до 255.

ice_screenshot_20220202-215412

Также при желании вы можете самостоятельно прописать все необходимые скрипты, если хорошо владеете языком Pascal. 

Конечно, любой программный продукт не застрахован от глюков в процессе работы. Но в случае с данной программой их практически нет. Если не считать только небольшие «тормоза» при выводе информации в hex-кодах. 

Еще одним недостатком можно считать то, что разработчик прекратил выпускать обновления для Terminal v1.9b by Bray. Но текущая версия работает исправно и ее возможностей достаточно для решения текущих задач. 

Скачать программу Bray Terminal v1.9.

Программа COM Port Toolkit 

Разработчиком данного программного продукта является Михаил Голиков. 

Если сравнивать ее с первой программой, то она немного ей уступает. Однако есть и полезные «фишки» — например, с помощью этой программы можно выполнить перехват данных между софтом и физическим COM-портом. 

comporttoolkit

Программа имеет интуитивно понятный интерфейс и поддерживает несколько основных режимов работы. 

Терминал

Отображает логи обмена данных и обрабатывает пересылку с помощью макросов. В остальном обычный терминал.

Прослушка

В данном режиме вы можете «внаглую» подключить ПК между двумя активными устройствами: условно — передающей и принимающей «стороной». Программа дополнительно отображает логи, где прописаны по умолчанию время передачи и отправки.

Захват

Это, пожалуй, самый интересный режим работы, потому что вы можете перехватить и проанализировать трафик (обмен данными) между софтом и портом. 

Подобная функция встречается и в других программах (например, в Advanced Serial Port Monitor), однако услуга платная. В COM Port Toolkit режим «Захват» можно бесплатно попробовать даже в демонстрационной версии. 

Недостатки программы:

  • в режиме «Захват» нельзя отсортировать входящие и исходящие данные, чтобы они отображались в разных окнах;
  • отсутствует туториал по написанию скриптов;
  • после окончания 30-дневной демо-версии, чтобы пользоваться программой, нужно будет купить лицензию. 

Впрочем, последний пункт вряд ли можно считать большим недостатком, потому что стоимость лицензии составляет всего 30 долларов. Это не такая уж баснословная сумма за тот функционал, который вы в итоге получите. 

Скачать последнюю версию COM Port Toolkit.

Помогла ли вам статья?

Разработка программного и аппаратного обеспечения, использующего последовательный интерфейс требует усилий для создания надежно работающего механизма передачи данных.

COM Port Toolkit – программа для работы с последовательным портом компьютера, сочетающая в себе возможности терминала, просмотра, журналирования и экспорта данных. Во многих случаях COM Port Toolkit оказывается удобнее и функциональнее стандартного Гипертерминала.

Вы можете использовать эту программу для создания, отладки или реверс-инженеринга последовательных протоколов обмена. Программа может отправлять и получать данные как в ASCII, так и в шестнадцатиричном виде. Вы можете легко изменять настройки порта, включая установку нестандартных скоростей обмена.

Главным отличием программы от аналогов является наличие встроенного интерпретатора подмножества языка C для создания скриптов, призванных автоматизировать рутинные операции над отправляемыми и принимаемыми данными. Например, вычисление CRC, управление настройками порта и т.п. Язык позволяет использовать конструкции if, else, for, do и while, поддерживает пользовательские функции.

Программа может производить захват данных последовательного порта во время передачи между программой пользователя и устройством. Для этого используется специальный драйвер, устанавливаемый вместе с программой. Этот режим доступен и работает как в Windows 7,Vista, XP, 2000, NT (32 бит), так и в Windows 9x, Me.

COM Port Toolkit работает под управлением ОС Windows 95, Windows 98, Windows Me, Windows NT 4.0, Windows 2000/XP, Windows Vista/7.

Для Win2000 – Windows 10 (2019) (Server, x86, x64). Последняя версия: 4.4.17 build 424. 24 апреля 2019.

Краткое описание:

Программа, которая, пригодится Вам как для наблюдения за передачей данных другими приложениями, так и непосредственно, для отправки и приема данных через последовательный порт (RS232) Вашего компьютера. Программа позволяет различными способами сохранять данные в файл и визуализировать данные на экране монитора. Она может пригодиться как начинающим, так и профессионалам.

Какие проблемы может решить Advanced Serial Port Monitor?

Вы можете с легкостью работать с любыми устройствами, работающими как по RS232 интерфейсу, так и по RS485 и RS422 при наличии соответствующего преобразователя. Вы можете наблюдать за обменом данными между любым Windows приложением и внешним устройством, подсоединенным к последовательному порту. Это может быть измерительное устройство, промышленный контроллер или домашняя радиостанция, или же другой компьютер, соединенный через z-модемный или нуль-модемный кабель. В любом случае Вы будете работать с удобным, приятным и дружественным интерфейсом с максимальным комфортом.

Дополнение! Вам не нужен будет дополнительный кабель или другое «железо» для того, чтобы мониторить и анализировать данные. Все что нужно – Advanced Serial Port Monitor, установленный на Вашем компьютере!

Начните пользоваться Advanced Serial Port Monitor прямо сейчас!

После инсталляции запустите Advanced Serial Port Monitor. Подсоедините устройство к свободному последовательному порту. Выберите номер порта из выпадающего списка и нажмите кнопку «Открыть». Теперь Вы можете отсылать и принимать данные. Вы можете менять режим работы (ручной, наблюдатель) в пункте меняю «Режим». (Пошаговое обучение здесь)

Вид программы:

Ключевые особенности:

Дуплексный режим работы. Вы можете наблюдать за обменом в обе стороны, не используя другие программы и не прерывая работу других приложений! Вся проходящая через последовательный порт информация отображается на экране в специальном окне и может быть записана в файл!

Гибкая настройка параметров. Наш монитор последовательного порта поддерживает различные скорости передачи данных (до 921600), количество бит данных, количество стоповых битов, различные типы четности, типы контроля передачи данных и другое. Вы можете менять все параметры во время работы;

Автоматический и ручной режим работы. С помощью Advanced Serial Port Monitor Вы можете отсылать данные вручную (по нажатию кнопки «Отправить») или автоматически через определенный интервал (от 10 до 10000 мс);

Произвольный источник данных. В нашем мониторе последовательного порта может быть произвольный источник данных (файл или строка ввода). Вы можете подготовить информацию перед отправкой или ввести ее непосредственно. Вы можете передавать произвольные байты с кодом от 0 до 255 (0 – FF Hex);

Запись данных в файл. Вы можете сохранять данные в файл (для примера, если поток данных очень быстр) и анализировать его позднее;

Дополнительные модули. С помощью наших модулей Вы можете: передавать файлы, эмулировать работу устройств и многое другое;

Режим наблюдателя (сниффера, sniffer, перехватчик). В этом режиме Вы можете наблюдать обмен данными между внешним устройством, подсоединенным к последовательному порту, и приложением Windows;

Встроенный скриптовый язык. С помощью этой возможности Вы можете запускать Advanced Serial Port Monitor с предустановленными опциями и действиями, а также выполнять команды из модулей.

Serial Port Monitor – это мощная профессиональная системная утилита для мониторинга RS232/422/485 COM портов. Программа отслеживает, отображает, ведет журнал (log) и анализирует активность всех последовательных портов в системе. Это лучший способ обнаружить проблемы, которые могут возникнуть при разработке приложения или драйвера, тестировании и оптимизации последовательных устройств и т.п.

Serial Port Monitor также предлагает расширенные возможности фильтрации и поиска, профессиональный встроенный терминал, различные способы экспорта данных, и, среди прочих ключевых преимуществ, гибкий и легкий в использовании интерфейс. Это полностью готовое к использованию программное решение, без необходимости устанавливать какое-либо дополнительное оборудование.

Приобрести Serial Port Monitor можно в трех версиях: Standard, Professional или Company.

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

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

Если вы зашли на эту страницу, вы скорее всего искали рабочий ключ COM Port Toolkit. Сам ключ будет уникальным, и послужит только для активации программы.

Описание программы:
COM Port Toolkit — это утилита для системных программистов занимающихся разработкой и отладкой драйверов для устройств работающих через последовательные COM-порты, а также анализом их работы и реверс-инжинирингом.

Платформа:
Windows
Количество скачиваний:
8560
Версия программы:
COM Port Toolkit 4.0 и другие версии.

Три бесплатных ключа:

DVEHT-9YX40-YTFXN-8HUPJ
5SQT6-NXZUD-X9L74-H7LD5
96U78-1QJL6-NI5AY-QXP5Z

COM Port Toolkit Crack — Таблетка — Кряк — Ключ — Серийный Номер

Инструкция:

1. Скачайте кейген.

2. Установите и запустите его.

3. Нажмите Patch (Патч).

4. Нажмите «Сгенерировать ключ (Generate)».

5. Наслаждайтесь программой!

Время на прочтение
6 мин

Количество просмотров 55K


Возможно Вы уже не первый раз садитесь за программирование Вашего MSP430. Если это не так, то рекомендую ознакомиться с предыдущими статьями по данной тематике: часть 1, часть 2.
В этой статье мы рассмотрим инструмент для графической настройки периферии нашего микроконтроллера — Grace, познакомимся с принципом работы watchdog и поработаем с виртуальным COM-портом (через программатор). Уже традиционно будет рассмотрен небольшой пример кода, и предоставлены все необходимые для понимания ссылки.

Введение

В первой статье я упоминал Code Composer Studio, от рассмотрения которого отказался, но недавно моё внимание, благодаря Соколову А.В., привлёк один плагин для неё — Graphical Peripheral Configuration Tool (Grace).

Каждый раз, когда приходится настраивать очередной периферийный модуль MSP430, мы сталкиваемся с рядом сложностей. К таким сложностям можно отнести незнание списка регистров конкретного модуля, отличительные особенности конкретного микроконтроллера или плохое понимание англоязычных документаций. В любом из перечисленных случаев Grace может стать полезным.

Grace

Скачать и установить этот инструмент можно вместе с Code Composer Studio v5 по следующей ссылке. Для этого потребуется зарегистрироваться на сайте Texas Instruments.

После установки CCS выбираем Project→New CCS Project, в облати Project templates and examples выбираем Empty Project→Empty Grace (MSP430) Project, в области Device не забудьте указать микроконтроллер из списка.

Как только появится экран «Grace — Welcome», нажимаем клавишу Device Overview. Перед Вами появится следующая картинка.

Кликнув по конкретному устройству на ней, Вы перейдёте к его настройке, которую можно производить в нескольких режимах. Режимы могут отличаться для разных устройств, но обычно это Basic User, Power User и Registers. Basic User и Power User предназначены для быстрой настройки периферийного устройства интуитивно. Registers отображает список всех регистров устройства и позволяет менять их значения.

Совет: в datasheet к микроконтроллеру не всегда содержится полная информация об интересующем устройстве, про все регистры и параметры обычно можно прочитать в файле MSP430xxxx Family User’s Guide, который можно скачать на сайте Texas Instruments.

Поскольку для работы я уже привык использовать Workbench, после завершения настройки, все конфигурационные данные требуется перенести туда. Для этого нажимаем Project→Build All, находим в папке проекта директорию /src/csl/, в ней и находятся все *.c файлы с конфигурацией каждого устройства.

Пример кода

Следующий код работает с USB-UART мостом встроенным в программатор, так же в код включено использование watchdog, но обо всём по порядку.

  1.  
  2. #include «msp430f2274.h»
  3. #include <string>
  4.  
  5. void UARTWriteString(string str);
  6.  
  7. bool watchdogReset = true;
  8.  
  9. void main(void)
  10. {
  11.   WDTCTL = WDT_MRST_32; // Watchdog автоматически
  12.                         // перезапустит систему через 32ms.
  13.  
  14.   BCSCTL1 = CALBC1_1MHZ; // Устанавливаем тактовую частоту Basic Clock System.
  15.   DCOCTL = CALDCO_1MHZ; // Устанавливаем тактовую
  16.                         // частоту Digital Controlled Oscillator.
  17.  
  18.   P3SEL = BIT4 + BIT5; // Выбираем функцию P1.4/P1.5 как TXD/RXD для UART.
  19.  
  20.   UCA0CTL1 |= UCSWRST; // Этот бит блокирует работу прерываний от UART и работу 
  21.                        // сдвигового регистра чтобы не мешать
  22.                        // настройке (грубо говоря отключает UART).
  23.   UCA0CTL1 |= UCSSEL_2; // Наш UART будет работать от 
  24.                         // SMCLK (Sub-main clock), тоесть от 1MHZ.
  25.   UCA0BR0 = 0x68; // Делитель частоты для SMCLK (1000000 / 9600).
  26.   UCA0BR1 = 0x00;
  27.   UCA0MCTL = 0x04; // Определяет маску модуляции.
  28.                   // Это помогает минимизировать ошибки.
  29.   UCA0CTL1 &= ~UCSWRST; // Включаем UART обратно.
  30.  
  31.   P1DIR |= BIT0; // Настройка светодиодов.
  32.   P1DIR |= BIT1;
  33.   P1OUT &= ~BIT0;
  34.   P1OUT &= ~BIT1;
  35.  
  36.   UARTWriteString(«—Привет, Хабр!—«);
  37.  
  38.   unsigned char data;
  39.   while(true)
  40.   {
  41.     while (!(IFG2&UCA0RXIFG)) // Проверка готовности буфера приёма.
  42.       if(watchdogReset)
  43.         WDTCTL = WDTPW + WDTCNTCL; // Сброс таймера watchdog в ноль.
  44.     data = UCA0RXBUF;
  45.     if(data == 0x01)
  46.     {
  47.       UARTWriteString(«—Погасить зеленый светодиод.—«);
  48.       P1OUT &= ~BIT1;
  49.     }
  50.     else if(data == 0x02)
  51.     {
  52.       UARTWriteString(«—Зажечь зеленый светодиод.—«);
  53.       P1OUT |= BIT1;
  54.     }
  55.     else if(data == 0x03)
  56.     {
  57.       UARTWriteString(«—Переключить состояние красного светодиода.—«);
  58.       P1OUT ^= BIT0;
  59.     }
  60.     else
  61.     {
  62.       UARTWriteString(«—Принятые данные не соответствуют.—«);
  63.       watchdogReset = false;
  64.     }
  65.   }
  66. }
  67.  
  68. void UARTWriteString(string str)
  69. {
  70.   int strSize = str.length();
  71.   for(int i = 0; i < strSize; i++)
  72.   {
  73.     WDTCTL = WDTPW + WDTCNTCL; // Сброс таймера watchdog в ноль.
  74.     while (!(IFG2&UCA0TXIFG)); // Проверка готовности буфера отправки.
  75.     UCA0TXBUF = str[i];
  76.   }
  77. }
  78.  

Для работы с COM-портом со стороны компьютера нам потребуется программное обеспечение, мой выбор пал на COM Port Toolkit. Что именно выберите Вы — не имеет значения.

Небольшое видео, которое позволит понять что именно делает пример.

В отличии от предыдущих статей, я постарался дать внятные комментарии прямо в коде программы. Не вижу смысла в этот раз пояснять каждый использованный в коде регистр. Хочу лишь обратить внимание на некоторые аспекты.

  1. Для расчёта значений UCA0BR0, UCA0BR1 и UCA0MCTL существует неплохой онлайн калькулятор.
  2. SMCLK — сигнал, который поступает из внешнего резонатора (если установлен) или из DCO с применением делителей 1, 2, 4 или 8. Используется как тактовый сигнал для периферии.
  3. В примере, watchdog используется не совсем по назначению, данный код лишь объясняет принцип его работы. Смысл заключается в том, что если Ваша программа в течении 32ms (WDT_MRST_32) не установит бит WDTCNTCL в регистре WDTCTL в единицу, то система будет перезагружена. Watchdog требуется для предотвращения зависания Вашего программного обеспечения.
  4. Регистр WDTCTL имеет 16 бит, первые 8 необходимо устанавливать в WDTPW каждый раз когда производится запись в него. Это механизм защиты регистра от случайной записи в случае программных сбоев.
  5. Описание и настройка Basic Clock System это повод для целой статьи, пока следует понять, что MSP430 имеет очень гибкую систему тактовых генераторов, которую, в упрощенном виде, можно настроить с помощью Grace.
  6. Использование такого метода отладки сильно замедляет работу программы в целом, однако это позволяет достоверно определить порядок выполнения кода, в том числе в обработчиках прерываний.

Заключение

Чем дольше я пишу, тем сложнее и больше становится материал. Эта статья станет предпоследней в серии для новичков.
В следующий раз я затрону все вопросы, на которые не успел ответить ранее.

Я надеюсь, что эта статья оказалась полезна тебе, читатель.

Терминальные программы получили довольно широкое распространение в среде радиолюбителей и не только. Все потому, что с их помощью очень удобно выполнять отладку или что-то настраивать. Они существенно упрощают работу и экономят время. 

Помимо этого, они позволяют посмотреть, что шлет контроллер в процессе работы.

Некоторые мастера используют терминальные программы для управления. В общем, это действительно полезный инструмент, который должен быть как у профессионала, так и у новичка. 

ice_screenshot_20220202-215222

Содержание

  1. Какие терминальные программы выбрать
  2. Программа Terminal v1.9b by Bray
  3. Программа COM Port Toolkit 
  4. Терминал
  5. Прослушка
  6. Захват

Какие терминальные программы выбрать

В интернете очень много самых разных терминальных программ, потому что они очень востребованы. Но далеко не все удобны в работе. Но как минимум две программы однозначно достойны вашего внимания. 

Программа Terminal v1.9b by Bray

В первую очередь, рекомендуем обратить внимание на программу Terminal v1.9b by Bray. Она очень проста в освоении и интуитивно понятна. Интерфейс действительно очень удобный. Разберется даже новичок. 

В главном окне программы есть все инструменты, чтобы в один клик выполнить настройку скорости работы устройства, выбрать номер порта, отрегулировать доступные параметры передачи данных и запустить другие команды. 

Вам не надо будет переключаться между разными окнами, потому что все находится перед глазами.

term19

Кроме этого, всего одним щелчком мыши можно вывести информацию в разных системах счисления, что в определенных ситуациях очень упрощает работу. Кто долгое время работает в данной сфере, тот прекрасно понимает, о чем идет речь. 

Из преимуществ данной программы можно также выделить возможность пользоваться таблицей ASCII, а еще можно вывести поток данных в виде удобного для визуального восприятия графика со значениями от 0 до 255.

ice_screenshot_20220202-215412

Также при желании вы можете самостоятельно прописать все необходимые скрипты, если хорошо владеете языком Pascal. 

Конечно, любой программный продукт не застрахован от глюков в процессе работы. Но в случае с данной программой их практически нет. Если не считать только небольшие «тормоза» при выводе информации в hex-кодах. 

Еще одним недостатком можно считать то, что разработчик прекратил выпускать обновления для Terminal v1.9b by Bray. Но текущая версия работает исправно и ее возможностей достаточно для решения текущих задач. 

Скачать программу Bray Terminal v1.9.

Программа COM Port Toolkit 

Разработчиком данного программного продукта является Михаил Голиков. 

Если сравнивать ее с первой программой, то она немного ей уступает. Однако есть и полезные «фишки» — например, с помощью этой программы можно выполнить перехват данных между софтом и физическим COM-портом. 

comporttoolkit

Программа имеет интуитивно понятный интерфейс и поддерживает несколько основных режимов работы. 

Терминал

Отображает логи обмена данных и обрабатывает пересылку с помощью макросов. В остальном обычный терминал.

Прослушка

В данном режиме вы можете «внаглую» подключить ПК между двумя активными устройствами: условно — передающей и принимающей «стороной». Программа дополнительно отображает логи, где прописаны по умолчанию время передачи и отправки.

Захват

Это, пожалуй, самый интересный режим работы, потому что вы можете перехватить и проанализировать трафик (обмен данными) между софтом и портом. 

Подобная функция встречается и в других программах (например, в Advanced Serial Port Monitor), однако услуга платная. В COM Port Toolkit режим «Захват» можно бесплатно попробовать даже в демонстрационной версии. 

Недостатки программы:

  • в режиме «Захват» нельзя отсортировать входящие и исходящие данные, чтобы они отображались в разных окнах;
  • отсутствует туториал по написанию скриптов;
  • после окончания 30-дневной демо-версии, чтобы пользоваться программой, нужно будет купить лицензию. 

Впрочем, последний пункт вряд ли можно считать большим недостатком, потому что стоимость лицензии составляет всего 30 долларов. Это не такая уж баснословная сумма за тот функционал, который вы в итоге получите. 

Скачать последнюю версию COM Port Toolkit.

Помогла ли вам статья?

В этой статье мы рассмотрим пример асинхронного приема данных из СОМ порта средствами Delphi. То-есть опрос порта будет производиться непрерывно, до тех пор пока мы его не остановим, а прочитанную информацию она будет записывать в Memo. Чтобы процедура опроса не «подвешивала» наше приложение, мы организуем прослушивание порта в отдельном потоке. Поэтому прежде чем Вам начать практиковаться по настоящей статье, автор предполагает что читатель уже знаком с темой потоков в Delphi. Пример конечно примитивен, поскольку демонстрирует лишь минимум функций, которые можно реализовать для связи по трем проводкам (GND, RX и TX), но эта простота вовсе не снижает интереса к нашей с Вами теме. По скольку дает «живое» представление о принципе асинхронного чтения, да еще и на «сквозном» примере.

Исходник: скачать

Приступим:

1)  Поместим на форму следующие компоненты; Listbox — 1шт, Button — 4шт и компонент Memo — 1шт. Расставим их примерно как на рисунке ниже:

1_123123423423iudwhrijwef COM порт (RS-232) Асинхронный обмен данными.

Для чего? Мы с Вами напишем программу с помощью которой  нажав кнопку — «Сканировать», сможем увидеть доступные COM порты в нашем ListBoxе.  Кликнув по выделенному порту двойным щелчком мыши, мы к нему подключимся. После подключения нам станет доступна опция чтения, которая после того как мы нажмем на кнопку — «Начать чтение», запустится и будет крутиться в отдельном потоке цикл прослушивания порта, и по мере обнаружения информации в буфере, будет помещать ее в компонент Memo. Ну и собственно на любом этапе работы программы, мы сможем очистить содержимое приема или вовсе разорвать связь с текущим портом, чтобы переключиться на любой другой свободный COM порт, ну или вовсе завершить работу нашего приложения. И так поехали дальше…

2) Объявим глобально следующие переменные:

var

Form1:TForm1;

Adr:PWideChar; //Переменная номера COM порта;

W:WideString; //Промежуточная переменная;

ComFile:THandle; //Хендл ком порта;

Dcb:TDCB; //Структура настроек порта;

ComStat:TComStat; //Переменная состояния порта;

Timeouts:TCommTimeouts; //Переменная таймаутов;

OverRead:TOverlapped;

Buffer:array [0..255] of AnsiChar; //Массив данных AnsiChar;

Btr, Temp, Mask, Signal:DWORD;

Свойство Enabled у Button2 и Button3 установим в false, свойство ReadOnly компонента Memo установим в true;

В событии OnClick Button1 пропишем код для пересчета существующих портов и помещения их в наш ListBox:

procedure TForm1.Button1Click(Sender: TObject);{Сканируем порты, найденные помещаем в listBox;}

Var i:Integer;

begin

for i:=0 to 10 do

begin

ComFile:=CreateFile(Pchar(‘COM’+intToStr(i+1)), Generic_Read or Generic_Write, 0, nil, open_existing, file_flag_overlapped,0);

if ComFile<>invalid_handle_value then

begin

Listbox1.Items.Add(‘COM’+ IntToStr(i+1));

CloseHandle(ComFile);

end;

Button1.Enabled:=False;//Деактивируем клавишу сканирования;

end;

end;

3) B событии OnDblClick нашего ListBoxа запускаем и настраиваем выбранный порт

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

procedure TForm1.ListBox1DblClick(Sender: TObject);

begin

W:=Form1.ListBox1.Items.Strings[form1.ListBox1.ItemIndex]; {Загружаем выбранную

запись в переменную}

Adr:=PWideChar(W); {Преобразуем ее в тип годный для использования в функции открытия порта (WideChar);}

ComFile:=CreateFile(Adr, Generic_Read+Generic_Write, 0, nil,

Open_Existing, File_Flag_Overlapped, 0); {Открываем порт для асинхронной работы;}

if ComFile=Invalid_Handle_Value  then

begin

ShowMessage(‘Не удалось открыть порт’); {Если не удается, выводим сообщение об ошибке;}

exit;

end;

PurgeComm(ComFile, Purge_TXabort or Purge_RXabort or Purge_TXclear or Purge_RXclear); //Очищаем буферы приема и передачи и очередей чтения/записи;

GetCommState(ComFile, DCB); //Настраиваем DCB настройки порта;

with DCB do

begin

BaudRate:=9600;

ByteSize:=8;

Parity:=NoParity;

StopBits:=OneStopBit;

end;

if not SetCommState(ComFile, DCB) then

begin

ShowMessage(‘Порт не настроен’); //Если не удается выводим сообщение об ошибке;

CloseHandle(ComFile);

exit;

end;

if ComFile <> INVALID_HANDLE_VALUE then

begin

GetCommTimeouts(ComFile, Timeouts); { Чтение текущих таймаутов и настройка параметров структуры CommTimeouts }

Timeouts.ReadIntervalTimeout:=MAXDWORD; //Таймаут между двумя символами;

Timeouts.ReadTotalTimeoutMultiplier:=0; //Общий таймаут операции чтения;

Timeouts.ReadTotalTimeoutConstant:=0; //Константа для общего таймаута операции чтения;

Timeouts.WriteTotalTimeoutMultiplier:=0; //Общий таймаут операции записи;

Timeouts.WriteTotalTimeoutConstant:=0; //Константа для общего таймаута операции записи;

SetCommTimeouts(ComFile, Timeouts); //Установка таймаутов;

end;

SetupComm(ComFile, 4096, 4096); //Настройка буферов;

if not SetupComm(ComFile, 4096, 4096) then //Ошибка настройки буферов;

begin

ShowMessage(‘Ошибка настройки буферов’);

CloseHandle(ComFile);

exit;

end;

SetCommMask(ComFile, EV_RXchar); {Устанавливаем маску для срабатывания по событию «Прием байта в порт»}

ListBox1.Enabled:=False; //Деактивируем listbox;

Button2.Enabled:=True; //Активируем кнопку «Разъединить»;

Button3.Enabled:=True; //Деактивируем кнопку «Начать чтение»;

end;

Что мы тут сделали?

Во-первых открыли порт для асинхронной работы: — File_Flag_Overlapped. Во-вторых настроили скорость обмена (9600 бод), количество бит в посылке (8), контроль четности (NoParity), указали количество стоповых бит (OneStopBit). Также мы настроили таймауты и размеры буферов порта, но по большому счету, для нашего примера можно обойтись и без них (если их не указывать и не настраивать, система все настроит автоматически), но раз уже мы их настроили, то пусть будут. В-третьих, мы установили маску — EV_RXchar — ожидание прихода байта. Это необходимо для нашего потока чтения. Смысл какой? В отдельном потоке, который мы сейчас создадим будет крутиться цикл, для которого приход байта в порт (Mask and EV_RXchar) <>0 — будет сигналом для чтения состояния порта, получения количества этих байт и если это количество не равно 0, (If Btr.Size<>0) то запуску чтения содержимого в

переменную буфера ReadFile(ComFile, Buffer, SizeOf(Buffer), Temp, @OverRead); и дальнейшую обработку этой переменной:

Form1.Memo1.Lines.Text:=Form1.Memo1.Lines.Text+(String(buffer)); {Загружаем в Memo содержимое буфера;}
Buffer:=»; //Очищаем переменную буфера; 

В общем как то так… Ну что создаем поток?

4) Создавать поток будем без помощи мастера, для этого прямо в нашем листинге после раздела:

public

{ Public declarations }

end;

Объявим наш поток:

MyThread=class(Tthread)

private{ private declarations }

protected

procedure execute; override; // Главная процедура потока;

procedure OutToMemo; //Процедура вывода в Мемо содержимого переменной буфера;

end;

В раздел глобальных переменных добавим переменную для нашего потока

MyThr:MyThread; //Переменная потока чтения;

Выделяем  procedure execute; override; жмем Ctrl+Shift+C и в теле появившейся главной процедуры запишем:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

procedure MyThread.execute;

begin

OverRead.Hevent:=CreateEvent(Nil, True, True, Nil); //Сигнальный объект событие для ассинхронных операций;

While not MyThr.Terminated do //Пока поток не остановлен;

begin

WaitCommEvent(ComFile, Mask, @OverRead); //Ожидаем события (поступление байта);

Signal:=WaitForSingleObject(OverRead.hEvent, Infinite); {Приостанавливаем поток до тех пор пока байт не поступит;}

if (Signal=Wait_Object_0) then //Если байт поступил;

begin

if GetOverlappedResult(ComFile, OverRead, Temp, true) then {Проверяем успешность завершения операции;}

begin

if ((Mask and EV_RXchar)<>0) then //Если маска соответствует,

begin

ClearCommError(ComFile, Temp, @ComStat); //Заполняем структуру ComStat;

Btr:=ComStat.CbInQue; //Получаем из структуры количество байт;

If Btr.Size<>0 then //Если байты присутствуют,

begin

ReadFile(ComFile, Buffer, SizeOf(Buffer), Temp, @OverRead); //Читаем порт;

Synchronize(OutToMemo); {Делаем синхронный вызов процедуры загрузки буфера в     

Memo;}

end;

end;

end

end;

end;

CloseHandle(OverRead.Hevent);

end;

Для реализации процедуры чтения, выделяем procedure OutToMemo; в разделе объявления нашего потока, жмем Ctrl+Shift+C и в теле появившейся процедуры запишем:

procedure MyThread.OutToMemo; //Процедура вывода в Memo;

begin

Form1.Memo1.Lines.Text:=Form1.Memo1.Lines.Text+(String(buffer)); {Загружаем в Memo содержимое буфера;}

Buffer:=»; //Очищаем переменную буфера;

end;

5) Теперь задействуем запуск только что нами созданной процедуры чтения, для этого дважды

кликаем на Button3 и в появившейся процедуре записываем:

procedure TForm1.Button3Click(Sender: TObject); //Запуск потока чтения;

begin

MyThr:=MyThread.Create(false); //Создаем поток чтения;

MyThr.FreeOnTerminate:=true; //Запускаем поток чтения;

MyThr.Priority:=tpNormal; //Устанавливаем приоритет;

Button3.Enabled:=False; //Делаем клавишу чтения неактивной;

end;

для возможности разорвать соединение  дважды

кликаем на Button2 и в появившейся процедуре запишем:

procedure TForm1.Button2Click(Sender: TObject); {Очищаем listBox, Прерываем поток, Закрываем соединение;}

begin

if  MyThr <> nil then //Если поток чтения запущен,

MyThr.Terminate; //Тогда уничтожаем его;

ListBox1.Clear; //Очищаем содержимое ListBox1;

CloseHandle(ComFile); //Закрываем порт;

Button1.Enabled:=True; //Делаем активной кнопку «Сканировать»;

Button2.Enabled:=False; //Деактивируем кнопку «Разъединить»;

Button3.Enabled:=False; //Деактивируем кнопку «Начать чтение»;

ListBox1.Enabled:=True; //ListBox1 делаем активным;

end;

для очистки содержимого Memo  дважды кликаем на Button4 и в появившейся процедуре запишем:

procedure TForm1.Button4Click(Sender: TObject); {Очистка Memo, буферов приема, передачи и очередей.}

begin

PurgeComm(ComFile, Purge_TXabort or Purge_RXabort or Purge_TXclear or Purge_RXclear);

Buffer:=»;

Memo1.Lines.Clear;

end;

теперь в процедуре FormClose закрытия приложения запишем:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); //Закрытие програмы;

begin

if  MyThr <> nil then //Если поток запущен;

MyThr.Terminate; //Останавливаем его;

CloseHandle(ComFile); //Закрываем Порт;

end;

Ну вот как бы и все, теперь наш проект готов к запуску, но прежде настроим аппаратную часть.
Для этого нам потребуется любая программка — терминал для отправки данных, 2 COM порта на материнке, если таковые отсутствуют, тогда 2 конвертера USB>COM. Я например использую 2 вот таких переходничка и соединяю их тремя проводками по следующей схеме:

2_srdtc65xf7xs65dad5rf6x5s COM порт (RS-232) Асинхронный обмен данными.

RXD одного конвертера соединяем с TXD другого и наоборот, плюс массу одного конвертера соединяем с массой другого. Если Вы будете использовать штатные COM порты на матплате то нужно будет соединить их нульмодемным кабелем.

Один переходничок у меня в системе определился как COM3, второй как COM4. Запускаем наше приложение, подключаемся к порту COM3 и нажимаем нашу кнопку начала чтения, на этом «прослушивание» порта началось. Теперь запускаем программку терминал, для примера я использую  COM Port Toolkit 4.0 После запуска терминал нужно настроить — выбрать порт для подключения (в моем случае это COM4) и установить настройки DСB (скорость, количество бит информации, контроль четности, количество стоповых бит) такие же как у нашей программки:

3_123123423423iudwhrijwef COM порт (RS-232) Асинхронный обмен данными.

Далее заходим в пункт меню «Сообщение» — «Отправить» и через его интерфейс пробуем отправлять различный текст, можно из файла, можно просто какие нибудь одиночные слова
или символы,

4_123123423423iudwhrijwef COM порт (RS-232) Асинхронный обмен данными.

в общем если Вы все выполняли последовательно и внимательно, то в Mемо нашей программы будет отображаться все, что Вы будете отправлять из терминала.

Представляю очередную версию программы для работы с 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, затем предлагается выбрать нужный порт для подключения. Первым в списке предлагаемых портов будет последний использованный, если такой был.

TerminalTMB v3

В открывшемся окне будет предложено выбрать порт и задать его настройки. Если скорость порта нестандартная, то в соответствующем окне можно вручную ввести необходимое значение. В настройках порта имеются две опции для настройки автоматического соединения. Первая нужна для случая, когда порт временно пропадает из системы и заново появляется в ней, например, при перезапуске микроконтроллера устройства или при переподключении кабеля USB. Вторая опция настройка автоматического соединения отвечает за автоматическое нажатие кнопки Connect после запуска терминала. В этой ситуации вероятна ситуация, когда терминал намертво зависнет (порт прописан в файле конфигурации, но из системы удалён вместе с переходником usb-com) и потребуется нажать три кнопки, но после данного способа выхода при повторном запуске эта опция будет отключена.

Если настроить автоматическое соединение при каждом появлении порта в системе и включить опцию отправки команды при соединении, то можно заметно уменьшить количество лишних движений, когда в каждый из десятков приборов нужно отправить одну и ту же команду или последовательность команд из файла. Все действия сведутся только к поочерёдному подключению кабеля к каждому прибору.

TerminalTMB v3

Работа с логом

TerminalTMB v3

На данной панели имеется команда очистки окна лога, окно ввода строки фильтра и настройки реакции программы при получении пакета, содержащего в себе заданную последовательность.
Miss – не выводить сообщения, содержащих подстроку из окна фильтра;
Out – в окно лога выводятся только те пакеты, которые содержат указанную подстроку;
Capt – при появлении пакета с заданной подстрокой окно лога останавливается;
No – никакое действие не выполняется (на случай, если нужно временно отключить фильтр);
Auto scroll – автоматическая прокрутка окна лога вниз при получении очередной порции байтов.
В окне статистики работы терминала отображается значение счётчика полученных подстрок, заданных в фильтре:

TerminalTMB v3

Для отображения данной статистики нужно нажать кнопку «Show stat»

TerminalTMB v3

Всё это даёт большие удобства, когда нет возможности постоянно следить за логом работы какого-либо прибора, отлавливая глазами нужное сообщение или выполняя его поиск в ранее записанном файле лога, когда уже всё прапало и прибор испустил дух.

«||» — кнопка остановки лога с последующим просмотром в отдельном окне, при этом в главном окне запись лога будет продолжаться. Для возврата в главное окно лога нужно нажать данную кнопку ещё раз (в это время на ней будет символ «>»).

Настройки программы

TerminalTMB v3

Start log – кнопка запуска записи лога. После её нажатия будет предложено ввести префикс названия файла, выбрать тип записываемого файла и записываемые данные: отправляемые и/или принимаемые данные для каждого записываемого файла.

TerminalTMB v3

Текстовый файл сохраняется в том виде, как его видно в окне лога без учёта фильтра. В бинарный файл сохраняются только те данные, которые были отправлены или получены из порта. Если задать расширение .exe, то можно таким образом принимать исполняемые файлы, которые можно затем запускать.

После завершения записи лога будет предложено открыть записанные файлы для просмотра в блокноте.

TerminalTMB v3

Файлы логов также можно просмотреть до остановки записи, нажав одну из соответствующих кнопок:

TerminalTMB v3

При нажатии данных кнопок откроется проводник для выбора файла, при этом в качестве пердвыбранного будет задано имя текущего файла.

Second Window – включение второго окна вывода лога, в котором можно указать режим вывода (ASCII или/и HEX) и направление выводимых сообщений (TX и/или RX). На скрине показан пример использования дополнительного окна, когда в левом окне отфильтрованный лог, а в правом полностью весь лог отображается. В левом окне запрещено выводить сообщения, содержащие подстроку “AT+”, в правом окне настроен вывод только прочитанных сообщений и только в формате ASCII. Включена опция игнорирования фильтра, чтобы выводить полный лог. Окно настроек дополнительного окна открывается при открытии этого окна или по двойному клику в его области.

Окно программы

Add Menu – отображение дополнительных пунктов меню настройки программы и включения дополнительных режимов программы.

TerminalTMB v3

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.

Отображение лога

Окно программы

Имеется возможность выводить лог в текстовом и бинарном режиме, а при необходимости в обоих режимах. Режим вывода можно менять для главного и для дополнительного окна, в дополнительном окне можно одновременно выводить данные в двух режимах и задать опцию для отображения режима вывода каждого пакета наряду с отображением временного штампа и счётчика числа байтов. К каждому пакету можно прикреплять временной штамп со значком направления передачи и значение счётчика числа принятых или отправленных байт. Аналогичные дополнительные данные прикрепляются к пакетам в дополнительном окне, что упрощает поиск нужного сообщения, если их нужно посмотреть одновременно в двух режимах.

TerminalTMB v3

В текстовый лог всё пишется вместе с дополнительной информацией, а в бинарный записываются только отправляемые и принимаемые данные.

Режим отправки пакетов

TerminalTMB v3

Имеется возможность задать один из нескольких режимов отправки содержимого консольной строки в порт:

Manual – только ручная отправка по нажатию Enter (с очисткой строки), Ctrl+Enter(без очистки строки) или соответствующей кнопки отправки команды справа от окна ввода хвоста команды. Содержимое консольной строки меняется вручную или при нажатии соответствующей кнопки с макросом.

When choosing – отправка команды сразу после нажатия кнопки с соответствующим макросом, при этом содержимое консольной строки не изменяется, что позволяет без лишних движений повторно отправлять вручную содержимое консольной строки.

After answering – отправка содержимого консольной строки сразу после получения ответа на предыдущую команду или после прихода любых данных в общем случае. Содержимое консольной строки можно менять вручную или нажатием соответствующей кнопки с макросом. На частоту отправки команд влияет время, указанное в качестве разделителя строк, указываемое в дополнительном меню (Line separator).

Periodic – периодическая отправка содержимого консольной строки в порт с заданной периодичностью. Точность выдержки периодичности в пределах 10-30 мс, поэтому относительно точно период отправки будет выдерживаться при его значении больше 1000 мс. Содержимое консольной строки в данном режиме можно менять вручную или с помощью кнопок макросов.

Данные режимы отправки актуальны и при отправке команд из файла, в котором каждая команда записывается в текстовом виде с новой строки.

TerminalTMB v3

После выбора файла с командами можно организовать их отправку разными способами в зависимости от выбранного режима На скрине ниже показана кнопка, которая в режиме отправки команд из файла при каждом нажатии отправляет следующую команду.

TerminalTMB v3

В ручном режиме содержимое консольной строки меняется при клике мышкой по соответствующей строке с командой, далее отправка выполняется любым способом вручную, но для минимизации движений при последовательной отправке команд имеется отдельная кнопка, которая при каждом нажатии отправляет в порт следующую команду из файла.

В режиме отправки при выборе в консоль отправляется сразу же та команда из файла, по которой кликнули мышкой.

В режиме отправки “после ответа” в консоль отправляется следующая команда из файла после получения ответа на предыдущую, что удобно, например, когда нужно отправить сразу несколько команд, на каждую из которых обязательно нужно получить ответ. Начинать процесс отправки нужно ручной отправкой первой командой. В данном режиме можно задать циклическую отправку команд, когда все команды из файла будут отправляться по кругу бесконечно.

В режиме периодической отправки все команды из файла отправляются по очереди с заданным интервалом вне зависимости от получаемого ответа на предыдущую команду. Аналогично можно задать циклическую отправку в данном режиме.

Файл команд нужно обязательно завершать переходом на новую строку в конце файла.

Если задана опция “Send on connect”, то содержимое консольной строки отправляется в порт сразу после установки соединения, а дальше алгоритм отправки задаётся настройками режима отправки. Данная опция позволяет отправлять в порт при соединении не только содержимое консольной строки, но и файл команд, если он выбран и настроен нужный режим отправки. Вместе с опцией первого вида автоконнекта в настройках порта можно настроить такой алгоритм отправки, когда консольная строка или файл команд будет отправляться в прибор автоматически при подключении USB-кабеля.

Консольная строка

TerminalTMB v3

Пакет для отправки данных формируется из содержимого консольной строки и “хвоста сообщений”, которые склеиваются вместе перед отправкой. Для отправки консольной строки нужно нажать Enter, если нужно отправить строку с очисткой содержимого или Ctrl+Enter, если очищать не нужно. Нажатие стрелки вверх при нахождении фокуса ввода в консольной строке будет выполнена очистка окна лога. Нажатие стрелки вниз развернёт окно с историей ранее отправленных команд, начало которых совпадает с частично введённой командой. Если консольная строка пуста, то нажатие стрелки вниз отобразит все ранее отправленные из консольной строки команды (всего запоминается не более 500, повторно отправляемые команды в данный список не добавляются, а ранжируются в списке так, что в верхней строке списка будет последняя отправленная строка). Длина строки консоли не должна превышать 65000 символов для текстового режима и 205000 символов для бинарного.

«Хвост сообщений» – это та сущность, которая всегда добавляется к содержимому консольной строки. Если нужно добавить одно или несколько шестнадцатеричных чисел, то они записываются в виде $XX$YY$ZZ. Если нужно добавлять смешанные данные, то пример хвоста будет такой «text cmd$0D», также имеется возможность вставки в хвост сообщений шаблона контрольной суммы, рассчитываемого по одному из алгоритмов, например для NMEA-сообщений шаблон будет следующий: «*[XOR_8 (1..n)]$0D$0A»

TerminalTMB v3

Данные в консольной строке отправляются в том виде, который задан для отображения лога: 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 «, в аналогичном виде формируются строки файла команд, содержимое макросов и содержимое хвоста команд. Единственная необычность в том, что в конце консольной строки или команд в файле нужно ставить пробел, если предполагается добавление хвоста сообщений.

TerminalTMB v3

В хвост сообщений тоже можно добавлять один или несколько шаблонов контрольных сумм (для извращений) через пробел, например:

TerminalTMB v3

В логе выделена та часть отправленного сообщения, которая сформировалась из шаблона контрольной суммы и одного байта в хвосте сообщения, полученный ответ видно в режиме ASCII, как указано в настройке отображения прочитанных данных.

Макросы

В программе имеется возможность сохранения макросов, организованных в виде списков, число которых может быть не больше 100. Всего в сумме можно хранить до 4800 макросов с их описанием.

TerminalTMB v3

Макросы могут отображаться в виде списков команд или списков названий макросов (жирный шрифт), соответствующий режим выбирается радиокнопками справа от названия списка. При наведении указателя мышки на активный макрос в подсказке отображается содержимое команды или имя макроса в зависимости от выбранного режима отображения. В прямоугольном поле справа может выводиться справочная информация по каждому макросу. Для удобства пользователя макросы можно редактировать. Редактирование может быть простым, когда можно поменять название и содержимое и расширенным, когда дополнительно можно редактировать справочную информацию.

Для переключения в режим простого редактирования нужно выбрать вкладку «Editor».

TerminalTMB v3

В данном режиме можно менять название списка макросов их имена и содержимое, доступно перелистывание списков и переключение между режимами отображения команды и имени. Для каждого списка макросов сохраняется свой хвост сообщений и свой режим работы (ASCII или HEX). Для режима HEX команды записываются в том же виде, как в консоли для данного режима, например: «11 22 33 44 55 0F AB CD » с обязательным добавлением пробела в конце, если предполагается прикрепление хвоста сообщений.

Для переключения в режим расширенного редактирования макроса нужно на соответствующем макросе дважды кликнуть мышкой, после чего откроется нужное окно редактора:

TerminalTMB v3

На главном окне в правом нижнем углу будет отображаться результат редактирования в том виде, в котором он будет виден при наведении указателя мыши на редактируемый макрос.

Отправка файлов

Имеется возможность отправки файлов в порт. Размер файла при этом не должен превышать 16 МБ. При отправке файла можно видеть лог отправки всегда в HEX-виде и статистику процесса в правом нижнем углу, которая отображается по нажатию кнопки «Show stat»

TerminalTMB v3

После выбора файла его содержимое копируется в буфер оперативной памяти и на это время возможно временное зависание программы, после чего начнётся процесс отправки, который можно прервать или приостановить в любой момент закрытием порта или нажатием соответствующей кнопки.

Теперь вернёмся к описанию дополнительных режимов работы и настройкам терминала, доступных по нажатию кнопки «Add menu».

Режим эмулятора ответов

TerminalTMB v3

В данном режиме можно настраивать списки ответов, возвращаемых в порт после получения целого запроса или его части, начало которого совпадает с одним из заданных в списке входящих пакетов. Для активации данного режима нужно нажать нижнюю правую кнопку со значком «>». В процессе работы можно на ходу делать активными шаблоны входящих запросов и варианты ответов на них установкой галочки в соответствующем чекбоксе. На скрине показан пример настройки режима автоматической отправки ответов на запросы с использованием только текущего списка запросов. В автоматическом режиме в ответ на запросы будут автоматически отправляться в случайном порядке один из активных ответов именно для конкретного запроса. Для каждого запроса можно задать до 16 возможных ответов. Если число возможных запросов не помещаются в списке, то можно задействовать все списки, установив соответствующий режим. Ответы могут отправляться в текстовом или в бинарном виде, что выбирается соотвествующими радиокнопками слева от каждого возможного ответа. Правило записи бинарных последовательностей такое же, как и для консольной строки, т.е. в виде «XX YY ZZ » с обязательным наличием пробела в конце строки, если предполагается использование хвоста сообщений. Хвост сообщений для данного режима задаётся в соответствующих окнах отдельно для каждого возможного ответа. По нажатию стрелки вниз в окне редактирования хвоста сообщений открывается список шаблонов контрольных сумм, а далее алгоритм формирования такой же, как и при работе с консольной строкой. Внизу окна находятся кнопки редактирования списков и изменения пропорции ширины окон редактирования запросов и ответов. Данный режим можно применять для эмулирования ответов датчиков, возвращающих данные по запросу. Не составит большого труда составить нужный алгоритм работы с GSM-модулем, если задать ответы-команды на каждое синхронное или асинхронное сообщение данного модуля. Ещё одно применение данного режима можно найти при тестировании софта, который должен работать с каким-либо устройством по последовательному порту. В данном случае следует применить пару виртуальных портов com0com, к одному из которых следует подключить тестируемую программу верхнего уровня, а ко второму данный терминал и задействовать этот режим. Ничто не мешает отвечать программе верхнего уровня вручную или с помощью макросов, но в реальном времени это часто бывает сложно делать из-за необходимости быстро отвечать на запросы и вот тут будет очень удобно применять этот режим. Для каждого устройства или программы можно сохранять и загружать свою конфигурацию запросов и ответов.

Режим списка команд

Иногда требуется отправлять последовательно несколько команд с разными интервалами времени. Данный режим доступен в терминале по нажатию соответствующей кнопки в дополнительном меню.

TerminalTMB v3

В данном режиме можно формировать список отправляемых команд, после отправки каждой из которых нужно выдержать заданную паузу. Последняя отправленная команда подсвечивается зелёным цветом. Отправка может выполняться вручную или автоматически. В обоих режимах доступными для отправки будут только активные команды. Команды можно редактировать непосредственно в строке или в отдельном окне по двойному клику мыши. Пока ещё несохранённая команда выделяется жирным шрифтом. В отдельном окне редактирования можно также написать краткую справку к каждой команде. Список команд можно отправлять однократно или циклически. Также можно задать диапазон страниц с командами для автоматической отправки, если команд больше 32. Режим отправки данных (HEX или ASCII) зааётся отдельно для каждого списка команд. Правила формирования сообщений и хвостов такие же, как и для консольной строки. Данный режим можно применять для отправки асинхронных сообщений в порт совместно с другими режимами работы терминала.

Режим быстрой отправки команд

TerminalTMB v3

Данный режим позволяет отправлять печатаемые символы в порт сразу после нажатия.

Все режимы отправки команд можно использовать одновременно.

Окно просмотра ранее отправленных команд

TerminalTMB v3

В данном окне отображаются все ранее отправленные команды и опционально их режим отправки ([H] – HEX, [A] — ASCII). Данное окно очищается автоматически и/или вручную при нажатии соответствующей кнопки.

Бывают ситуации, когда главное окно терминала закрывает окно дополнительного режима или окно дополнительного режима не разворачивается. В этом случае в дополнительном меню главного окна нужно повторно нажать на соответствующую кнопку.

Настройки директорий

TerminalTMB v3

Для устранения неудобств при поиске нужных файлов имеется возможность настроить нужные пути к файлам разных типов, но будет удобнее хранить их все в одной директории.

Если пути к файлам не заданы, то они будут храниться в директории с программой.

Следующие настройки не открываются в отдельных окнах:

TerminalTMB v3

По нажатию каждой из кнопок открывается соответствующая панель с настройками. Для простоты и удобства повествования все эти панели покажу на одном скрине.

TerminalTMB v3

Здесь имеются следующие возможности:

  • настроить условия разделения пакетов для вывода следующего в новой строке лога;
  • настроить условие автоочистки окна лога;
  • сбросить входной буфер, если нет желания томительно ожидать, пока он весь выгрузится в окно лога;
  • настроить условия регистрации определённых событий и задать возможность автоматического разворачивания окна терминала при наступлении заданного события, что удобно, когда нужно посидеть за чаем в интернетах, но ещё нужнее в это время отслеживать появление нужного сообщения или ситуации в логе;
  • включить/выключить опцию записи лога событий и просмотреть этот самый журнал с помощью блокнота.

При нажатии на кнопку ASCII table открывается окно с соответствующей таблицей:

TerminalTMB v3

Таблица формируется программным способом, поэтому для каждой версии Windows может отличаться от представленной на рисунке.

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

Плагиат статьи приветствуется при указании ссылки на первоисточник. Даже если ссылка не будет указана в скопированном тексте, то она имеется в информации для обратной связи в самой программе по нажатию кнопки «Info».

Скачать программу TetminalTMB v3.98b

Изменения в версии 3.104b от 2021.06.22:

  • добавлена возможность выбора контрольной суммы LLS;
  • добавлена возможность привязки всех настроек отправки, приёма, отображения и т.д. к каждому списку макросов;
  • добавлены кнопки копирования и вставки списка максросов;
  • добавлена функция сравнения бинарных файлов;
  • небольшие визуальные улучшения.

Скачать программу TetminalTMB v3.104b

Изменения в версии 3.107b от 2021.11.20:

  • Добавлен режим перебора комбинаций пакетов (Brute force)

TerminalTMB v3

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

Скачать программу TetminalTMB v3.107b

Изменения в версии версии 3.112b от 2022.01.29:

  • алгоритм побайтного чтения файлов с диска заменён на алгоритм поблочного чтения, что увеличило скорость считывания файлов в ОЗУ перед отправкой в порт;
  • максимальный размер сравниваемых файлов увеличен до 8МБ;
  • добавлена возможность формирования команд для отправки файлов с сохранением данных команд в конфигурации макросов, в конфигурациях сценариев эмулятора ответов и в конфигурации списков отправляемых команд;
  • небольшие улучшения интерфейса.

Формат команды для отправки файла: [sendfile:]NameFile (без пробелов), пример:
[sendfile:]E:\Файлы TerminalTMB\DSCN5252.JPG
Длина всей команды должна быть не больше 250 байт, если команду предполагается сохранить в конфигурации. Режим отправки (ASCII или HEX) и шаблон хвоста пакета (добавляемый в конец символ или шаблон контрольной суммы) при отправке файла по команде значения не имеет. В редакторах макросов добавлена соответствующая кнопка для выбора отправляемого файла. Таким образом можно организовать последовательную отправку файлов или файлов вперемешку с командами. В окне эмулятора ответов можно вместо эмулируемых ответов отправлять файлы и тем самым настроить сценарий работы с каким-либо устройством, в алгоритме работы с которым предполагается отправка файлов в это самое устройство, например, запись файла альманаха в GPS-модуль. При отправке файлов больших объёмов на низкой скорости может возникнуть впечатление, что терминал завис, но это следствие отправки файла сплошным потоком. Максимальный размер отправляемого по команде файла не должен превышать 16МБ.

TerminalTMB v3.112b

TerminalTMB v3.112b

Скачать программу TerminalTMB 3.112b.rar

Абдулхаев Иван, г. Тамбов.

COM Port Toolkit is a utility for system programmers engaged in development and debugging of drivers for devices working through serial COM-ports, as well as analysis of their work and reverse engineering. The program installs its own driver for COM-ports and fixes the data transmitted through it. In addition, the program allows you to transfer byte sequences via supported protocols to the active port and monitor the responses of the connected device, as well as record the results in the logs.

COM Port Toolkit can work both in the automatic mode, passing the specified sequences at specified intervals, and in the manual mode. In the latter case, it is possible to use scripts to automate various tasks (e.g. CRC checksum calculation, use of special transfer rules, outgoing data modification, etc.). To work with scripts, a C-like interpreter is used that supports the main constructs If, Else, For, Do and While and others like them, as well as the ability to create custom functions. Several examples of ready-made scenarios come with the program.

COM Port Toolkit streamlines the debugging and development process of device drivers by allowing detailed analysis and manipulation of COM-port data.

The utility can receive and send data in hexadecimal (HEX) and symbolic (ASCII) format. It is also possible to change communication channels and baud rates. The following protocols are supported: RS-232, RS-422 and RS-485.

— Monitoring of serial port activity;

— Data transfer in two formats and journaling;

— real time work;

— the possibility of using temporary stamps;

— built-in scripting language;

— Ability to work simultaneously with several devices:

— ability to export data to a file or clipboard.


Supports monitoring, logging, and testing of various communication ports.


User-friendly interface allows for easy navigation and usage.


Highly customizable settings to suit individual needs.


Limited functionality for advanced serial port operations.


Relatively outdated user interface design.


Lack of regular updates or improvements.

USER REVIEWS AND COMMENTS

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Arran


The program seems very beneficial to those who need it. The fact it can work on automatic mode will subsequently save a lot of time and money for the company that uses it. The fact that it has the capabilities to create functions is amazing. This is the type of program I am interested in using.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Theo


Kinda on the fence about softradar.com Com Port Toolkit for windows. The program has a lot of features with it but doesnt work for network monitoring or sniffing. The program is a port listener as well as a few other tools that all use a USB port we encourage people to try to program for themselves and let us know.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Ollie


Automatic mode is an amazing feature to help debug code. It helps find one stupid bracket that you left open. 10/10 recommend for any programmer who is dealing with COM ports.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Caleb


COM Port Toolkit for Windows is a downloadable resource for the communication testing kit. This resource allows different computer systems to communicate with other computers and devices. You will be able to test those equipment logs of communications. You will be able to program tasks and use other people’s programs and tasks. This resource also allows the monitor of the connected devices and computer. COM Port Toolkit for Windows is a great source for the IT community and especially for networking monitoring.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Aiden T.


The COM Port Toolkit is a software tool designed to provide users with an easy way to manage their serial port connections. It allows users to quickly configure serial ports, view and edit their serial port settings, and troubleshoot serial port related issues. It also includes a terminal window for sending and receiving data from serial ports, as well as a log window for recording serial port activity. The COM Port Toolkit is ideal for anyone who needs to manage and troubleshoot serial port connections.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Rory T********n


COM Port Toolkit is a great software for serial port communication. It’s user friendly and easy to use. It supports a wide range of connections, including RS232, USB, Ethernet and Bluetooth. The software has many useful features like serial port monitoring, data transfer, data logging, and port settings management. It’s also very reliable and the connection is stable. The software is regularly updated with new features and bug fixes. The technical support is also very responsive and helpful. In conclusion, COM Port Toolkit is a great software that makes serial port communication a breeze.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Callum W.


I found COM Port Toolkit software to be very usful and easy to use, however I did encounted a few issues with some of the more advance setings.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Freddie U.


This software provides a set of tools for serial communication between a computer and other devices via COM port. It allows users to monitor, analyze, and control the data flow through the COM port. The software features include real-time data logging, terminal emulation, baud rate and data format configuration, and error detection and correction. It also supports multiple COM ports and can work with different operating systems.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Riley H******r


COM Port Toolkit software is a comprehensive tool for testing, monitoring, and analyzing serial communication ports.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Ruaridh


COM Port Toolkit is a software tool that specializes in analysing data flows in your system’s serial ports. Its main feature includes the capacity to log and monitor the data, allowing users to track, troubleshoot, and subsequently enhance communication processes. With a user-friendly interface, it provides deep insight into the functioning of serial ports.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Ruaridh


A reliable tool for monitoring and diagnosing communication ports in real-time.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Adam


Reliable for monitoring serial ports, slightly complicated interface.

image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner


Ben


Intuitive, efficient, reliable serial communication.

Handy tool for debugging COM ports.

Понравилась статья? Поделить с друзьями:
  • Таблетки турбослим альфа инструкция по применению
  • Росимущество по свердловской области официальный сайт руководство
  • Руководство местной работой
  • Как установить вайбер на компьютер без телефона пошаговая инструкция
  • Скуд болид инструкция по заведению карточки доступа