Программа (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 давал в предыдущих топиках, читайте.Успехов!
  • +1
  • 26 мая 2013, 10:54
  • alexhi
  • 1
Файлы в топике: TCP_SerPort.zip

Комментарии (17)

RSS свернуть / развернуть
play.google.com/store/apps/details?id=ru.shipov.termusb&feature=search_result#?t=W251bGwsMSwxLDEsInJ1LnNoaXBvdi50ZXJtdXNiIl0.
да ещё и точка под а_хрифом…
ну нельзя так
play.google.com/store/apps/details?id=ru.shipov.termusb
?
что куда как правильнее
0
Сорри поправил, :)
0
В брендмауре на PC открыть порт 3333!!!
Неплохо бы предусмотреть настройку порта, через который работает (если VSP это поддерживает).

Ну и ссылку на саму программу ты дать забыл. Хотя я ее и на гуглплее не нашел.
0
  • avatar
  • Vga
  • 26 мая 2013, 15:38
Картинка настроики VSP
Сам файл APK в TCP_SerPort.zip в конце топика, жаль что здесь не разрешают грузить с расширением apk.С тела было бы удобнее установку делать.
На Play я ее не выкладывал, на Play у меня программа терминал для ком порта ANDROID (через USB) TermUSB ей можно проверить что у Вас на Андроиде >=3.1 нормально работает ком порт.
0
А, ке-ке, теперь я аттач проморгал.
Картинка настроики VSP
Здесь настройка порта есть. Неплохо бы и в TCP_SerPort ее добавить.
0
Да, установку порта TCP введу.И тут еще посоветовали кнопку тест ввести которая при установленном соединении посылает по TCP и в COM порт что-то типа Hello World для проверки.
0
usbip
на счёт андроида не уверен (прикрутить может и можно, но точно не без плясок с бубном), а вот любой роутер с usb hostом и openwrt позволит пробросить любое usb устройство по сети.
+2
  • avatar
  • _pv
  • 26 мая 2013, 21:59
Подключение переходников USB<> на базе чипов FTDI,CP2102 и PL2303 начиная с версии 3.1 на Андроиде поддерживается уже на уровне API.Я Тут писал как это сделать.
Бывают траблы только в том что на некоторых устройствах китайцы зачем-то отключают USB HARDWARE.Но это легко лечится.Ну а перебросить данные с TCP на СОМ и обратно не проблема.Да и процы на Андроид помощнее чем на роутерах.И тачскрин бонус :)
0
зато usbip теоретически позволяет пробросить не только usb-serial, а вообще любое усб устройство.
и роутер может быть размером со спичечный коробок и стоить 15$. а для передачи full speed usb потока в 12мБит мозгов особо не надо.
+1
и роутер может быть размером со спичечный коробок и стоить 15$
Где такие?
0
14$:
www.aliexpress.com/item/Mini-Portable-2in1-150Mbps-3G-WIFI-Mobile-Wireless-USB-Router-Hotspot-New-For-iPhone-Laptop-PC/746439691.html
он же с батарейкой на 1.8Ач, 18$:
www.aliexpress.com/item/Hame-MPR-A1-3-in-1-3G-Wireless-Router-Mobile-power-supply-MINI-Wireless-3G-WIFI/711786264.html
ну и tplink 703n за 20$
www.aliexpress.com/item/New-Portable-Mini-TP-LINK-TL-WR703N-150M-Wireless-3G-Router-150Mbps-WR703N-Pocket-size/642486989.html
для последнего с openwrt всё хорошо, с первыми двумя не очень, но пилят, какие-то патчи есть сам пока еще не пробовал.
+1
Интересные штуки. А какой там чип используется?
0
MIPS,
В первых двух rt5350t от ralink, про tplink по ссылке на openwrt все внутренности описаны
0
Для андройда такое приложение выходит только экраном. Возможэность не просто пробросить, но ещё и «подслушивать» поток. Как в начальной постановке задачи.
Если же экран не требуется, то как уже отмечалось — роутер — дешевле, проще и меньше ручек шаловливых потыкать в экранцик да сломать что-то «ничего не трогая». В плане автономности — тот же HAME идет с акком.
А вот если этой программе добавить возможность настройки «своего экрана» (без установки среды разработки под Andriod), на каком-нибудь скриптовом язцыке (Lua, JavaScript — по кроссплатформенному гуи на последнем был пост на хабре недавнор) — конкурентов бы не было.
0
Я тут видел по телеку как по моему корейцы делают следующее, на тележку с моторчиками (робот) ставят андроид телефон и управляют им с компа.Так вот судя по тому что из телефона торчал хвостик USB OTG подключенный к платке с контроллером, думаю что там примерно такая схема.Видио с камеры телефона потоком на комп, а управление контроллером моторчиками и датчиками по сети через такую примерно программу редиректор как моя.
0
Есть такое дело. Андройд известен такими решениями. Ещё было вместо телефона планшет, и систему «телеприсутствия» получили.
А есть аналогичные системы на роутерах (как бы не с дир-320 началось). Подклчалалась вебка да ардуино и получали такого робота. Роутерное решение обычно выходит дешевле и «проще».
И та и другая аппаратные платформы имеют право на существование. Я при формировании ответа исходил из версии «нет ничего», но выбор зачастую строится исходя из того, что есть. Есть телефон — зачем покупать роутер? Вы пополнили возможности (решения для) андройдовских систем, за что Вам спасибо.
0
Да нет сейчас куча TV-BOX без экрана на Андроид. Например
MK802если поставить туда VNC сервер то можно и без экрана рулить.Размер у них совсем небольшой да и цены вполне.Насчет скриптового языка дельно.Подумаю.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.