CoreBus — кроссплатформенный терминал для работы с COM-портами и TCP-сокетами с поддержкой протоколов Modbus TCP / RTU / ASCII.
Основные возможности приложения:
-
Два режима работы: "Без протокола" и "Modbus".
-
"Без протокола":
- Работа с данными в строковом или байтовом формате.
- Поддержка разных кодировок.
- Три режима отправки: одиночная, цикличная, отправка файла.
-
"Modbus":
- Поддержка различных вариаций протокола Modbus: TCP, RTU, ASCII и RTU / ASCII over TCP.
- Удобная работа с функциями записи.
- Возможность работы с числами типа float.
- Возможность работы с бинарными данными.
- Цикличный опрос.
- Modbus сканер, который осуществляет поиск устройств на линии связи.
-
Макросы:
- Отдельные макросы для каждого режима работы.
- Макрос состоит из неограниченного количества команд (действий).
- Для Modbus макросов предусмотрена возможность выставления общего Slave ID для всего макроса.
- Импорт и экспорт макросов.
-
Темная и светлая темы приложения.
-
Пресеты с пользовательскими настройками.
-
Кроссплатформенность: Windows, Linux.
Приложение тестировалось на Windows 10/11, Ubuntu и Astra Linux Common Edition.
Автор будет благодарен за любую поддержку. Реквизиты указаны по ссылке.
CoreBus: Часть 5 — попытка использования Native AOT
Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 4
Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 3
Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 2
Терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 1
Ссылки на скачивание любой публичной версии приложения вы можете найти на этой странице.
Также приложение выложено на SourceForge.
EchoServer - консольное приложение для тестирования по TCP/IP.
ArduinoModbusDevice - Modbus RTU Slave устройство.
Начиная с версии 3.0.0 в проекте используется Avalonia UI, в более ранних версиях WPF.
Платформа:
- .NET Framework до версии 1.9.1 включительно.
- .NET 7 начиная с версии 1.10.0.
- .NET 8 начиная с версии 2.3.0.
- .NET 9 начиная с версии 3.0.0.
Ниже будет описание режимов работы приложения. Подробнее можно узнать из статей на Хабр или из встроенного руководства пользователя (кнопка со знаком вопроса в верхнем левом углу).
В поле передачи пользователь пишет данные, которые нужно отправить.
В поле приема находятся данные, которые прислал сервер или внешнее устройство.
Можно работать как с байтами, так и со строковыми данными в разных кодировках.
Поддерживаются протоколы:
- UART
- TCP
Есть три режима отправки:
- Одиночная
- Цикличная
- Файлы
Пользователь может взаимодействовать с выбранными регистрами Modbus, используя соответствующие элементы интерфейса. Для дополнительной расшифровки транзакции существует раздел с представлениями.
Поддерживаются протоколы:
- Modbus TCP
- Modbus RTU
- Modbus ASCII
- Modbus RTU over TCP
- Modbus ASCII over TCP
Есть разные способы визуализации данных:
- Последний запрос.
- История обмена.
- Бинарное представление.
- Число типа float.
Также в этом режиме реализован Modbus сканер. Он служит для поиска подчиненных устройств на линии связи и доступен только при подключении по последовательному порту. Список адресов найденных устройств отображается в поле "Устройства".
В приложении предусмотрена работа с макросами. Они доступны для всех режимов. Макросы поддерживают отправку сразу нескольких сообщений за раз.
Все макросы представлены на рабочем поле в виде кнопок с соответствующими названиями. При наведении курсора на любой из макросов появляются кнопки редактирования и удаления.
Макрос разделен на команды. Каждая команда – это отправка одного сообщения.
В режиме редактирования есть возможность отправки отдельных команд или всего макроса полностью. Для этого предусмотрены соответствующие кнопки в шапке макроса и у каждой команды в списочной форме.
В макросах Modbus есть возможность использовать единый Slave ID во всем макросе.
GUI Framework - Avalonia UI
Для упрощения работы с паттерном MVVM использован ReactiveUI
Для тестирования используется xUnit
Скрипт установщика написан с помощью Inno Setup Compiler
Иконки приложения Material.Icons.Avalonia
Global - глобальная версия репозитория. До релиза это 0. Цифра меняется во время релиза и при именениях, затрагивающих значительную часть UI или внутренней логики.
Major - добавление нового функционала, крупные изменения.
Minor - исправление багов, мелкие добавления.