Кросс-платформенный терминал - SerIO

«SerIO» это кросс-платформенное приложение терминал, предназначено для организации связи и обмена данными через последовательный порт между ПК и различными электронными модулями или устройствами. Приложение ориентировано на любителей и специалистов в области разработки и конструирования различных электронных устройств и систем. Все элементы управления и контроля расположены в одном окне и оптимизированы для максимально удобной работы оператора. Передаваемые данные могут иметь формат строки ASCII символов, шестнадцатеричных значений, паттернов данных, пользовательских файлов и таблицы команд назначенных на функциональные клавиши F1 — F12. Доступна функция передачи данных в порт по таймеру, с заданным источником и интервалом времени. Принимаемые данные могут отображаться в символьном виде, шестнадцатеричном, двоичном и графическом (осциллограмма или диаграмма). Используя профили, можно оперативно изменять настройки программы под различные задачи и оборудование. Количество создаваемых профилей не ограничено.

Данное приложение является продуктом моей миграции с ОС Windows на Linux, а так же перехода c «MS Visual Studio» на кросс-платформенную среду программирования «Open Source QT Creator». Для освоения новой среды программирования, решил сразу начать с какого ни будь полезного проекта. Выбор пал на создание удобной, в моём понимании, терминальной программы. К тому же, реально удобных и функциональных терминальных программ, пригодных для работы в сфере электроники, практически нет, или я о них просто не знаю… Интерфейс программы англоязычный, вся терминология стандартная для такого плана приложений. К тому же, это гарантия того что программа будет корректно отображаться в любой языковой локализации.

Приложение «SerIO» это свободное программное обеспечение, распространяется под лицензией GNU GPLv3 или выше, без каких либо гарантий. Скомпилировано статически, включает все необходимые зависимости (библиотеки) для своей работы.

Главное окно программы

Примеры отображения принимаемых данных в графическом виде



Инструкция: SerIO-201020-manual-RU-Rev1.pdf

ОС Linux (x64): Ubuntu 20, Mint 20, Manjaro 20, Fedora 32
1. Скачать архивный файл SerIO_201020.tar.xz (универсальный пакет)
2. Извлечь содержимое архива, папку SerIO, в домашнюю папку пользователя /home/user/ (user — это ваше имя пользователя)
3. Выполнить инструкции описанные в файле /home/user/SerIO/ReadMy.txt

ОС Windows (x32x64): 7, 8, 10
SerIO_201020.exe

Исходный проект: SerIO_source_201020.7z
Перед тем как использовать исходный код, ознакомьтесь с условиями лицензии GNU GPLv3.

COM Port Terminal

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



Читать дальше

Прокачиваем командную строку под Mac

Header

Всем привет.

Я использую Mac для разработки под iOS и под микроконтроллеры (PIC, ARM Cortex-M).
Когда погружаешься в программирование, то жизнь без командной строки становится сложно представить.
Приложение «Терминал» обладает необходимой функциональностью, но работу с командно строкой можно заметно упростить, используя другие инструменты.

Для тех, кто хочет прокачать свой терминал, но почему-то пока еще не сделал этого, добро пожаловать под кат)


Читать дальше

QThread + QSerialPort! Крутим в отдельном потоке работу с СOM портом ( продолжение). + чучуть протокола DCON

Продолжение предыдущего моего топика о работе с Qt
Так и не дошли руки (стыдно мне очень перед тов. Alatar ) доработать его.
Задача: Организовать стабильный обмен данными (важен сам прием) дописать немножко терминалку. Получить критику и подзатыльники(если будет за что).
Посылка с устройства идет байтами и не всегда это неразрывный поток. В большинстве случаев между байтами проскакивают паузы. По этой причине нужно немножко подзаморочится… Приведенный в предыдущем моем посте способ приема – банальная подпорка палкой.


Читать дальше
  • +1
  • 26 марта 2014, 18:09
  • kalik
  • 1

QThread + QSerialPort! Крутим в отдельном потоке работу с СOM портом.

В одном из своих проектов столкнулся с небольшой проблемкой: задача заключается в том, что нужно работать с тремя разными портами одновременно(если быть точнее с двумя, а при настройке и калибровке оборудования 3мя), а самая большая опа в том, что все они общаются по разным протоколам… да в придачу два (в некоторых случаях 3) устройство висит на RS485 с протоколом DCON, это первый порт! Одно устройство на RS232 с жутким самопальным протоколом внеочередной переделкой Wake. И настроечно-калибровочное подключается также по RS232-му, протокол неизвестен (занимаюсь расшифровкой)… Ну это все прелюдия и ОФФТОП…
В такой задаче ИМХО целесообразно крутить работу с каждым портом в отдельном потоке. Вот на этом месте и начались все проблемы… Проведя жуткоскучный и мучительный лит. поиск «ГУГЛ в помощь» результаты были весьма и весьма неоднозначны. Мои подзатыльники самому себе и хочу здесь привести на примере создания простейшей ГУЕвины терминалки с использованием QserialPort и Qthread. Надеюсь топик поможет многим, да и мне возможность получить дополнительных подзатыльников=)))


Читать дальше
  • +3
  • 16 февраля 2014, 19:27
  • kalik
  • 1

Кросс-платформенный терминал

На написание сподвигло отсутствие вменяемых альтернатив с embedded-направленностью (работа на уровне байтов и т.д.) под Linux.



Читать дальше

Программа (TCP_SerPort) редиректор TCP<> COM порт под Android



Обратился ко мне один клиент-медик со следующим вопросом.У него есть оборудование (медицинский прибор) которое представляет из себя контроллер (на AVR ) c USB выходом (FTDI FT232RL) и компьютер с программой управления.Через программу управления заливаются данные в контроллер и снимаются некие показания.Прибор вообщем не ответственный, но нужный.Контроллер имеет батарейное питание.Так как в медицине жесткие требования к безопасности (4KV и т.д) то приходится часто отключать прибор, подсоединять к PC и т.д короче «гемор».Все это еще осложняется тем, что программа достаточно навороченная и «сертифицирована» у медиков и как раз тот «классический» вариант когда программиста верхнего уровня уже не найти ( или уехал/уволился или спился :) Также были пожелания что бы пациенту выводились некоторые данные на экран и была бы возможность по по WIFI считывать изменять данные.Вот такие «хотелки».
Мною была предложена и сделана следующая схема.
Берем Андроид планшет c USB HOST, подключаем к нему через кабель USB-OTG прибор.На планшете включаем WIFI точку доступа к которому подключается по WIFi ноутбук.На компьютере запускаем эту программу
Virtual Serial Port
которая создает виртуальный COM порт в системе и перенаправляет данные по сети на Андроид.А на Андроид пишем программу-редиректор TCP<>COM
Программа принимает данные с сети (ТСP) и перенаправляет их через СОМ порт подключенный к Андроид на различные устройства.Поддерживаются переходники USB<->COM на чипах FT232RL(FTDI), CP2102(Silicon Lab), PL2303(PROLIFIC).
Андроид должен иметь USB HOST и версию не ниже 3.1
Запускаем медицинскую программу которая работает через виртуальный СОМ по WIFI сети с контроллером.Все работает, все довольны :) На экране планшета я также отображаю некоторые данные как бонус :) и кнопки старт/стоп для персонала.
Думаю редиректор можно использовать и в других случаях.Написал порт программы убрав лишнее.Кому интересно пробуйте :) Где это можно использовать?
Допустим у Вас есть устройство (например теплосчетчик или микроконтроллер) который имеет интерфейс RS232 или USB и работает напрямую с компьютером.Теперь Вам надо получать/управлять им через сеть или Интернет.Часто бывает что переписать программу на компьютере на сетевую нет возможности и переделывать контроллер на сетевой тоже часто не просто.
Запускаем программу TCP_SerPort на Андроиде.В программе VSP на компьютере указываем IP и порт(3333) Андроид устройства.Запускаем программу которая работает с подключенным оборудованием на PC и подключаемся к виртуальному СОМ порту.Все.Работаем с устройством по сети.
Софтовый аналог программы замечательная утилита LINUX ser2net.Есть программы редиректоры под PC, но они в основном платные и на обоих сторонах должны быть компьютеры, что часто неудобно.
Есть так-же «железные» решения типа Tibbo, там тоже свои нюансы.
Плюс использования Андроид в том что небольшое/недорогое, сразу имеем WI_FI и можно еще организовать обработку, отображение и запись данных. Редиректор также можно использовать в робототехнике когда андроид устройство стоит на тележке, а рулим удалено с PC или другого андроида. Для этого просто пишем клиента к TCP серверу. Можно применять для Ардуино :) (Сейчас налетят хулители :) ) Так-же можно подключать различное торговое оборудование(сканеры, принтеры и т.д)
Программа Вета версия.Делал под свои задачи.В брендмауре на PC открыть порт 3333!!!
При работе с программой следует учитывать задержки которая может вносить сеть и если в программе верхнего уровня используются короткие тайм-ауты (например MODBUS), то могут быть проблемы.
Буду рад если пригодится еще кому то.
Конструктивные замечания/предложения приветствуются.Перед использованием можно проверить работают ли у Вас на устройстве переходники USB<> COM моей программой TermUSB
TermUSB

Если у Вас Андроид >= 3.1 и есть USB HOST и не заработало, внимательно читаем топик
Топик TermUSB
Так-же рекомендую для тестирования программы TCP_SerPort по сети эту утилиту
Hercules UTILITY

Исходники не даю так как ссылки на исходники по работе с ком портом на git давал в предыдущих топиках, читайте.Успехов!

Программа UDP терминал (TermUDP) для Андроид устройств

Вот на досуге написал программу UDP терминал для Андроид устройств (планшеты/телефоны)
01.05.2013
Добавил еще программу TCP терминал.(в конце топика)
Внешний вид:

C ее помощью можно потестировать свои сетевые устройства на микроконтроллерах так и поработать с компами по LAN.
Работать можно по WIFI (роутер), через USB-LAN адаптер или удаленно через 2G/3G
Удобство в том что телефон всегда при себе. Ну почти всегда :)
Программа сделана по внешему виду как моя программа TermUSB (для переходников USB-COM FTDI,CP2102,PROLIFIC)
TermUSB
и позволяет передать/принять на произвольный IP/PORT данные в виде ASCII или HEX
для большинства задач этого вполне достаточно.«Морда» адаптирована под телефоны и планшеты в landscape ориентации.Коротко по работе с программой.При запуске прога проверяет есть ли сетевое подключение и предлагает влючить WIFI/LAN/3G.Если сетевое подключение есть, то она в верхней строке пишет Ваш IP адрес.В полях SERVER IP и Port укажем IP и порт удаленного устройства на которое будем слать/принимать данные.Далее жмем LISTEN и посылаем принимаем данные.В качестве приемной стороны на PC рекомендую использовать бесплатную прогу Hercules Setup utility.
Можно скачать тут:
Hercules.zip
или на сайте производителя.
Hercules UTILITY
Работает без установки
Для отладки и тестирования на PC самое то.В ней открываем вкладку UDP и в полях Module IP пишем Ваш IP (в программе на Андроид верхняя строка you ip adress:.......) и в полях Port и Local Port пишем порт который вы указали в Андроид программе. Жмем кнопку LISTEN и начинаем обмениваться данными по сети.
Если надо передавать данные в HEX коде то в нижней строке ставим «галку» H и набираем 01023FFF и т.д Для приема данных в HEX виде ставим верхнюю «галку» Н
Так-же можно использовать для тестирования утилиту netcat.Кстати попробывал мини чат на ней.У меня внешний IP. На роутере c (OPENWRT или от «ОЛЕГА») запускаем netcat так:
nc -l -u -p5005 и на андроид телефоне (Мегафон) запускаем мой терминал, прописываем внешний адрес роутера.Все. Далее набирая в консоли роутера, получаем данные в телефоне и обратно.Такой мини чат.Телефон работает через 3G.Можно писать на роутере скрипты и рулить чем угодно.
Скачать программу UDP терминала можно тут:
TermUDP

Скачать программу TCP терминала можно тут:
TermTCP

PS. Программу писал под себя, как считаю удобным.Варианты «таких прог полно на Маркете» не принимаю :)Не нужно, не ставьте. Буду рад если кому пригодится.Принимаются и приветствуются замечания/предложения по программе.

Очередная терминалка

Когда я читал ветку, мне захотелось написать аналогичный терминал. Just for lulz. Пару дней это таки заняло, но в результате получилось нечто такое:

Из плюсов по сравнению с прообразом — чуть большая функциональность и возможность распахнуть окошко.
Установки не требует. Описания тоже. Чтобы сохраняло настройки — нужно в меню Store settings выбрать, куда их сохранять. Чтобы удалить сохраненные настройки (деинсталляция, ага) нужно выбрать Store settings -> Nowhere.
Сам терминал (версия 1.1.0.22). Зеркало.
Исходники. Delphi 7, стандартные компоненты.
Терминал 2.0 alpha. Библиотеки для сборки из сырков.
  • +5
  • 07 февраля 2013, 08:59
  • Vga

Ахтунг! Bray Terminal похоже глючит!

дружусь сейчас с памятью AT24xxx по i2c. i2c потрогал тоже первый раз в жизни, так что дебага хватило с головой(третий день вот идет):-) Наткнулся на такие грабли — когда из Брая выстреливаешь достаточно длинный кусок байт(больше 20ти например) или запуливаешь через него из файла — в половине случаев куда-то кушается начальный кусок посылки, причем не байт-два, а добрая половина. Эта хня убила у меня наверное часа полтора лишнего дебага. Подключился через легальный COMPort Toolkit — все вроде бы ОК. Юзаю Брай всю сознательную электронную жизнь, но более ранние проекты не требовали такого объема трафика, несколько байт туда-сюда и все. И ведь вполне возможно, что из-за его глюков я так и недораскурил SD CARD на асме:-) Если кто-то может подтвердить инфу о небезгрешности Брая — дайте знать, буду искать терминалку получше, ибо КомПортТулкитом пользоваться в качестве терминала мерзковато.