У меня есть тестируемое устройство (DUT), и я измеряю его энергопотребление с помощью регистратора данных Power Analyzer, используя данные из /dev/ttyUSB0
.
Проблема в том, что DUT теперь удаленно с рабочей станции, с которой я собирал данные, но в той же сети мне нужно использовать второй компьютер, который напрямую подключен через USB к Power Anlayzer, в качестве своего рода USB-прокси и SSH создать своеобразную символическую ссылку на измерительной машине USB «прокси» машины.
Учитывая вышеприведенную диаграмму, как 1- й ПК может получить доступ /dev/ttyUSB0
к 2- му ПК, который подключен напрямую, таким образом, что программа, считывающая поток с 1- го ПК, не заметит разницы?
источник
Вы можете использовать комбинацию
ser2net
иsocat
. Например, у меня есть робот, подключенный к Raspberry Pi через последовательный порт. Raspberry Pi подключен к моей локальной сети (эквивалентно вашему второму ПК). И мой ноутбук подключен к той же локальной сети (аналог вашего первого компьютера). Затем я использую ser2net для переадресации последовательного порта через TCP со 2-го ПК и создания файла последовательного прокси-устройстваsocat
на 1-м ПК.Эта настройка также может работать для вас. Предложенное решение:
Шаг 1: Установите пакет ser2net на ваш второй компьютер (следуя вашей схеме)
sudo apt-get install ser2net
ser2net прослушивает порт TCP и может передавать данные в последовательный порт через порт TCP и обратно. Вы можете установить, для каких последовательных портов вы хотите создать «прокси», через его файл конфигурации
/etc/ser2net.conf
.Шаг 2: настроить ser2net на втором ПК
Например, если у вас есть устройство, подключенное к сети
/dev/ttyACM0
со скоростью передачи данных115200
и вы хотите обслуживать его через локальный порт 3333, вы можете добавить следующую строку в/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
Создав файл конфигурации, запустите ser2net, запустив его на втором ПК:
ser2net
или (если он уже запущен, просто перезапустите его, как показано ниже)
/etc/init.d/ser2net restart
Одна важная вещь здесь - опция remctl. Это позволяет клиентской стороне (1-й компьютер на диаграмме) подключаться к устройству и свободно выбирать параметры последовательного подключения. Я думаю, что таким образом последовательная связь полностью прозрачна с точки зрения рабочей области сбора данных. Подробнее смотрите здесь .
Шаг 3: Настройте файл последовательного прокси-устройства на рабочей станции сбора данных (1-й компьютер)
(если у вас нет соцата, то
sudo apt-get install socat
)Наконец, в терминале на 1-м ПК давайте
socat
создадим последовательный порт прокси, который будет прослушивать порт tcp:socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
Где, в этом примере
ip=<2nd-PC-IP-address>
иport=3333
(или что вы выбрали при настройке/etc/ser2net.conf
на втором ПК).Шаг 4. Подключитесь к MyProxySerialPort
Теперь вы сможете открыть последовательное соединение с устройством, расположенным на
$HOME/MyProxySerialPort
1-м ПК.В этом блоге также есть дополнительная информация об этой настройке: http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/
источник
В ядрах Linux, использующих символическую ссылку из / dev / bus / usb / BUS_ID / DEV_ID в / dev / char / MAJOR: MINOR socat не может открыть такие устройства из-за неуместной ошибки IOCTL!
Так что, похоже, этот подход не работает напрямую на USB-устройствах.
Я попробовал usbip, который является более близкой реализацией, но поддерживается только на старых ядрах.
Поскольку мое решение касалось считывателей карт, подключенных через pcsc-lite, было лучшее решение, использующее переменную окружения для клиентов libpcsclite .
Таким образом, может быть указан другой сокет домена unix. И этот можно переслать в гнездо устройства чтения карт на удаленном хосте с помощью socat :
Запустите это на хосте, чтобы заменить кард-ридер
запустите это на хосте CARD_READER_HOST с подключенным устройством чтения карт pcsc
источник
/dev/ttyUSB0
анализаторе мощности, который не использует PCSCLITE. Если вы хотели бы опубликовать эту информацию, это было бы лучше, как отдельный вопрос. Вам разрешается и рекомендуется размещать вопросы по теме, на которые у вас есть немедленный ответ.:
характера в пути? Страница man socat, раздел «ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ АДРЕСА», содержит параграф о том, как экранировать символы (начиная с версии 1.5.0).