Saltar al contenido

¿Cómo puedo configurar un “proxy USB” para /dev/ttyUSB0 en la red?

Este equipo de expertos pasados ciertos días de trabajo y de recopilar de datos, dimos con los datos necesarios, queremos que resulte útil para ti en tu proyecto.

Solución:

socat podría funcionar aquí.

En la segunda PC podrías dejar socat escuchar datos sobre /dev/ttyUSB0 y servirlo en un puerto tcp, por ejemplo:

socat /dev/ttyUSB0,raw,echo=0 tcp-listen:8888,reuseaddr

Luego, en la 1.ª PC, puede conectarse a la 2.ª PC con socat y proporcionar los datos en un pseudo terminal /dev/ttyVUSB0 para su aplicación:

socat PTY,raw,echo=0,link=/dev/ttyVUSB0 tcp::8888

Esto no está probado y socat admite muchas opciones, por lo que es posible que se necesiten ajustes.

Puedes usar una combinación de ser2net y socat. Por ejemplo, tengo un robot conectado a una raspberry pi a través de un puerto serie. La raspberry pi está conectada 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 segunda PC, y creo un archivo de dispositivo serie 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 segunda 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: configure ser2net en la 2da PC

Por ejemplo, si tiene un dispositivo conectado en /dev/ttyACM0 con velocidad de transmisión 115200 y desea servirlo desde el puerto localhost 3333, puede agregar la siguiente línea a /etc/ser2net.conf

3333:raw:0:/dev/ttyACM0:115200,remctl

Una vez que haya creado el archivo de configuración, inicie ser2net ejecutándolo 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 libremente las opciones de conexión en serie. 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 una terminal en la 1ra PC deje socat cree un puerto serie proxy que escuchará desde el puerto tcp:

socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive

Donde, en este ejemplo ip=<2nd-PC-IP-address> y port=3333 (o lo que elijas al configurar /etc/ser2net.conf en la 2ª PC).

Paso 4: Conéctese a MyProxySerialPort

Ahora debería poder abrir una conexión en serie normalmente al dispositivo ubicado en $HOME/MyProxySerialPort en la 1ra 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/

Valoraciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *