Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 3
Встречайте новое обновление моего терминала!
Терминальная программа — это многофункциональный кроссплатформенный инструмент инженера, который позволяет взаимодействовать с внешним устройством или сервером. Приложение поддерживает различные вариации протокола Modbus, а также дает возможность работы с данными в строковом или байтовом формате.
Главные фичи этой версии это макросы с пользовательскими именами, работа с байтами в режиме «Без протокола» и поддержка протоколов Modbus RTU и ASCII поверх TCP.
Изменения:
Добавлена поддержка Modbus RTU over TCP.
Добавлена поддержка Modbus ASCII over TCP.
Добавлена возможность работы с байтами в режиме «Без протокола».
Добавлены макросы.
Добавлено руководство пользователя.
Исправление ошибок, мелкие улучшения и рефакторинг.
Ссылки для скачивания вы можете найти в конце статьи. А теперь приступим к разбору нового функционала!
Макросы
Это, пожалуй, основная фича этого обновления. Но зачем они нужны?
В моей практике часто случалась ситуация, когда нужно написать одноразовое или временное ПО. Скажем прямо — разрабатывать его скучно. Поэтому удобнее задать макросы в каком-нибуть терминале. И время сэкономим, и работать не надо :)
Но возникает следующая проблема. В популярных терминалах не всегда можно задать имя макросу или же такой функционал плохо реализован (например, как в Terminal 1.9b). Из-за этого обычному пользователю трудно разобраться какие кнопки нажимать, чтобы все заработало.
Как раз эти проблемы и призван решить режим макросов в моем приложении.
Вариант в темной теме
Вариант в светлой теме
Перед нами представлена панель макросов. Для каждого режима она своя. При переключении режимов в главном окне панель обновляется.
Макросы можно создавать, редактировать и удалять.
Также всю панель для конкретного режима можно импортировать и экспортировать. Это удобно использовать, когда нужно распространить макросы на несколько ПК. Важно отметить, что при импорте старый файл удаляется без возможности восстановления.
При наведении курсора на макрос, появляются две дополнительные кнопки «Редактирование» и «Удаление» выбранного макроса.
Очевидно, что для каждого режима будет своя форма создания/редактирования макроса. Рассмотрим их поближе и ознакомимся с особенностями.
«Без протокола»
Взаимодействие в данном окне аналогично обычному режиму «Без протокола».
Из особенностей важно отметить, что кодировка строки в макросе не зависит от общей кодировки, заданной в настройках приложения.
Это сделано для того, чтобы макрос был автономным и не зависел от пользовательских настроек.
«Modbus»
Управление в этом окне схоже с обычным режимом «Modbus».
Также отмечу, что тут формат числа типа float в макросе не зависит от формата, выбранного в настройках приложения.
Работа с байтами в режиме «Без протокола»
Это как раз то, что я ждал сам от себя, наверное, еще с самой первой непубличной версии приложения.
Периодически в целях отладки мне нужно было отправить внешнему устройству только один или несколько байт. Но что делать, если в таблице ASCII нет подходящих значений? Для этих целей мне приходилось держать второй терминал рядом. Но эти времена прошли, и в моем приложении появился необходимый минимум для работы с байтами. Поэтому второй терминал я удалил :)
С помощью соответствующих переключателей можно выбирать способ отображения контента. Тут есть небольшие особенности.
В поле передачи и в обычном режиме (верхнее поле на картинке), и в режиме цикличного опроса все содержимое поля автоматически преобразуется в байты и наоборот с учетом выбранной кодировки.
А в поле приема преобразуется только та часть контента, которая была получена после переключения.
Например в режиме цикличного опроса с включенными служебными полями это может выглядеть так:
Устройство прислало строку »3e-1» с кодировкой ASCII
Итого
В версии 3.1.0 был добавлен функционал, реализацию которого я откладывал довольно давно. Приложение стало еще более универсальным инструментом в руках инженера. И если вы запутайтесь в его функционале, то не забывайте обращаться к встроенному руководству пользователя (кнопка с вопросительным знаком в верхнем левом углу) и статьям из этого цикла.
Приложение все также тестировалось на Windows 10/11, Ubuntu и Astra Linux.
Буду рад обратной связи в комментариях.
Смотрите также: