Народ, я тут продолжаю изобретать велосипед... то есть терминал для СОМ-порта. 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 использовалась для отправки текста в мою программу, а не наоборот.
Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18798 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Могу рассказать что есть в терминалке, которой пользуюсь: — все настройки в ini-файле; — можно добавлять кнопки, по нажатию на которые будут посылаться какие-то данные; — посылаемые данные могут запрашиваться у пользователя; — выделение хидера и/или трейлера в пришедших данных, форматирование данных по шаблону.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Что вы за фигню придумываете? В простейшем случае все команды тупо отправляются при помощи echo "команда" > /dev/ttyUSB0, а ответ читается при помощи cat /dev/ttyUSB0. Если tee натравить, то будет еще и дамп в файл писать. Потом grep'ом, sed'ом и awk легко из этого нужную информацию извлечь. А для интерактивной работы этих терминалов вообще 100500 штук. Начиная со screen-сессии...
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
назовите известный вам терминал для Windows, который бы мог делать вышеописанное.
приведите пример (конкретные команды в вашей любимой программе) для того, чтобы видеть приходящие из последовательного порта байты в текстовом виде, причем если коды приходящих байтов "непечатные" (например, \n), то и выводились бы они ЖИРНЫМ КРАСНЫМ цветом в виде их "текстовго обозначения", как принято в С/С++. чтобы пользователь мог бы послать в терминал строку текста, в середине которой был бы код символа 0x02.
если можно, прошу критиковать конкретно, объективно и беспристрастно.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Я на извращенца похож что ли - для работы игровые приставки использовать?
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Думаю, не стоит. Писалось это для внутреннего пользования.
Цитата:
даже странно... а это играет какую-то роль?
Только то, что внешний вид и функциональность можно править без перекомпиляции.
Ну и конечто же вся история сообщений пишется в лог-файл. Плюс там вроде можно настраивать, чтобы какое-то сообщение отправлялось автоматически с периодом повторения.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
не, так не честно: я ж говорю об общедоступных программах, причем официально бесплатных. хочу достичь предела совершенства в связи с чем и интересуюсь нужным функционалом.
на счет записи в лог есть сомнения... если обмен идет не текстовый, то как его логгировать? для чего? ведь даже просмотреть бинарные записи лога будет сложновато, а для повтора сессии лог тоже не пойдет, если будет текстовым...
автоповтор по таймеру - жаль, не могу увидеть, как оно реализовано... пока не понимаю: если я ввожу свои данные и наступает момент автопередачи - что происходит? по таймеру в середину моих данных влезет "запрограммированный" пакет? или как?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
А, протоколы связи типа Modbus RTU, DCON мастер, слейв, или типа того будут?
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
что конкретно вы подразумеваете под "будут протоколы"? однозначно будет: - возможность увидеть поля пакета любого протокола - возможность сформировать пакет из полей и отправить его. что именно за пакет и для какого именно протокола - это за пользователем.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
на русском языке - русификация (и хелп). язк определяется по системным установкам ОС: если у вас системный язык не русский, то интерфейс будет английским. но можно сделать перевод
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
ОС у меня русифицирована. Другими не пользуюсь по незнанию забугорного… заметил тенденцию у программистов – всё чаще и чаще (по сравнению с былыми временами), все надписи в своих программах пишут на русском… Вам без разницы, а мне приятно!
2 раза читал и так и не вьхал о чем тут... если мало билофского криврно гипертерминала есть putty..
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
2 раза читал и так и не вьхал о чем тут... если мало билофского криврно гипертерминала есть putty..
я ваши сообщения читал 100500 раз - и ни разу не понял, что вы пишите. не всем дано...
Добавлено after 1 hour 25 minutes 14 seconds: выкладываю первую бета-версию моего терминала: https://cloud.mail.ru/public/Audn%2F95Vd3Xz1j скачивать можно только один экзешник, или все подряд, сохраня структуру вложенности папок.
сам по себе экзешник будет работать на английском, функций минимум, но не сильно мало. в папке Locale - русификация терминала. в папке P l u g i n s - дополнительные модули, расширяющие возможности. у плагинов своя русификация внутри их папки, там же и справочные файлы к ним. плагины можно удалить в любой момент (когда программа не запущена, само собой) - как все, так и частями: в программе просто пропадет ряд функций. потом можно снова добавить.
хелпы частично есть к плагинам и к самому терминалу, но не пинайте сильно - подробностей в справке немного... кое-что даже не совсем соответствует действительности, все еще в процессе. если что-то не понятно - нажмите F1 и почитайте, и только потом возмущайтесь
программа сохраняет свои настройки в папке профиля пользователя AppData\Local\FTerm - это чтобы вручную вычистить остатки после экспериментов.
буду рад, если кто-нибудь протестирует и сообщит, что так, что не так, что надо улучшать, что добавлять и т.п. как по мне - так все пучком, а как со стороны...
главное: русские символы (как и любые не-ангийские) в терминале кодируются при помощи UTF8, поэтому возможны траблы, если при передаче что-то пойдет не так: любая не-английская буква в UTF8 может быть из нескольких байтов, и если часть байтов не дойдет - будет показано что-то странное (но чаще всего - знак вопроса). зато можно с китайцами переписываться
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Обновил слегка свою программу, перезалил на ту же ссылку. Устранил ряд ошибок, добавил вывод на печать, добавил возможность прервать отправку большого текста из буфера обмена. Добавил в настройках опцию "сделать красиво" На этом свою работу считаю завершенной.
Добавлено after 46 minutes 45 seconds: Соврал: пока не завершена... обнаружил, что есть еще баги... что ж, буду отлавливать...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения