Здравствуйте, уважаемые хабровчане! Я хотел написать просто комментарий к статье "Программное обеспечение для тестирования и наладки устройств и сетей на базе MODBUS", однако для вновь зарегистрированных пользователей сайт не даёт это сделать для "не свежих" публикаций. Поэтому пишу это в виде публикации, что бы хоть каким-либо образом донести информацию. Суть этого небольшого поста - представить вниманию читателей новый терминал для работы с COM-портами, который, возможно, многим придётся по душе. А теперь - непосредственно сам пост:
Думаю, что каждый из embeded-разработчиков хотя бы раз в жизни пользовался терминалом для работы с COM-портом ПК - простой программой, позволяющей персональному компьютеру через встроенный интерфейс RS-232 (или USB-переходник) общаться с внешними устройствами, например такими, как GSM-модем или просто обмениваться данными с микроконтроллером в процессе разработки и отладки прошивки.
Таких терминалов на данный момент создано довольно много, как говорится "на любой вкус". Однако, как часто бывает, когда начинаешь более-менее длительно работать в какой-либо программе, начинает постоянно не хватать то одной функции, то другой, то одно кажется сделано неудобно, то другое. Всё время ловишь себя на мысли: "это лучше сделать было бы так, а это - вот эдак" :)
Подобные мысли и определённые требования к функционалу в конечном счёте привели к созданию "своего" терминала, который создавался не один год, наращивая свою функциональность и удобство. Он создавался в процессе разработки прошивок для микроконтроллеров, разбора многих протоколов опроса оборудования и возможно придётся "по душе" многим разработчикам ПО и электроники в целом.
В основе его дизайна легла простая, но как мне кажется правильная идея, что при обмене данными с устройством все передаваемые и принимаемые данные должны отображаться в виде диалога двух "умных" устройств так, как этот диалог отображается в любом современном мессенджере: слева вопрос, справа и ниже - ответ, слева и ещё ниже - новый вопрос и т.д. При таком "разнесении" данных существенно улучшается визуальное восприятие протокола обмена двух устройств.
Другим фактором, но уже в области функциональности терминала послужило частое требование видеть обмен двух "внешних" устройств, которые общаются с друг с другом (например какой-либо контроллер общается с подключенным к нему GSM-модемом), так сказать "подсматривать" их обмен данными, а не отсылать данные с компьютера. Это привело к появлению в терминале функции "мониторинга" COM-портов. Реализуется это просто и очевидно: программа открывает ОДНОВРЕМЕННО два COM-порта, оба в режиме ПРИЁМА. Все принятые данные по обоим портам заносятся в хронологическом порядке в описанный выше "диалог".
Изначально разбивка принимаемых данных происходила классически - по терминаторам перевода строки и возврата каретки ($0D, $0A), что характерно для текстовых протоколов. Позже была добавлена функция разбивки принимаемых данных по таймауту молчания, что очень удобно для работы с бинарными протоколами, где нет характерного терминатора.
С годами терминал оброс дополнительными полезными и удобными "плюшками", которые по достоинству могут оценить многие. Была добавлена таблица на 1000 макросов, детализация последнего принятого блока данных, детальная (побайтная) разбивка любой строки. Добавлена реализация даже такой тривиальной задачи, как перевод числа между двоичной, десятичной и шестнадцатеричной системами счисления, побитный сдвиг числа влево и вправо, просмотр таблицы ASCII. Эти операции можно выполнить и другими программами, но очень УДОБНО, когда всё это собрано в одном месте и всегда под рукой.
Все настройки и данные введенные в полях ввода автоматически сохраняются при закрытии программы и автоматически загружаются при новом сеансе работы с терминалом, что очень удобно.
Внешний вид главного окна терминала:
На последних этапах разработки терминала TbK была добавлена поддержка протокола MODBUS, причём реализован как режим MASTER, так и режим SLAVE. То есть терминал может как опрашивать MODBUS-устройства, так и имитировать из себя такое устройство. Поддерживаются все самые "ходовые" функции протокола: 1, 2, 3, 4, 5, 6 и 16
Все регистры заполняются в виде таблиц, которые удобны для восприятия.
Так выглядят дополнительные окна для работы по протоколу Modbus:
Основной функционал терминала:
визуально - пространственное разделение принимаемых и отсылаемых данных (либо данных, принимаемыми разными портами – в режиме мониторинга), что облегчает их восприятие оператором, так как данные представлены в виде диалога, как в мессенджере;
представление данных в текстовом (TEXT), десятичном (DEC), шестнадцатеричном (HEX) и бинарном (BIN) форматах в табличном виде (Таблицы) и в виде свободного текста (Memo). В режиме Memo имеется возможность выбрать фонт, размер и цвет текста;
таблица из 1000 макросов и комментариев к ним, каждый из которых может быть мгновенно отослан в порт двойным кликом по его номеру;
терминал удобен для работы как с текстовыми (символьными), так и с бинарными протоколами обмена; – различные режимы разбивки принимаемых данных на строки: по обнаружению фиксированного терминатора ($0D, $0A, $0D$0A, $0D or $0A), по таймауту после окончания приёма последнего байта, по приёму фиксированного количества байт;
автоматическое добавление к отсылаемым данным различных контрольных сумм (CRC) и терминаторов: $0D, $0A или $0D$0A (на выбор);
детализация последнего принятого блока данных (DLRB) - инструмент, позволяющий в реальном масштабе времени разбивать принимаемые данные по отдельным байтам, определив для каждого байта свой порядковый номер в посылке и задав отдельный цвет для подсвечивания каждого байта или группы байт, что облегчает визуальное восприятие данных. Это удобно при работе с позиционными протоколами, когда положение каждого байта в посылке всегда фиксировано и не изменяется во времени;
возможность в реальном масштабе времени вычислять на основе принимаемых данных одно-, двух- и четырёхбайтовые величины и, принимая их за аргументы, вычислять на их основе сложные функции, заданные текстовой формулой;
инструменты, позволяющие реализовать поддержку протокола Modbus, как в режиме Master, так и в режиме Slave. Поддерживаются 1, 2, 3, 4, 5, 6 и 16 функции протокола;
режим сохранения всех принимаемых / отсылаемых в log-файл;
инструмент Programs, позволяющий реализовать выполнение простейших программ на основе отсылки заданных макросов с определёнными паузами между ними с возможностью зацикливания выполнения отдельных блоков;
инструмент String, позволяющий детально проанализировать строку, скопировав её через буфер обмена и разбив по байтам, определить её длину, подсветить отдельные байты определённым цветом и привязать к каждому свой комментарий, вычислить различные контрольные суммы данной строки, произвести перевод заданного числа между различными системами исчисления (DEC<>HEX<>BIN), разложив его на отдельные байты, произвести побитный сдвиг этих байт влево и вправо;
быстрый доступ в терминале к встроенной справочной информации: таблицы ASCII-символов, описания выводов COM-порта (цоколёвки разъёма), схем распайки кабеля для реализации режима мониторинга COM-портов.
Сама программа написана на Delphi, работает только под Windows, для загрузки доступен сам exe-файл, а также два файла инструкции - на русском и английском языках.
Сам терминал полностью бесплатный, без каких-либо ограничений по использованию.
Очень хотелось бы услышать Ваши отзывы о его использовании, а также разумные предложения по наращиванию функциональности терминала.
Приятного пользования!
Комментарии (33)
malishich
20.10.2021 15:07+5Исходников нету. Еще и zip в репозитарии. Наказать бы за такое.
Vladimkov Автор
20.10.2021 18:07Исходников пока не будет. Заархивирован сам exe-файл. Наказывать не нужно...:)
courser
21.10.2021 13:30+1Ага, наказывать всех, кто делится результатами работы "не по правилам"
Очень много их тогда останется.
Vladimkov Автор
20.10.2021 17:36Действительно, при попытке загрузки антивирус видит в exe-файле вирус, возможно это связано с тем, что при запуске терминал в текущей директории создаёт несколько рабочих каталогов. В файле никакого вируса нет! Я его перезалил: удалил расширение и запаролил сам архив (пароль 1234567). После распаковки файла необходимо добавить ему расширение .exe. Немного сложновато, но так он загружается. Очевидно алгоритмы антивирусников видят в нём какую-то угрозу. Хотя после распаковки и при запуске самого exe-файла антивирус не ругается.
По поводу исходников: их пока не будет.
lunacyrcus
21.10.2021 00:33Это и подобное -- типичные false-positive от второсортных (и не очень второсортных) антивирусов, многих триггерит даже простое отсутствие цифровой подписи на exeшниках.
Vladimkov Автор
20.10.2021 18:10Уважаемые хабровчане, хотелось бы услышать отзывы, пожелания непосредственно по работе самого терминала.
lunacyrcus
21.10.2021 00:35Ну вот в целом выглядит полезно, я не занимаюсь этим направлением постоянно но опыт бывал и приходилось при том выискивать подобный софт или писать самому на ходу хоть что-то. Только скачал на всякий и посмотрел что-как, а каких-то конкретных пожеланий/замечаний и т.д. пока нет, как понадобится проверю в деле, а пока и так спасибо.
Barma2012
20.10.2021 18:11А почему при попытке открыть архив, разными приложениями — везде ошибка «Файл повреждён»?
UPD: Примерно на десятый раз скачалось-таки без ошибок ))))
UPD2: Ох, да что же так всё мелко-то? Глаза не слишком молодые, быстро устанут…
А русификация не предвидится? Родной язык всё же лучше понимаешь ))))Vladimkov Автор
20.10.2021 18:15Скачайте весь архив (с пдф-ками), затем его разархивируйте. Затем разархивируйте сам exe-шник, добавьте к нему расширение .exe.
WinRAR и 7-Zip нормально распаковывают.
Vladimkov Автор
20.10.2021 18:21Ну шрифт стандартный MS Sans Serif, 8. Иначе не поместились бы все элементы интерфейса при заявленном минимальном разрешении монитора 1024 х 768.
А глазки привыкнут ...
ArgenteusLapis
22.10.2021 12:33Запасных глазок нету (
Лучше бы не мельчили, а в виде ленты как в офисе всё сделали.
И всплывающих подсказок нету(
В общем пока что, типичное приложение, исключительно для себя любимого
Vladimkov Автор
20.10.2021 18:58Терминал изначально писался на русском языке.
Настраивается: Настройка (шестерёнка) / вкладка "Language, Skin"
dlinyj
21.10.2021 12:01+1Шикарный терминал, пользовался им, когда ещё не было функционала модбас. Но потом я перешёл под линукс, и к сожалению его под линукс нету (хотя очень бы хотелось).
В остальном, честь и хвала. Также хочу сказать, что активно использовал возможность писать скрипты.
По интерфейсу я бы добавил, что по возможности стоит избегать разных цветов, а кнопки все следует делать одного размера. Иначе выглядит неаккуратно.courser
21.10.2021 13:36+1Почему избегать разных цветов? Дизайнерские изыски?
Искать взглядом цветной значок гораздо быстрей и менее утомительно.
То же самое с размером кнопок - наиболее употребительные - крупней(в разумных пределах)
Чёртовы дизайнеры убивают всю эргономику.
Vladimkov Автор
21.10.2021 17:58Спасибо большое за отзыв, но уточните пж.: Вы от терминале, описанном в статье (TbK) написали? Фраза "пользовался им, когда ещё не было функционала модбас" настораживает. Где же Вы его тогда взяли, если он только недавно выложен был ???
Vladimkov Автор
21.10.2021 18:49По поводу цветов: в главном окне двумя основными цветами (красным и зелёным) выделены элементы интерфейса, относящиеся к двум разным COM-портам: красным - для COM-A, зелёным - для COM-B. Сделано это для удобства визуального разделения элементов управления и настройки портов. Все остальные элементы интерфейса сделаны, в основном, классическим чёрным цветом.
courser
21.10.2021 13:25+1Испытать пока времени нет, но выглядит очень функционально.
Дизреспект обругавшим за оформление. Вот так отбивают желание делиться полезным софтом у его авторов.
Barma2012
21.10.2021 19:57+1Попользовался сегодня довольно плотно. Неплохой терминал, понравился.
Из плюсов — автоповтор макросов. Отличная вещь для удаленной отладки всяких радиомодулей! Особенно актуально, если на втором конце моста нет человека, который может что-то отправлять.
Эта функция оказалась настолько удобной, что пожалуй, этот терминал будет пока моим основным ))) Хитрыми переходами от одного макроса к другому пока не было нужды пользоваться, но если работает как описано — это прям прекрасно!
А из минусов… Какое-то не слишком удобное нагромождение мелких контролов внизу. И мелкий шрифт надписей, о чём я уже писал вчера. Увы, глаза за день так и не привыкли, наоборот — к вечеру больше устали. Если сделаете шрифт хотя бы 10 — будет несравненно удобнее!
UPD: Забыл добавить — в русском файле PDF какие-то ошибки, не открывается он у меня ((Vladimkov Автор
22.10.2021 01:04Спасибо огромное за такой ёмкий отзыв и за потраченное на него время. Повторюсь, что и шрифт и большое количество мелких элементов управления на основной форме программы вызвано желанием предоставить пользователю доступ ко многим функциям "в один клик", без лазания по бесконечным меню и при этом влезть в стандартное разрешение мониторов 1024х768. При шрифте 10 всё это вместить невозможно. Кстати, шрифт этот стандартный, посмотрите, например, на интерфейс терминала by Bray. Если речь идёт о данных, то в режиме Memo можно настроить любой размер шрифта, хотя основным режимом являются всё-таки таблицы.
По поводу пдф-ки на русском языке - я несколько раз сделал закачку архива, всё нормально открывается, по крайней мере Adobe Acrobat Reader DC (64 bit), трудно сказать почему у Вас возникли проблемы.
Barma2012
22.10.2021 20:35Да, да, в том терминале тоже всё мелко. Я понимаю, что это некий стандарт — однако, как говорят, не нога должна принимать форму ботинка, а наоборот ))) А глаза — это не нога, более тонкий инструмент… и мучений не любит ))
Bars1969
22.10.2021 12:32Автор - молодец! Терминал отменный, просто кладезь нужных и полезных функций в одном месте. Швейцарский нож по сравнению с этим - просто зубочистка :-) Реально удобно, всё под рукой. И при такой навороченности не удивительно обилие настроек. Читайте описание, пробуйте и будет всё, как надо. Эх, такое лет бы на 10 раньше...
И да: никаких проблем с загрузкой, распаковкой и ошибками не обнаружено.
13werwolf13
простите что не совсем по сабжу но:
zip и pdf в git репе это писец..