Утилита работы с com портом. Как и чем вводить ат команды в модем

Хоть COM порт уже и отжил время всеобщей распространённости в компьютерной области, но в радиолюбительской практике и промышленной технике он до сих пор остаётся очень актуальным.

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

На данный момент программа поддерживает почти все стандартные функции работы с COM портом.

Терминалка поддерживает как обычные режимы представления данных: в бинарном виде, шестнадцатеричном, всем привычном текстовом, так и расширенный режим текстовый с элементами шестнадцатеричного режима. В этом режиме обычные текстовые данные отображаются как текст, а данные, которые не имеют представления в текстовом виде, например специальные символы (первые 31 символ таблицы ASCII) в HEX виде. Шестнадцатеричные данные можно отображать как в своём представлении, так и в привычным десятичным числом. Также в этом меню можно включить возможность отправки HEX данных напрямую с поля ввода данных, при помощи символа $. Например $048 = 0. Сам же доллар будет отправляться при двойном наборе его символа ($$) или HEX кодом.

Можно также включить вывод таблицы ASCII кодов, для самостоятельного выбора символа из таблицы.

Таблицу АСКИ кодов можно отображать полностью (256 символов) или её первую половину, коды символов могу отображаться как в десятеричном, так и в шестнадцатеричном виде, настройка этих параметров производиться в правом нижнем углу. Таблица скрывается по нажатию отмены или ESC, ввести в ней код в ручную можно с клавиатуры и нажать Enter.

Интересной особенностью программы являются два поля для ввода готовых команд.

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

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

Посредством примитивного скриптоязыка можно задавать небольшие прописывать небольшие скрипты, которые программа будет исполнять. Команды представлены одним символом, после которого через пробел следует параметр команды. Так же доступны комментарии по средством двух косых линий // .
O — открыть порт
C — закрыть порт
G — перейти на указанную строку (G 0 — начать исполнения скрипта с начала)
D — задержка мс
M — выводимый в общем окне комментарий
W — ввод текста
E — ввод Enter ($10$13 )
R — ожидание текста
X — закрыть программу
S — выполнить команду в командной строке CMD

Скрипты можно запускать с запуском программы. Для этого скрипт должен быть заранее написан и добавлен в менеджер скриптов. Порт (номер и скорость) должен быть заранее настроен. Имя запускаемого скрипта указывается в параметрах запуска программы (из командной строки, в настройках ярлыка) с атрибутом script или s.

"C:\AL Terminal\ALTerminal.exe" "script 1.txt"
"ALTerminal.exe" "s test2.txt"

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

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

Обновление от 03.02.2019

  • Различные доработки и исправления ошибок. Подробнее в следующей версии.
  • Внимание! Это промежуточная версия! Версия до конца неотлажена и не отполированна, возможны мелкие ошибки и недоработки.
  • Внимание! Если будете использовать старый ini файл, то настройки цвета текста не перенесутся.
  • Добавленный алгоритм рассчёта контрольной суммы CRC16 для работы с протоколом Modbus RTU.

Обновление от 02.07.2017

  • Добавлена возможность использования нескольких полей команд.
  • Мелкие доработки.

Обновление от 05.02.2017

  • Добавлена возможность установки произвольной скорости порта (требуется тестирование).

Обновление от 05.02.2017

  • Добавлена обработка исключения отсутствия COM порта при закрытии программы и отключении от порта кнопкой Disconnect. Теперь программа один раз поругается и закроется, не нужно убивать процесс в случае потери COM порта.
  • Добавлены дополнительные варианты переноса при окончания строки, теперь доступны: CR, LF, CR+LF, LF+CR, вариант пользователя. (полностью не проверено)
  • Для полей ввода: «список команд» и «поле команд» — перенос берется из настроек завершения строки.
  • Добавлена скриптовая команда S — выполнить стороннею команду в командной строке (CMD) на компьютере (например запустить какой-нибудь файл).

Обновление от 24.06.2016

  • Добавлена скриптовая команда G — переход выполнения скрипта на указанную строку
  • Добавлена возможность запуска скрипта при старте программы. Имя скрипта указывается в параметрах запуска программы (командной строке)
  • Обновление иконок

Обновление от 10.11.2015

  • Исправлено окно много строчного ввода

Обновление от 23.07.2015

  • Решен вопрос с отправкой 0 символа (null, ASCI 0)
  • Исправлена ошибка ввода HEX нецелочисленных (буквенных) кодов
  • Добавлена автоочистка экрана, как построчная, так и постраничная
  • Добавлен графикопостроитель (сырой и без сохранения настроек)
  • Добавлена горячая клавиша очистки экрана F8
  • Мелкие доработки

Обновление от 25.09.2013

  • Добавлены скрипты, ещё не доделан менеджер скриптов
  • Добавлено окно построчного ввода
  • Очистка главного окна теперь доступна всегда
  • Мелкие доработки

Обновление от 16.06.2011

  • Добавлена возможность с помощью стрелок курсора в командной строке вернуть ране введённые команды.
  • + в версии – это возможность вводить произвольный COM порт, но не факт, что этот порт откроется, т.к. доступа или порта может не быть (тестируется).

65 комментариев на « AL Terminal»

    Добавьте возможность выбирать любой номер порта- бывает необходимо. когда-то давно подключал свой siemens cx65 через юсб к компьютеру, и с помощью хиасма слал ат команды. Хиасм удобен тем-что можно работать с любым портом, даже если его нет в системе.

    дополню: в системе при подключении телефона не устанавливались дрова и не появлялся виртуальный порт.

    Рад, что программа кому-то пригодилась.
    Обновил программу.
    В версии v1.001.0025+ добавил возможность задавать порт вручную.

    Есл не сложно, добавьте возможность выполнения команд по расписанию.

    Есть такое в планах, реализовать через скрипты, но этим смогу заняться только ближе к концу лета 🙁 .

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

    Точно сказать не могу, нужно знать, что конкретно выводит принтер: если просто текст — то можно, если со спец. символами и тем более если принтер устройству отвечает — то терминалка не подойдет, нужно будет писать специальную программу.

    Регулярно пользуюсь вашей программой.
    Ждать ли обновлений?

    Классная програмка! Но у меня все надписи (окромя тех, что латиницей) — знаки вопросика. Уважаемый автор, не планируете ли запилить исключительно английский интерфейс для своей программы? Или переключение рус-англ в опциях или.ini файле? А то тут у нас не только русскоязычные, было бы классно английскую версию. Спасибо!

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

    Немного обновил программу.

    Александр пишет 21.01.2014 в 02:34

    Как после команды AT+CMGS=»xxxxxxxxxxx» и ввода текста после > закинуть Ctrl+Z

    Через $, выпадет окно выбора/ввода символов. Ctrl+Z код 26 (int). Подробнее описано в статье.

    Александр пишет 31.01.2014 в 23:54

    Александр пишет 31.01.2014 в 23:58

    Разобрался. Работает только с корня диска. По крайней мере у меня. СПСБ

    Программа сохраняет настройки в своём каталоге, как вариант — удалить файл конфигурации и она создаст его по новой с начальными настройками или переустановить программу (повторно распаковать с заменой всех файлов).

    Здравствуйте, уважаемые разработчики.
    Недавно начал пользоваться Вашей программой ALTerminal, по возможностям она превзошла все идентичными с которыми я ранее работал. Было бы очень хорошо если бы Вы добавили некоторый функционал:
    — на окне вывода информации сделать возможность вызова всплывающего меню (ПКМ) аналогично как у других окон с меню «Очистить», функционал Файл->Очистить и/или привязать функц. клавишу;
    — Настройка->Настройки->Общая добавить возможность выбора цвета фона. В полутемной комнате яркий белый цвет режет глаза.
    От себя:
    Огромное спасибо за хорошую работу. Удачи. С уважением, Максим.

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

    Похожим функционалом обладает бесплатная программа с открытым кодом YAT Terminal (sourceforge хостит)
    Вообще странно, что мало программ с заготовками команд..
    Еще видел программу, где можно было настроить несколько шаблонов с командами, например, для работы с разным оборудованием…

    Спасибо за Вашу работу, Вы сделали мир лучше =)

    Хорошая программа! Особенно порадовало наличие внутреннего скриптового языка — это огромный плюс!!!

    Из минусов (для меня лично) отметил следующее:
    — нет хот-кея или кнопки для стирания выдачи с терминала. Утомляет клацать мышкой по меню и стирать поле вывода. Лучше стирание повесить именно на хот-кей.
    — В окне выдачи надписи типа «Начало скрипта» и «Конец скрипта» очень мешают!!! Выдачу этих сообщений надо повесить в опции. Это не очень информативные сообщения.

    А вообще идея терминального окна вместе со скриптовым языком — это очень правильное направление!!! Именно скриптов с задержками и минимальной обработкой очень не хватает!!! Был терминал в начале 90-х от старика Нортона. Он был волшебен и идеален!!! Не понимаю, почему его забыли….

    Задержки (delay) — это просто 5!!! Но еще в скриптах не хватает элементарных условий (IF, SWITCH) а можно и на циклы замахнуться (DO, WHILE, FOR)

    Может быть скооперироваться и сделать конечный продукт? Я не обещаю, что буду прилежным писателем, но… Буду благодарен за исходники программы. На досуге попробую поковырять и внести свои хотюнчики))))

    программа удобная но очень не стабильная. после 5 часов работы начинает съедать длинные строки (400 — 500 байт). для меня по прежнему авторитет Terminal v1.9b работает до двух месяцев и пишет все в лог. хотя и у него бывают неожиданные сбои.

    P.S.
    жду улучшения стабильности. планирую полностью перейти на Вашу программу.
    может стоит очищать переменную для буфера из UART-a в программе. в общем без кода сложно, что-то предполагать. удачи!

    О подобной проблеме в курсе. Дело в том, что главное поле в которое сваливается весь текст переполняется и программа при большом объёме принятых данных начинает подтормаживать.
    Самый простой вариант решения — ввести ограничение для главного поля на N строк или N байт.
    Ближайшее время не смогу вернуться к доработке по программе, но замечание услышал. Спасибо.

    Спасибо! очень понравилась программа!

    tema aktualnaia spasibo za vsio. no ia pervi raz delaiu proshivku i ne znaiu kakuiuta oshibku mne pishet no nikak ne mogu poniat v chom dela. u menia module sim900 i vot takuiu oshibku vidaiot 00′ 10*857
    error ram program ACK not Received! mojet znaet kto vchom dela pojalusta pomagite

    Программа была обновлена, теперь доступна v1.001.0037 версия.
    Изменения:
    . Решен вопрос с отправкой 0 символа (null, ASCI 0)
    . Исправлена ошибка ввода HEX нецелочисленных (буквенных) кодов
    . Добавлена автоочистка экрана, как построчная, так и постраничная
    . Добавлен графикопостроитель (сырой и без сохранения настроек)
    . Добавлена горячая клавиша очистки экрана F8
    . Мелкие доработки

    спасибо! ща протестируем

    Доброго времени суток!
    Давно пользуюсь вашим терминалом, все устраивает.
    Но! Сегодня стал подключать WiFi-модуль, а там нужна скорость 75000 бод, которой нет в списке AL-терминала.
    Если я что-то упустил, ткните носом. Если нет, не могли бы вы запилить еще одну версию? Очень уж удобна ваша прога (за что отдельное спасибо)

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

    Отличная прога! alex_EXE, спасибо огромное))

    Алекс, большое спасибо.
    Замечательная статья! И прога полезная.

    У меня вопрос: Если включаю модуль через напрямую к UART-COM с питанием 3,3В, модуль отвечает на АТ запросы но не видит сеть оператора. Если я переключаю питание на понижающий DC-DC и даю модулю 3,8В от перестает отвечать на запросы.

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

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

    Программа обновлена до версии v1.001.0040
    Изменения:
    . Добавлена скриптовая команда G - переход выполнения скрипта на указанную строку
    . Добавлена возможность запуска скрипта при старте программы. Имя скрипта указывается в параметрах запуска программы (командной строке)
    . Обновление иконок

    Рыл нормальную программу для AT-команд… остановился на AL Terminal, ибо лучше просто нет.
    Хвала что она есть!!!

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

    Расстрою: ближайшее время обновлений не ожидается, через некоторое время вернусь к ней.

    По графикам: данный функционал очень сырой, о чём предупреждал.
    Пара слов о том, как можно попробовать использовать графики:
    1. В меню график включаем отправку сообщений в окно графика — меню «Включить»
    2. Открываем окно графика
    С вкладками График и настройки — думаю всё понятно.
    Во вкладке преобразования можно настроить пока что только целочисленный множитель и задать целочисленное смещение, т.е. можно вводить только цифры и знак -.
    Самое главное — настроить парсер входных данных.
    3. данные должны приходить однородные и форматированные
    4. нужно настроить, что бы в нижнем поле ввода данных отображалось корректное цифровое значение (цифры, знак минуса в начале, если есть, допустимы пробелы в начале, остальные символы не допускаются).
    5. поставить галочку «Вкл» над нижними полями ввода.
    Пример настройки парсера (декодирования):
    получаем следующие данные
    -001745; 004824; 049410;
    хотим считать 1 значение:
    1 значение числовое 7 символов, идёт первым:
    . входящие данные — Число
    . Количество символов в 1 значении — 7
    . Порядок — по убыванию
    . Начальная фраза нам не нужна — выкл
    . Отрицательное — это для режима байта — выкл
    . Удалять символы с конца — 0 (ещё корректно не работает)
    . Отступ — 0 (для считывания второго значения будет 8, для 3 — 16)

    Всё очень замечательно. Отличный нужный софт.
    Но вот возник вопросик.
    А как заслать в порт команду а конце введённой строки

    Кажется разобрался!
    Спасибо!
    Отличный софт!

    эм… Рад, что программа Вам понравилась и, что сами разобрались со своим вопросом.

    Анатолий пишет 05.12.2016 в 16:23

    Спасибо,
    Отличный софт

    Alex, огроменное СПАСИБО за программу AL Terminal! Только с ней работает мой GSM модуль AI Thinker A6 в связке с USB-UART модулем от RobotDYN. 2 дня убил на то, чтобы получать ответы от этого модема, хотел уже диспут открывать на Ali за неисправный модем, а Вы тут вовремя со своей программой. Успеха Вам и дальнейших «выручалочек» для нас:))). С уважением, Борис из Санкт-Петербурга.

    Программа обновлена до версии v1.001.0044
    Изменения:
    Добавлена обработка исключения отсутствия COM порта при закрытии программы и отключении от порта кнопкой Disconnect. Теперь программа один раз поругается и закроется, не нужно убивать процесс в случае потери COM порта.
    Добавлены дополнительные варианты переноса при окончания строки, теперь доступны: CR, LF, CR+LF, LF+CR, вариант пользователя. (полностью не проверено)
    Для полей ввода: «список команд» и «поле команд» — перенос берется из настроек завершения строки.
    Добавлена скриптовая команда S - выполнить стороннею команду в командной строке (CMD) на компьютере (например запустить какой-нибудь файл).

    Termite is an easy to use and easy to configure RS232 terminal. It uses an interface similar to that of "messenger" or "chat" programs, with a large window that contains all received data and an edit line for typing in strings to transmit. Highlights of the utility are the ease of installation (possibly with pre-configured settings) using a heuristic search for the appropriate COM port and, as was mentioned, its user-friendliness.

    Other features are:

    Downloads & license

    Termite 3.4 is copyrighted software that is free for personal and commercial use. You may use it and distribute it without limitations. You may however not remove or conceal the copyright. There are no guarantees or warranties whatsoever; use it at your own risk.

    The example plug-in filters are distributed under the .

    Termite version 3.4 - complete setup (332 KiB) A self-extracting setup that contains Termite and all plug-ins and documentation (but excluding the source code for these plug-ins). This setup is provided to conveniently and quickly install Termite. (Note that Termite does not require installation, but it may just be convenient to do so.) Termite version 3.4 (program only) (76 KiB) Termite RS232 terminal in a ZIP archive. Just unzip and run; Termite writes nothing in the registry, no installation or uninstallation is required. GNU Unifont as a TrueType file (3.2 MiB) The GNU Unifont allows showing control characters as characters, rather than as . No installation of this font is needed; just unzip the font into the same directory as where Termite resides. (36 KiB) A filter that adds a time-stamp to received data. For those who want to write their custom plug-in filter(s), the commented source code that this ZIP file also contains may serve as a starting point. (32 KiB) A filter that shows the received data as a hex dump instead of as plain text, and that also allows you to send non-ASCII bytes by typing hexadecimal values on the transmit line. This ZIP file contains a compiled filter as well as commented source. (41 KiB) A filter that shows any received text that matches one of several patterns in a different (user-selectable) colour. The patterns are regular expressions. This ZIP file contains a compiled filter as well as commented source. It uses the SLRE librarySLRE library is not included in the above ZIP file, and must be downloaded separately. (27 KiB) This plug-in filter shows the status of the auxiliary modem and handshaking lines (CTS, DSR, RI and CD) and it allows you to toggle the RTS and DTR lines. The ZIP file contains a compiled filter as well as commented source code. (34 KiB) This plug-in filter writes all data that it receives to a log file (new data is appended to existing data). The ZIP file contains a compiled filter as well as commented source code and project files for Microsoft Visual Studio. (28 KiB) This plug-in filter transmits a user-defined string of text on the press of a function key (keys F1 to F12 are currently supported). The ZIP file contains a compiled filter as well as commented source code. (48 KiB) This plug-in filter checks the incoming text or data for keywords or patterns. When it detects such a pattern, it automatically transmits a user-defined reply. The "pattern" used for matching is regular expression. A series of such match/reply rows can be used to handle a simple handshake protocol. The ZIP file contains a compiled filter as well as commented source code. This filter uses the SLRE library for matching regular expressions. The source code for the SLRE library is not included in the above ZIP file, and must be downloaded separately. (124 KiB) Programmer"s documentation (Adobe Acrobat format). Translating Termite (92 KiB) A guide to add a translation of the user interface of Termite (Adobe Acrobat format).

    Recent changes (version 3.4)

    • Bug fix in handling the backspace character in received text.
    • Bug fixes in handling the display of forwarded data (received data that is re-transmitted on a second port).
    • The time-stamp filter now has a setting to time-stamp every new line (instead of only time-stamping after a minimum delay has been passed).
    • The documentation for writing plug-in filters has been updated.

    Usage

    Termite focuses on text data, and specifically text that is sent and received as strings terminated with "new-line" characters. It has no provisions for transferring files or binary data. (That said, with the "hexadecimal view" plug-in, you can send and receive bytes as hexadecimal values, and you may write a "plug-in" filter for file transfer as well).

    The interface of the Termite program has one large (initially empty) text area, which is called the "reception view". Above it is a set of buttons in a "button bar" and below it is a "transmit" line into which you can type a line of text. The utility automatically opens the RS232 port for which it was set up. It shows the current configuration at the left in the button bar. If these are not correct, you can use the button Settings to choose a different port or configuration. The Settings dialog also allows you to enable/disable "local echo" and/or to append a line termination to every string that you send.

    Received bytes with values below ASCII 32 (the space character) are displayed as either a control character like , or as two hex characters between square brackets. So stands for the "backspace" character and is the Escape key. There is an exception for the tab , carriage return and line feed characters (ASCII 9, 13 and 10 respectively); these cause spacing (tab ) or a line break.
    Whether you see the control character or for the backspace key, depends on whether the is present and configured in the settings.
    If you wish to send a non-ANSI/ASCII character, you need the "hexadecimal view" plug-in filter, see "Downloads" above.

    After connecting a serial cable between the PC and the remote device (or remote PC, in which case you must use a null-modem cable) and configuring the port, you can send data by typing text in the transmit line and pressing the "Enter" key. Any data that the remote device sends, will appear in the reception view. Optionally, the text that you transmit is copied to the reception view (the option is called "local echo", you will find in in the dialog under the Settings button). To distinguish the received data from the echoed data, the echoed text is coloured blue, whereas the received data is green.

    The remaining functionality is straightforward: the Clear button clears the reception view, the About button gives copyright information and the Close button terminates the utility.

    One "hidden" feature is the ability to disconnect the RS232 port, without terminating the utility. You can close an RS232 connection with a click in the status field in the upper left corner of the window (left of the button bar). Another click on that line re-opens the connection with the current settings. You can use this to "free" the port temporarily for another application.


    Click here to disconnect, or re-connect

    Edit history

    To speed up entering repetitive commands, Termite keeps a history of recently sent commands. This history is in a circular queue with the most recent command at the top.

    To browse through the history, use the "arrow up" and "arrow down" keys. If you type in a few characters in the "transmit" edit line, Termite will use the history to auto-complete the entry. Pressing the arrow up and arrow down keys then browse through the entries that match in the first letters. For example, if you have sent the words "test", "top", "view" and "set" previously, and you type the letter "t" on the edit line, Termite will first auto-complete this to either "test" or "top" (depending on which word you sent last) and the arrow keys will toggle between "test" and "top". If you clear the edit line and then use the arrow keys, Termite will loop through the entire history of "test", "top", "view" and "set".

    Auto-completion and history matching are case sensitive, by the way.

    Auto-completion is enabled by default, but can be disabled through the .

    Scrolling

    By default, Termite scrolls its reception window so that the most recently received text is displayed. In case you want to look back at text that has scrolled out of the reception view, just scroll the text back into view. Termite will stop to scroll to the end every time it receives new data.

    To make Termite restart with its automatic scrolling to newly received data, scroll the reception view manually to the end of the data.

    In other words, Termite only scrolls up text to show newly received data if it is already at the end of the current data.

    Printing, searching text, clipboard support

    Some additional functions are available from a pop-up menu that appears when you right-click in the reception view.

    The "Copy" command copies only the selected text to the clipboard if a selection exists, and copies all text in absense of a selection. Likewise, the "Save" command saves only the selected text to a file if a selection exists (and all text if no selection exists).

    Configuration

    Termite stores the configuration in an INI file (see the next section for the location of the INI file). This way, Termite remembers its settings between sessions.

    When distributing Termite, you may wish to include an INI file with pre-sets. You can run Termite directly off a CD-ROM, but the utility will not be able to store its configuration in the INI file if the INI file resides on a read-only medium. A typical INI file is below.

    Port=1 Baud=57600 DataBits=8 StopBits=1 Parity=0 Handshake=0 LocalEcho=1 AppendLine=2 Topmost=0 Monospaced=0

    Most of these settings can be chosen from the "Settings " dialog. This means that to get an appropriate INI file, you can launch Termite, adjust the settings (including activating any plug-in filters that you wish to use), and voilà: you have your pre-configured INI file.

    A few more configurations can be done by editing the INI file directly (using a text editor like Notepad). These are the keywords Caption , TxColour and RxColour in the topic. The Caption item allows you to change the title bar of the main Termite window. Add the item Caption (below topic ) and set it to the string that you wish to have displayed —for example, the model name of the product for which you are distributing a pre-configured Termite. The items TxColour and RxColour allow you to change the colours for transmitted and received text (from the default blue and green respectively). The syntax for the colours must be #rrggbb , where rr , gg and bb are two hexadecimal digits. So for example, #FF0000 is bright red and #808000 is dark yellow.

    INI file location

    Termite accesses the INI file from one of two directories, depending on the start-up situation.

    • Termite first tries to locate a file called "Termite.ini" in the application directory (i.e. the directory that the Termite ".EXE" file resides in). If it can open (or create) "Termite.ini" in the application directory for read/write access, it uses that file.
    • If either the application directory does not permit read/write access (e.g. Termite is launched directly from a read-only medium), or the Termite.ini file is marked "read-only", Termite creates a directory under the "Application Data" folder of the current user"s "Local Settings". This new directory is called "Termite", and the INI file is stored there.
      The first time Termite uses the sub-folder below the current user"s Local Settings, it also copies the "Termite.ini" file from Termite"s application directory (if it exists). This allows one to store pre-configured INI file on a CD-ROM disk and still allow the user to change the configuration.

    RS232 port scan

    Most RS232 settings for a device can be chosen by the developer (the Baud rate and the number of data and stop bits are usually determined by the other device). One setting that the developer cannot foresee, however, is what COM port the user will attach it to. For this reason, Termite contains a "port lookup" function plus a simple "port scanning" protocol.

    The "port lookup" function only works with virtual COM ports, such as USB-to-serial cables. Since Microsoft Windows has drivers pre-installed for USB devices simulating a serial port, it is a popular design. To use the port lookup function, put the complete device name of the virtual COM port at the " Port= " setting. You can find the device names in the registry below the path " HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM ". For example, for a common Prolific USB-to-serial cable, the setting in the INI file might read:

    Port=\Device\ProlificSerial2

    If using the device name of a serial port is not an option, for example, because your hardware has a real serial port instead of a virtual one, you can alternatively use the "port scanning" protocol. To activate this protocol, set " Port=0 " below the " " section. Port scanning chooses the first port for which the two following conditions hold:

    • the port is not already open (in use);
    • after setting the DTR line, the remote device pulls DSR up.

    Port scanning cannot be selected from the Settings dialog, you have to edit the INI file to activate it.

    The tests for port scanning are primitive. They do not check what device or program is hooked at the other end. The only thing that you know after a port scan is that something is connected to the port and that no other program is currently using that particular port.

    In the old days, it had become common practice to connect the DTR and DSR pins in the connectors of the cable (sometimes even at both ends ). This is bad practice, because with such cables you cannot even diagnose cable connection problems. Yet, such cables still exist, and the port scan may be fooled by it.

    The DRT/DSR handshake usually works with USB-to-RS232 converter cables too.

    Non-standard Baud rates

    The MIDI protocol is essentially the RS232 protocol over a current-loop physical layer and with a Baud rate of 31250 bps —for details, see the article "A MIDI to RS232 adapter ".

    Likewise, DMX512 is essentially the RS232 protocol over an RS485 physical layer and with a Baud rate of 250,000 bps.

    Termite presents you with a list of standard Baud rates, but it allows you to enter different values. The key issue is that the RS232 hardware must support the Baud rate that you select. All RS232 hardware and all USB-to-RS232 converter plugs support the standard Baud rates, but only few support non-standard Baud rates. We have tested non-standard Baud rates successfully with USB-to-RS232 converters based on the FT232R chips from FTDI .

    Forwarding data between two RS232 (virtual) ports

    You can use Termite to put a PC (or laptop) between two systems and monitor their RS232 communication. The PC or laptop that Termite runs on must have two RS232 ports. Instead of connecting both systems together, you connect both with the PC that runs Termite. Then, you have to choose one port as the primary port and the other as the "forward" port, see the dialog of Termite.

    With forwarding set up, all data received on the primary port is transmitted through the forward port. All data received on the forward port is transmitted through the primary port. The "sent/received colouring" of Termite is also still in effect: data received on the primary port is in green and data received on the secondary port is in blue.

    In this configuration, Termite would typically only be used to monitor the communication between two devices. If you type in text on the edit line and transmit it, this text is only sent through the primary port.

    In the above diagram, Termite runs on a computer that sits between two other systems/devices. If one of these systems is also a computer (running Microsoft Windows), the set-up may be simplified by running Termite on that system. The dual RS232 port needed for Termite may be replaced by a virtual COM port pair, such as the .

    A virtual null-modem creates two ports that exist only in software. Any data presented to one port of this pair is retransmitted at the other port —the same as how port forwarding works in Termite. If you connect an application to one port of the pair and Termite to the other port, the application now talks to Termite. When Termite is then configured to forward transmitted/received data to a physical port (to which the other system is connected), the two systems communicate as before and Termite intercepts all data.

    Filters (plug-ins)

    Plug-in filters allow you to extend Termite in several ways:

    • Append or insert text or data to what is received (for example, the "timestamp" sample filter inserts the relative time of reception to every packet of data that Termite receives).
    • Remove received data from Termite"s queue (before Termite processes it), for example to automatically dump it to a file or to process it separately.
    • Create windows with different views of the received data. In combination with the ability to remove data from Termite"s queue, this allows you to filter out different kinds of data from a complex stream, and display each kind in its own way.
    • Handle function keys (for short-cuts or user-defined macros).

    On start-up, Termite collects all plug-in filters that are in the same directory as the Termite application itself. You can enable and disable a filter in the Settings dialog of Termite (see above). Installing a filter is therefore a mere matter of copying the file to the correct location and enabling it.

    Optionally, filters may have their own configuration options. Termite launches the filter"s configuration dialog when the filter is enabled. To access the configuration dialog of a filter that is already enabled, double-click on the filter name (you must double-click on the name, not on the "check box"). Typically, a filter stores its configuration in the same INI file as the one Termite uses (Termite passes the path to this INI file to the filter when it loads the filter).

    Technically, a filter is a DLL with a few special functions (of which only one is mandatory). The filename extension must be ".flt" instead of ".dll" for a filter. In the Settings dialog, Termite uses the filename minus the ".flt" extension for the filter name. See the short document Writing plug-in filters for Termite for details on writing filters. To get you started, the sample filters "Timestamp", "Hexadecimal View" and "Status LEDs" come with full commented C source code.

    Translating Termite

    If you wish to translate Termite (or correct translations), first get the document "How to translate Termite ". The process is simple, and requires only a simple text editor.

    If you wish, you can send the translated files to us (we will gladly accept them). Note that by sending us your translations, you license us to include them in future versions of Termite.

    Rationale and alternatives

    I made Termite because I needed a utility for monitoring RS232 data coming from the hardware devices that we develop. We do that in-house, but devices regularly need to be monitored after installation... at a customers site... by our customers. Therefore, my design requirements were for the utility to be easy to set up, to run "out of the box" with preconfigured settings, and to run directly from a CD-ROM or USB stick without requiring installation.

    Over time, I added features that were needed for specific communication requirements that we stumbled upon, such as non-standard Baud rates, port forwarding, time-stamping received data and sending/receiving hexadecimal values. The last two items were later removed from the utility itself, for the sake of keeping the basic utility simple, and added back as

    • Анализировать активность последовательного порта

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

      Кроме того, вы можете перенаправить все данные мониторинга в заданный файл или скопировать все записанные данные в буфер обмена. Serial Port Monitor дает вам возможность перехватывать и записывать все управляющие коды ввода/вывода последовательных портов (IOCTLs), отслеживать все их данные и параметры. Вы можете сохранять любую сессию мониторинга и при необходимости загружать ее в следующий раз.

    • Мониторить несколько портов в пределах одной сессии

      У Serial Port Monitor есть уникальная функциональная возможность мониторинга нескольких COM-портов одновременно. Теперь вы можете собрать данные о том, как приложения взаимодействуют с двумя или более портами и параллельно с этим с несколькими устройствами в рамках одной сессии. Полученные и отправленные данные мониторинга будут представлены (записаны) в отдельном журнале в порядке поступления, что значительно упростит анализ.

    • Разные варианты просмотра полученных данных

      Вы можете просматривать данные мониторинга сразу в 4 режимах: таблица, строка, дамп или терминал, каждый из которых предлагает свой способ представления записанных последовательных данных. Serial Port Monitor дает возможность выбирать фильтры мониторинга, экономя таким образом ваше время и позволяя отслеживать только интересующие события. В настройках есть возможность выбора данных для показа: бинарные, ASCII, настроить порт. Любые настройки для показа можно применить прямо в текущем процессе мониторинга.

    • Эмулировать передачу данных последовательному устройству

      Вы можете отправлять данные в различных форматах (стринг, двоичный, восьмеричный, десятичный, шестнадцатеричный, смешанный) контролируемому последовательному порту, как будто они были отправлены непосредственно контролируемым приложением с использованием функции режима терминала Serial Port Monitor. Таким образом, вы можете отслеживать реакции контролируемого последовательного устройства на некоторые специальных команды и данные.

    • Полная поддержка протокола данных Modbus (RTU и ASCII)

      C помощью новых фильтров Serial Port Monitor вы сможете расшифровывать и анализировать Modbus данные. Программа поможет не только устанавливать соединение между устройствами RS485/422/232, но и проводить эффективный анализ проходящих данных.

    • Повторное воспроизведение и сравнение сессий мониторинга

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


    эмулятор нуль-модемного провода 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



    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 . В архиве есть инструкция на русском языке и примеры. Скачать архив с компонентом...

    AT команда служит для управления некоторыми функциями модема. Команды можно вводить специальными программами, это намного проще чем встроенным в Windows XP hyperterminal. Для этого можно использовать программы: или Перед использованием данных программ нужно закрыть все другие программы которые могут использовать модем. Для модемов Huawei нужно подключаться на COM порт "3G PC UI Interface ", для модемов ZTE MF на COM порт "ZTE Proprietary USB Modem ". Как пользоваться смотрим картинки, всё достаточно просто. Если команд несколько, сначала вводим одну - жмём Enter , потом следующую и опять жмём Enter.


    Скачать :

    Скачать : (Пароль на архиве: 12345 )


    Huawei Terminal - программа терминала для прямой работы с беспроводными модемами Huawei, а также (ограниченно) с любыми другими модемами.

    Запускаем . В окне нужно выбрать HUAWEI Mobile Connect - 3G PC UI Interface Нажимаем Подключить (Connect )

    Для уверенности, что вы действительно подключились, наберите команду AT и нажмите отправить: Если в ответ от модема OK . Значит вы все сделали правильно и все готово для работы с модемом.

    AT^CARDLOCK="NCK Code" , где NCK Code 43963141 AT^CARDLOCK="43963141" . Вставляем команду AT^CARDLOCK="43963141" и нажимаем кнопку ENTER клавиатуре.

    Скачать : (Пароль на архиве: 12345 )


    DC-Unlocker client первая в Мире программа которая начала специализироваться на разблокировке беспроводных 2G\3G\4G модемов форм-фактора USB\PCMCIA. Со временем модельный ряд начал расширятся мобильными телефонами, смартфонами, WiFi роутерами.

    Качаем программу DC-Unlocker client и устанавливаем ее. После чего запускаем.
    1. Далее меняем язык на русский. Нажимаем Options и выбираем Russian

    2. Выбираем производителя модема или роутера в нашем случаи это Huawei . Нажимаем на Лупу как показано на картинке и пойдет чтение информации. Внимание! родная программа от модема должна быть закрыта). После прочтения информации вы увидите Статус SIM блокировки - Блокировано

    3. Далее нам необходимо вести команду AT^CARDLOCK="NCK Code" , где NCK Code - это код разблокировки который вы приобрели у нас. Например код 12860791 тогда наша команда будет иметь такой вид AT^CARDLOCK="12860791" . Вставляем команду AT^CARDLOCK="12860791" внизу прочитанной информации и нажимаем кнопку ENTER клавиатуре.

    4. После нажатия на ENTER произойдет ввод кода в наше устройство и выйдет сообщение OK

    5. Нажимаем еще раз на Лупу , чтобы прочитать заново информацию. И вы увидим, где Статус SIM блокировки - надпись Разблокирован

    Вот и все. Наше устройство успешно разблокировано.

    AT^CARDLOCK="NCK Code" – ввод кода снятия блокировки (8-значное число). NCK Code - это код разблокировки. Пример команды AT^CARDLOCK="12345678"

Последние материалы раздела:

Кир II Великий - основатель Персидской империи
Кир II Великий - основатель Персидской империи

Основателем Персидской державы признается Кир II, которого за его деяния называют также Киром Великим. Приход к власти Кир II происходил из...

Длины световых волн. Длина волны. Красный цвет – нижняя граница видимого спектра Видимое излучение диапазон длин волн в метрах
Длины световых волн. Длина волны. Красный цвет – нижняя граница видимого спектра Видимое излучение диапазон длин волн в метрах

Соответствует какое-либо монохроматическое излучение . Такие оттенки, как розовый , бежевый или пурпурный образуются только в результате смешения...

Николай Некрасов — Дедушка: Стих
Николай Некрасов — Дедушка: Стих

Николай Алексеевич НекрасовГод написания: 1870Жанр произведения: поэмаГлавные герои: мальчик Саша и его дед-декабрист Очень коротко основную...