Программа (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 давал в предыдущих топиках, читайте.Успехов!