Программа (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. Программу писал под себя, как считаю удобным.Варианты «таких прог полно на Маркете» не принимаю :)Не нужно, не ставьте. Буду рад если кому пригодится.Принимаются и приветствуются замечания/предложения по программе.

MiWi, WiFi and SimpliciTi for STM32

Опубликовал проекты для STM32 для TI SimpliciTi, Microchip TCPIP WiFi MRF24WB0MA (ZG2100).
Ссылка
Устройство пока только для проверки — позднее будет в размер WiFi модуля
  • -4
  • 27 июля 2012, 22:36
  • x893

TCP/HTTP и тинька

Решил немного побаловаться и посмотреть насколько смогу ужать свой TCP/IP стек.


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