Промышленная автоматизация и IoT
ELX-Terminal
Терминал для COM-портов, RAW TCP и TCP через SSH-туннель
Четыре вида подключений в одном окне, по вкладке на каждое: последовательный порт, TCP-клиент, TCP-сервер и TCP через SSH-шлюз. Текст, HEX-дамп и разбор кадров переключаются на лету и перерисовываются из сырой истории, поэтому смена решения ничего не стоит.
Четыре подключения, одно окно
Последовательный порт, TCP-клиент, TCP-сервер, принимающий сразу нескольких клиентов, и TCP через SSH-шлюз — каждое на своей вкладке и все одновременно.
Последовательный порт целиком
Живой список портов с их описаниями, скорость до трёх мегабод, биты, чётность, стоп-биты, управление потоком, ручные DTR и RTS, посылка BREAK. Скорость и чётность меняются на лету, без переоткрытия порта.
SSH-туннель без plink
Выход на адрес в удалённой сети через SSH-шлюз, по паролю или ключу OpenSSH. Сессия идёт прямо до цели по каналу SSH — локальный порт открывается отдельной опцией, когда тем же туннелем должны пользоваться другие программы.
Текст, HEX и разбор кадров
Все три режима перерисовываются из сырой истории, поэтому переключение не теряет уже пришедшее. Метки времени с миллисекундами, отправленное и принятое разными цветами и настраиваемое правило конца строки.
Быстрые команды
Панель кнопок, которые переставляются перетаскиванием, и диалог, показывающий точные байты перед отправкой. У набранных вручную команд есть история на стрелках вверх и вниз.
Рабочее место возвращается
Закрыли и открыли — те же вкладки с теми же свойствами, та же активная вкладка, тема, макросы, свёрнутые панели, размер и положение окна. Восстанавливать руками нечего.
Четыре вида подключений
| Тип | Для чего |
|---|---|
| COM-порт | Устройство на последовательной линии или USB-переходнике — контроллеры, счётчики, модули на RS-485 |
| TCP-клиент | Устройство или служба, которая слушает; с TCP_NODELAY и переподключением после настраиваемой паузы |
| TCP-сервер | То, что подключается к вам; несколько клиентов сразу, отправка всем или только последнему |
| TCP через SSH | Устройство в удалённой сети, доступное через шлюз, на который можно войти |
Вместо запуска plink руками
plink -ssh -batch -P 22 -pw <пароль> -N -L 1824:192.168.1.226:1824 user@gateway
Вкладка SSH это заменяет: слева шлюз — хост, пользователь, пароль или файл ключа, — ниже адрес и порт цели. Панель показывает эквивалентную команду, чтобы настройки было с чем сверить.
Сама сессия идёт до цели прямо по каналу SSH, локальный порт при этом не участвует. «Открыть локальный порт» — отдельная опция: она поднимает 127.0.0.1:<порт> через то же соединение, когда туннелем должны пользоваться другие программы.
Как читать то, что приходит
- Текст — UTF-8, Windows-1251 или ASCII, выбирается в строке над выводом.
- HEX-дамп — для протокола, который не текст, или чтобы найти байт, который оказался не тем.
- Разбор кадров — структурированный разбор поддерживаемого формата, с именами полей.
- Метки времени с миллисекундами — именно они отвечают на вопрос «уложился ли ответ в тайм-аут».
- Отправленное и принятое разными цветами, с возможностью подмешивать своё отправленное в тот же поток.
Отправка
- Текст или байты в шестнадцатеричном виде.
- История отправленного на стрелках вверх и вниз.
- Счётчик байтов и добавление CR, LF или CRLF по выбору.
- «Оставлять введённое» не стирает посылку, а выделяет её: Enter повторяет, ввод заменяет — именно так одна и та же посылка отправляется двадцать раз с меняющимся байтом.
Коротко о главном
- Операционная система
- Windows 10 и 11, 64-разрядные
- Подключения
- COM-порт, TCP-клиент, TCP-сервер, TCP через SSH
- Скорость порта
- До 3 000 000 бод
- Режимы вывода
- Текст (UTF-8, Windows-1251, ASCII), HEX-дамп, разбор кадров
- Аутентификация
- Пароль SSH или ключ OpenSSH
- Рабочее место
- %APPDATA%, с резервной копией предыдущего состояния
- Написано на
- Flutter
Частые вопросы
Можно ли держать несколько устройств открытыми сразу?
Смена скорости закрывает порт?
Потеряется ли уже пришедшее при переключении в HEX?
Могут ли другие программы пользоваться SSH-туннелем?
Где хранится рабочее место?
%APPDATA%\ru.elxdevice\elxterminal\workspace.json, рядом лежит копия предыдущего состояния. Нечитаемый файл откладывается в сторону, а не затирается пустым.