AL Terminal

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

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

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

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

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

Настройки порта

Настройки порта

Меню настроек отображения теста

Меню настроек отображения теста

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

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

Таблица ASCII

Таблица 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»

Графикопостроитель

Графикопостроитель

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

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

Скачать программу v1.001.0047

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

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

Скачать программу v1.001.0045

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

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

Скачать программу v1.001.0044

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

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

Скачать программу v1.001.0040

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

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

Скачать программу v1.001.0038

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

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

Скачать программу v1.001.0037

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

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

Скачать программу v1.001.0034

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

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

Скачать программу v1.001.0025+

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

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

Скачать программу v1.001.0024

57 комментариев »

Alex_EXE | 25.05.2011 | Программы | 23 614 просмотров

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

  1. Денис пишет 08.06.2011 в 03:57 #

    Здорово! Очень пригодится… Спасибо автору за разработку и интузицизм…
    Я вот тоже думал разработать подобное в HiASM но потом нашел вот эту програмку и понял, что не придется. Еше раз спасибо авотру.

  2. Дмитрий пишет 09.06.2011 в 10:38 #

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

  3. Дмитрий пишет 09.06.2011 в 10:40 #

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

  4. Alex_EXE пишет 17.06.2011 в 00:20 #

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

  5. Алексей пишет 30.06.2011 в 13:15 #

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

  6. Alex_EXE пишет 30.06.2011 в 21:26 #

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

  7. Иван пишет 30.09.2012 в 07:05 #

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

  8. Alex_EXE пишет 30.09.2012 в 19:21 #

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

  9. Serg пишет 13.12.2012 в 22:04 #

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

  10. Alex_EXE пишет 15.12.2012 в 00:09 #

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

  11. Василий пишет 06.01.2013 в 19:50 #

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

  12. Alex_EXE пишет 14.01.2013 в 14:44 #

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

  13. Alex_EXE пишет 25.09.2013 в 00:19 #

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

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

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

  15. Alex_EXE пишет 21.01.2014 в 10:51 #

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

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

    Программа перестала запускаться и выдает такую ошибку http://radikal.ua/data/upload/fb1a9/6895e/ea460e339c.png
    печально

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

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

  18. Alex_EXE пишет 01.02.2014 в 03:09 #

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

  19. Максим пишет 12.08.2014 в 02:09 #

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

  20. Alex_EXE пишет 25.08.2014 в 18:37 #

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

  21. Serafim пишет 13.11.2014 в 18:43 #

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

  22. Andrey пишет 13.11.2014 в 23:53 #

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

  23. hamper пишет 11.12.2014 в 03:49 #

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

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

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

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

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

  24. RusikOk пишет 22.01.2015 в 18:15 #

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

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

  25. Alex_EXE пишет 08.02.2015 в 04:42 #

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

  26. MaxKorj пишет 16.03.2015 в 19:20 #

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

  27. Борис пишет 27.03.2015 в 18:15 #

    Автор, спасибо!
    Респект и уважуха тебе. 🙂
    Хорошая программа.

  28. David пишет 01.05.2015 в 19:20 #

    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

  29. Alex_EXE пишет 23.07.2015 в 13:00 #

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

  30. RusikOk пишет 02.08.2015 в 19:18 #

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

  31. brunnen-g пишет 02.09.2015 в 20:14 #

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

  32. Alex_EXE пишет 02.09.2015 в 23:01 #

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

  33. lowrider_64 пишет 06.01.2016 в 03:24 #

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

  34. Михаил пишет 19.01.2016 в 04:32 #

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

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

    Спасибо!

  35. mflow пишет 02.03.2016 в 07:34 #

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

  36. Alex_EXE пишет 02.03.2016 в 11:26 #

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

  37. Alex_EXE пишет 24.06.2016 в 04:44 #

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

  38. rationtenet пишет 29.06.2016 в 17:18 #

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

  39. Bot_91 пишет 21.10.2016 в 14:54 #

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

  40. Alex_EXE пишет 22.10.2016 в 21:28 #

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

    По графикам: данный функционал очень сырой, о чём предупреждал.
    Пара слов о том, как можно попробовать использовать графики:
    1. В меню график включаем отправку сообщений в окно графика — меню «Включить»
    2. Открываем окно графика
    С вкладками График и настройки — думаю всё понятно.
    Во вкладке преобразования можно настроить пока что только целочисленный множитель и задать целочисленное смещение, т.е. можно вводить только цифры и знак -.
    Самое главное — настроить парсер входных данных.
    3. данные должны приходить однородные и форматированные
    4. нужно настроить, что бы в нижнем поле ввода данных отображалось корректное цифровое значение (цифры, знак минуса в начале, если есть, допустимы пробелы в начале, остальные символы не допускаются).
    5. поставить галочку «Вкл» над нижними полями ввода.
    Пример настройки парсера (декодирования):
    получаем следующие данные

    -001745; 004824; 049410;

    хотим считать 1 значение:
    1 значение числовое 7 символов, идёт первым:
    • входящие данные — Число
    • Количество символов в 1 значении — 7
    • Порядок — по убыванию
    • Начальная фраза нам не нужна — выкл
    • Отрицательное — это для режима байта — выкл
    • Удалять символы с конца — 0 (ещё корректно не работает)
    • Отступ — 0 (для считывания второго значения будет 8, для 3 — 16)

  41. SB пишет 14.11.2016 в 20:16 #

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

    Спасибо.

  42. SB пишет 14.11.2016 в 20:34 #

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

  43. Alex_EXE пишет 15.11.2016 в 01:52 #

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

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

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

  45. Борис пишет 10.12.2016 в 23:41 #

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

  46. Андрей пишет 12.12.2016 в 19:38 #

    Очень помогла программа. Спасибо автору за программу.

  47. Alex_EXE пишет 05.02.2017 в 07:42 #

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

  48. Alex_EXE пишет 06.02.2017 в 00:09 #

    Программа обновлена до версии v1.001.0045
    Изменения:
    • Добавлена возможность установки произвольной скорости порта (требуется тестирование).

  49. W25 пишет 06.02.2017 в 14:14 #

    Спасибо вам за вашу работу.
    Планируется ли поддержка кодировки UTF-8?

  50. Иван Абдулхаев пишет 24.03.2017 в 00:32 #

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

  51. Alex_EXE пишет 24.03.2017 в 12:39 #

    Это добавить можно будет.

  52. Boss пишет 27.06.2017 в 04:50 #

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

  53. Александр пишет 29.06.2017 в 01:01 #

    Спасибо большущее за программу! Давно искал нечто подобное))

  54. Alex_EXE пишет 29.06.2017 в 17:47 #

    Boss
    В меню Отображение выбрать желаемое завершение строки в пункте CR + LF (завершение строки) (для версии 1.001.0045)
    Если нужно завершение строки в одном из полей ввода готовый команд (списки команд) — то поставить галочку в Вид — Добавить завершение строки.
    Так же ещё можно прописать окончание строки в ручную, например $010$013 , если включен режим Отображение — Отправка кода символа ($).
    Если возникают вопросы по отправляемым данным то можно во первых включить режим TXT+HEX, а для большей верности можно подключить USB-UART адаптер или на встроенном COM порте замкнуть линии Rx и Tx и посмотреть, что уходит и приходит.

  55. Boss пишет 30.06.2017 в 03:14 #

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

  56. Alex_EXE пишет 30.06.2017 в 04:50 #

    Да ещё: при отправки команды нажатием клавиши «Отправить» — команда отправляется без завершения строки, при отправки команды нажатием клавиши Enter на клавиатуре — тогда в конец строки добавляется окончание строки.
    Выбор параметра «отправка символа $» через меню:
    без установленной галочки символ $ — будет восприниматься, как $; с установленной галочкой — символ будет отрабатываться, как спец символ для ввода произвольного символа, если ещё включить «Расширенный режим ввода ASCII» то при попытке ввода символа $ будет открываться окно с выбором символов ASCII из таблицы.
    Проблем с вводом команд, когда терминал не перегружен входным потоком данных, не наблюдаю.
    Это некоммерческое бесплатное программное обеспечение. Когда то начал писать его под свои нужды и решил поделиться тем, что получилось. Программа не идеальна, написана на мертвом языке. Если Вам она не нравится или не подходит, то Вы вправе использовать любой другой продукт, который больше нравится.

  57. Alex_EXE пишет 03.07.2017 в 01:53 #

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

Комментарии RSS

Оставьте отзыв