Вы можете использовать комбинацию 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/