Народ, я тут продолжаю изобретать велосипед... то есть терминал для СОМ-порта.
putty - хорошо, но слишком скромно
Termail by Br@y++ - лучше, но не совсем удобно
CoolTerm - только по названию крутой терминал, а так ничего необычного.
Вот я и решил, как всегда, место того, чтобы сходить в магазин за хлебом, построить вертолет и слетать...
Короче, интересует ли кого проблема выбора терминальной программы, чтобы изучать, как работают всякие изделия, а так же управлять на тапе разработки своими поделками по последовательному порту из-под Windows?
На сегодня я сделал следующее (только ключевые особенности, которых либо нет в других прогах, либо они не так удобно с моей т.з. реализованы):
- автосканирование COM-портов: при подключении USB-переходников они автоматом появляются в программе, и исчезают при их отключении;
- поддержка неограниченного количества портов (в отличие от
Termail by Br@y++), причем не обязательно с названиями COM* (например, программа
com0com может создавать виртуальные порты с любыми именами);
- выделение разным цветом того, что принято и того, что отправено;
- возможность при приеме текста видеть спецсимволы в "удобном" формате;
- наличие "истории" отправленного текста, чтобы повторно отправлять его в один клик мышкой (не нужно отдельно "программировать" кнопки как в
Termail by Br@y++, да и глубина истории до 100 сообщений);
- гибкие настройки внешнего вида: в программе предусмотрено 9 разных окон с информацией разного назначения, и все они могут быть в любом порядке показаны или скрыты, сохраняя функцинальность. например, если вам нравится
Termail by Br@y++ за то, что все настройки видны сразу, точно так же можно сделать и в моей программе, но лучше: у меня можно расположить окно настроек в любом месте интерфейса, хоть сверху, хоть сбоку, хоть снизу... хоть вообще выделить в плавающее окно и передвинуть на второй монитор (если он у вас есть);
- система фильтров входящих данных. имхо, такого нет ни в одной программе! входной поток вы можете пропустить последовательно через любое количество расположенных в любом порядке фильтров с гибкими настройками, чтобы увидеть наилучшим образом входняе данные. например, вы можете сразу форматрировать их в "пакеты" - вместо безликих байтов 00 01 02 03 04 05 06 вы можете сразу видеть что-то типа Адрес=0100, данные=020304, CRC=0605. можете запустить фильтр, который будет ждать определенную последовательность байт, и только приняв её, начнет показывать данные... можно разбивать данные на пакеты по маске, или на строки, или показывать только строки по определенному условию... ну и много чего еще;
- окно форматированного ввода данных. если вы работаете с протоколом WAKE или MQTT, вам наверняка будет удобнее вводить не просто байты данных, а осмсленные числа, причем делать это не в строке ввода, а в диалоге, где каждый элемент протокла в отдельном окошке... так вот, у меня это сделано так, что можно работать с любыми пакетами по вашему усмотрению. многие терминальные программы содержат подобные окошки под 1-2 протокола, а я сделал так, что вы сами за 30 секунд модифицируете это окно под собственный протокол.
как бы это главное, много мелочей... вроде Drag'n'Drop, чего мало где встретишь...
если тема интересна, был бы рад найти сподвижников, готовых взяться за тестирование и критику с советованием...
Несколько скриншотов чисто для затравки:
1. Интерфейс может быть таким:
а может быть и таким (минималистичный вариант):
при этом функционал обоих вариантов одинаков, доступ к любой спрятанной области мгновенный.
2. можно видеть и отправлять в HEX-е:
3. можно видеть коды спецсимволов прямо в текстовом окне:
4. а можно задать фильтр, и видеть вместо '\r' даже вот такое:
Добавлено after 2 minutes 12 seconds:5. а вот так (пока бета-версия) выглядит окно, где можно настроить по-своему ввод данных (в верхней части строка-формат, задающая формат пакета):
вводите свой формат - получаете свои поля ввода данных в любом из форматов: десятичном (со знаком и без), шестнадцатеричном, восьмеричном, двоичном или текстовом. пока не реализовано, но планируется поле авто-CRC по наиболее распространенным полиномам (CRC8, CRC16 и CRC32).
Добавлено after 1 minute 31 second:да, на скриншотах putty использовалась для отправки текста в мою программу, а не наоборот.
- Вложения
-
- 6.png
- (19.11 KiB) Скачиваний: 3818
-
- 5.png
- (47.22 KiB) Скачиваний: 3875
-
- 4.png
- (33.19 KiB) Скачиваний: 3829
-
- 3.png
- (35.9 KiB) Скачиваний: 3876
-
- 2.png
- (22.99 KiB) Скачиваний: 3841
-
- 1.png
- (51.47 KiB) Скачиваний: 3857