Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 16:02:44

ARV, зачем дурацкие подозрительные файлообменники, когда есть сосфорж, гитхаб, битбакет, гитлаб и т.д., и т.п.?

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 16:37:23

подозрительность признак паранойи, "облако" Mail.ru тут совсем ни при чем

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 17:09:23

ARV, так где исходники-то? ☺

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 17:49:23

Может знаете какие-нибудь тренажеры

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 17:59:47

Eddy_Em писал(а):ARV, так где исходники-то? ☺
а я что-либо говорил про исходники? я говорил про описание.
исходников нет и не будет, и вам они точно не нужны - я пишу на free pascal, что наверняка вызывает у вас рвоту - зачем я буду вас мучить?

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 18:20:55

ARV, так мне они не нужны, я ж в линуксе работаю, там все нормально с этим делом. UNIX-way — классная штука!
А вот каким-нибудь вендузятникам эти исходники вполне могут пригодиться.
Да и исходники документации удобней хранить в VCS, чтобы если что легко было откатиться.

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 18:38:44

Eddy_Em писал(а):так мне они не нужны
слава богу, рад за вас. может, тогда вы сосредоточитесь на теме обсуждения? мнение профессионала, занимающегося отладкой последовательного обмена, мне не помешало бы.

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 18:49:51

ARV, в большинстве случаев хватает обычного текстового вывода. Но все равно, хоть и есть стандартный screen, я себе тоже терминальный клиент написал, чтобы повторные команды можно было просто клавишами курсора вытаскивать из истории readline. Ну и ncurses использую для разделения входных и выходных потоков.
Что до обработки, то обычно для этого использую пайпы в sed/grep/awk. Если нужно бинарный протокол глянуть, отправляю пайп в hexdump. Но бинарные протоколы крайне редко используются, поэтому простейшую автоматизацию вообще зачастую делаю на обычных баш-скриптах (скажем, нужно с одного компьютера включить аппаратуру, подключенную к другому, запускаю скрипт, который по ssh на другом компе отправляет нужные команды в /dev/ttySx или /dev/ttyUSBx и выполняет соответствующие действия).
Для анализа чужих протоколов я когда-то писал сниффер, который с одного канала читает Rx, с другого Tx и все пишет в один лог-файл, ставя временнЫе метки. Удобно подобный анализатор на STM'ке запилить, чтобы одно устройство было к USB подключено, а эмуляторов порта фактически несколько (на STM32F103 или STM32F0x2 можно сделать до семи каналов USB<>UART).

Re: Терминал моей мечты (COM-порт)

Пт фев 05, 2021 19:14:33

Eddy_Em, вы могли бы сэкономить уйму своего ценного времени, если бы хотя бы изредка обращали своё внимание на что-то иное, нежели ваше собственное мнение.

в частности, если бы вы прочли моё описание моей программы, вы бы неизбежно пришли к выводу, что писать о том, как при помощи своих скриптов вы решаете какие-то частные проблемки (не задумывась о том, кто еще способен подобное сотворить на питоне или баше) ни к чему, ибо едва ли не на первой странице моего текста я написал :
В этом случае приходится пользоваться услугами программиста, который создает специализированные программы, реализующие недостающие возможности имеющихся «терминалов». Но, разумеется, такой поход могут позволить себе далеко не все.


и, к слову, мне очень хотелось бы увидеть, как вы "стандартными для линуха" средствами (пайпами там или чем еще) реализуете то, что я описал на 30-й странице моего документа...

Добавлено after 5 minutes 33 seconds:
Eddy_Em писал(а):я когда-то писал сниффер, который с одного канала читает Rx, с другого Tx и все пишет в один лог-файл, ставя временнЫе метки.
пользусь моей программой вы могли бы и не писать свой сниффер, ибо описанное делается буквально в три клика мышкой... пока что я не реализовал отдельный блок записи в файл, ибо это несложно и можно сделать потом, но уже сейчас все можно видеть в блоке "Консоль", а содержимое этого блока можно сохранять в файл.

Re: Терминал моей мечты (COM-порт)

Вт фев 09, 2021 14:34:11

обновил описание, добавил релиз проекта (в архиве - распаковать в любую папку, запускать configurator.exe): https://cloud.mail.ru/public/4tPD%2FuyfBDkHnH

в принципе, можно пользоваться...

Re: Терминал моей мечты (COM-порт)

Ср фев 10, 2021 10:41:25

снова обновил файлы: добавил последний важный блок для записи данных в файл и скорректировал описание.

Re: Терминал моей мечты (COM-порт)

Пт фев 12, 2021 16:10:43

еще одно обновление: исправил ошибки и заменил фильтр Digitizer на более универсальный Format. скорректировал описание.

Re: Терминал моей мечты (COM-порт)

Ср фев 17, 2021 14:45:18

И снова обновил файлы: исправил ошибки, сделал небольшие улучшения, скорректировал описание. Ссылка та же самая: https://cloud.mail.ru/public/4tPD%2FuyfBDkHnH

Re: Терминал моей мечты (COM-порт)

Чт фев 18, 2021 17:05:26

и снова обновление: https://cloud.mail.ru/public/4tPD/uyfBDkHnH
как обычно, исправление ошибок, уточнение описания...
но есть и новенькое: реализовал "библиотеку" пресетов, т.е. теперь можно удачно сделанные заготовки сохранять впрок. например, сделал настройки блока CRC для расчета CRC по алгоритму Modbus - для бинарного и текстового вариантов протокола, так что теперь можно пользоваться - архив с этой "библиотекой" прилагаю - желающим поиграться.

печально, что никого не удается заинтересовать... :cry:
Вложения
modbus_crc.zip
(334 байт) Скачиваний: 149

Re: Терминал моей мечты (COM-порт)

Вс фев 21, 2021 22:27:25

пытаюсь тестировать, как моя программа может победить Modbus...
сделал тестовую конфигурацию:
Изображение
посылаю команду 1-му устройству - прочесть 2 аналоговых входа, начиная с нулевогоо адреса:
\x01\x04\x00\x00\x00\x02\x71\xcb
вижу в консоли такое:
Изображение

вроде работает...

Добавлено after 1 hour 31 minute 43 seconds:
а вот так можно изменить конфигурацию, чтобы видеть значения из ModBus-а в более привычном виде - в вольтах и амперах, например:
Изображение
при этом в консоли будет такое:
Изображение
а кроме того еще на дисплее будет и такое:
Изображение Изображение
все обновляется каждые 0,5 сек, что видно по содержимому консоли

Добавлено after 2 hours 29 minutes 36 seconds:
вот и Modbus-TCP сделал:
Изображение
Вложения
modbus-tcp.png
(16.58 KiB) Скачиваний: 505
amps.png
(11.98 KiB) Скачиваний: 518
volt.png
(15.24 KiB) Скачиваний: 516
cons.png
(52.55 KiB) Скачиваний: 513
modbus3.png
(13.46 KiB) Скачиваний: 2056
modbus.png
(18.36 KiB) Скачиваний: 2062
modbus2.png
(43.6 KiB) Скачиваний: 526

Re: Терминал моей мечты (COM-порт)

Чт мар 04, 2021 05:06:24

сейчас пользую TerminalTMB_v2.25
удобен тем, что могу HEX сообщения посылать в таком формате:
FE 1C F5 01 01 1E 5B 59 00 00 5F C3 4F 3B 69 2E 0F BD DB 33 22 40 EF 8A 4A 3A 7A FF 74 B9 51 37 06 BA 33 67
без всяких "0x" и ";"

до этого пробовал:
HyperTerminal
Termit
PuTTY
Realterm
Встроенный терминал в ардуино...
Terminal v1.9b by Bray
КомПорт Толкин

и ничего из этого не понравилось
в основном пользовался КомПорт Толкин, но и он не хотел воспринимать HEX в том формате, что я выше привел.
приходилось что то править ручками

В TerminalTMB_v2.25 - есть ограничение на количество символов в строке ввода
Может конечно там есть какая то функция, что бы подключать фалы - но я пока не разобрался..

Идеальным для меня будет подключение txt-файла, в котором можно без ограничения ( ну или очень большого объема )
записывать пакеты для передачи ( дабы имитировать поток данных )

Обязательным вижу возможность юзать все доступные кодировки
и в любом формате ( каком душе угодно )

----------

Очень удобным считаю, распознавание некоторых протоколов
Или хотя бы умение с ними работать..
Например эмуляция каких то протоколов..

различные CRC тоже не помешало бы...

Re: Терминал моей мечты (COM-порт)

Чт мар 04, 2021 08:46:48

uwrtey писал(а):HEX сообщения посылать в таком формате:
FE 1C F5 01 01 1E 5B 59
эту возможность я почти реализовал, но, поскольку лично мне она не очень нужна (меня и \x0А не напрягает), не сильно тороплюсь.
uwrtey писал(а):подключение txt-файла, в котором можно без ограничения ( ну или очень большого объема )
записывать пакеты для передачи ( дабы имитировать поток данных )
передача файлов реализована и у меня, но о том, чтобы данные файла преобразовывать в нужные пакеты - это надо делать фильтрами самостоятельно, если, конечно, в файле данные не в том формате, что надо передавать.
uwrtey писал(а):возможность юзать все доступные кодировки
и в любом формате ( каком душе угодно )
а вот с этим я чисто логически не понимаю, как делать. де-факто в винде и линухе поддерживается нативно UTF8, а все прочее, хоть и возможно, но требует усилий. соответственно, я пришел к мнению, что UTF8 по умолчанию устроит всех. и, хотя принципиально реализовать это не проблема (в виде фильтра для смены кодировки), делать не охота...
uwrtey писал(а): распознавание некоторых протоколов
что такое "распознавание"?
uwrtey писал(а):умение с ними работать
что такое "умение работать"? приходящий пакет протокола разобрать на части и показать их поотдельности или выборочно только нужные? если вы знаете формат пакета, это сделать можно уже сейчас. если вы не знаете формат пакета - кто за вас это будет делать?!
uwrtey писал(а):эмуляция каких то протоколов
какая такая "эмуляция"? вы можете ввести данные, добавить к ним (автоматически, фильтрами!) необходимые сопроводительные поля (адрес, длину, CRC и т.п., что требует протокол) и выдать его в порт - это не эмуляция?
uwrtey писал(а):различные CRC тоже не помешало бы
у меня реализована возможность ЛЮБЫХ CRC в 8, 16 и 32 бита - подчеркиваю: ЛЮБЫХ. вам должен быть известен полином и другие параметры CRC - и все, моя программа поддержит этот алгоритм.

похоже, вы не читали описание моей программы... а жаль. потому что ваши вопросы-предложения оказываются неконструктивными от незнания уже готовых функций и возможностей программы...

Добавлено after 17 minutes 52 seconds:
бегло почитал о программе TerminalTMB_v2.25, и могу сказать, что по функционалу она не дотягивает даже до предыдущего моего терминала FTerm (в этой ветке ранее есть ссылка). кстати, в FTerm ввод данных в виде "0f ff" реализован был :)

Re: Терминал моей мечты (COM-порт)

Чт мар 04, 2021 15:38:43

ARV писал(а):эту возможность я почти реализовал, но, поскольку лично мне она не очень нужна (меня и \x0А не напрягает), не сильно тороплюсь.

это сейчас для меня на первом месте. ( требует текущий проект )

ARV писал(а):это надо делать фильтрами самостоятельно
не буду повторяться

ARV писал(а):а вот с этим я чисто логически не понимаю, как делать

В прошлом моем проекте очень надо было. ну прям очень.. Тогда решил вопрос одним из перечисленных мною терминалов - увы не помню каким.

ARV писал(а):что такое "распознавание"?
Ну знаете - на подобии логического анализатора. Подслушивает поток и сам! определяет (предполагает) на какое скорости идет обмен и что за формат данных

ARV писал(а):если вы знаете формат пакета, это сделать можно уже сейчас. если вы не знаете формат пакета - кто за вас это будет делать?!
Сейчас я делаю это вручную. Но если бы предыдущий пункт был реализован, но в этом пункте выделялись бы пакеты отдельно. И можно было бы отдельно смотреть содержимое пакетов.. В идеале еще и расшифровывать - но на это уйдет очень много времени - потребуется собрать очень большую библиотеку.

ARV писал(а):и выдать его в порт - это не эмуляция?
сойдет и так

ARV писал(а):у меня реализована возможность ЛЮБЫХ CRC
и так сойдет, но удобнее выбрать из списка ( и потом видеть именно выбрано, и это исключит возможность ошибки )

ARV писал(а):похоже, вы не читали описание моей программы... а жаль. потому что ваши вопросы-предложения оказываются неконструктивными от незнания уже готовых функций и возможностей программы...

Каюсь, читал очень бегло...

ARV писал(а):бегло почитал о программе TerminalTMB_v2.25,

На данный момент меня удовлетворяет только она...

ПС: я вовсе не настаиваю. Автор - Вы. Возможно мои предложения вовсе бессмыслены или узконаправлены...

Re: Терминал моей мечты (COM-порт)

Чт мар 04, 2021 16:18:38

Ваши пожелания просты: вы хотите, чтобы вам был предоставлен инструмент, который бы все делал за вас. Я же стараюсь сделать швейцарский армейский нож, с помощью которого каждый может сам сделать, что угодно. Т.е. я делаю конструктор, а вам нужен робот.

Я сделал поддержку любых алгоритмов CRC, т.е. всех, что есть и всех, что будут, на сегодня их стандартных около сотни, не считая нестандартных. И что же, я должен сам все эти алгоритмы реализовывать, чтобы у вас был список, хотя потребуется вам только один или два варианта из этого списка?! Вбить полином и пару опций для вас неудобство, а сделать сто напрасных вариантов для меня это как бы пустячок...

Что касается смены кодировок, то мне даже тестировать не на чем, в моем распоряжении только utf8 и все... Потому я и не понимаю, что нужно и как нужно. Дайте примеры, что ли...

Re: Терминал моей мечты (COM-порт)

Вт мар 09, 2021 10:12:41

Я наконец-то утянул домой терминал, который активно используется у нас на работе. Может, понравятся какие-нить идеи.
Итак, весь функционал настраивается через .ini-файл (хотя .xml наверное было бы нагляднее):
— параметры обмена;
— приём;
— передача.
С параметрами, думаю, понятно: скорость, чётность, бит данных, стоповых бит.
Приём: можно настроить в каком формате выводить и как интерпретировать принятые байты (int, single, double...), какой длины сообщение ожидать, хидер, трейлер.
Передача: можно добавить кнопки, по нажатию на которые будут отсылаться какие-то данные. В том числе переменные данные, которые каждый раз запрашиваются у пользователя.
По желанию вся история обмена пишется в лог-файл.
Изображение Изображение

Также планирую утянуть терминал для вывода графиков, который писался чисто под мои хотелки :)
Ответить