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 на асме:-) Если кто-то может подтвердить инфу о небезгрешности Брая — дайте знать, буду искать терминалку получше, ибо КомПортТулкитом пользоваться в качестве терминала мерзковато.