Puede usar una combinación de ser2net
y socat
. Por ejemplo, tengo un robot conectado a una frambuesa pi a través de un puerto serie. El raspberry pi está conectado a mi red local (equivalente a su segunda PC). Y mi computadora portátil está conectada a la misma red local (equivalente a su primera PC). Luego uso ser2net para reenviar el puerto serie a través de TCP desde la 2da PC, y creo un archivo de dispositivo serial proxy usando socat
en la 1ra PC.
Esta configuración también puede funcionar para usted. Solución propuesta:
Paso 1: Instale el paquete ser2net en su 2da PC (siguiendo su diagrama)
sudo apt-get install ser2net
ser2net escucha un puerto TCP y puede canalizar datos hacia y desde un puerto serie a través del puerto TCP. Puede configurar para qué puertos serie desea crear "proxies" a través de su archivo de configuración /etc/ser2net.conf
.
Paso 2: configurar ser2net en la 2da PC
Por ejemplo, si tiene un dispositivo conectado /dev/ttyACM0
con velocidad de transmisión 115200
y desea servirlo desde el puerto local 3333, puede agregar la siguiente línea a/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
Una vez creado el archivo de configuración, inicie ser2net ejecutándose en la segunda PC:
ser2net
o (si ya se está ejecutando, simplemente reinícielo como se muestra a continuación)
/etc/init.d/ser2net restart
Una cosa importante aquí es la opción remctl. Permite que el lado del cliente (primera PC en su diagrama) se conecte al dispositivo y elija las opciones de conexión en serie libremente. Creo que de esta manera la comunicación en serie es completamente transparente desde la perspectiva del espacio de trabajo de recopilación de datos. Ver más detalles aquí .
Paso 3: configure el archivo del dispositivo serie proxy en la estación de trabajo de recopilación de datos (primera PC)
(si no tienes socat, entonces sudo apt-get install socat
)
Finalmente, en un terminal en la primera PC, socat
creemos un puerto serie proxy que escuche desde el puerto tcp:
socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
Dónde, en este ejemplo ip=<2nd-PC-IP-address>
y port=3333
(o lo que elija al configurar /etc/ser2net.conf
en la 2da PC).
Paso 4: Conéctese a MyProxySerialPort
Ahora debería poder abrir una conexión en serie normalmente al dispositivo ubicado en $HOME/MyProxySerialPort
la primera PC.
Esta publicación de blog también tiene más información sobre esta configuración: http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/