ver uso serie serial puertos puerto probar para habilitar comando com1 abiertos linux tcp serial-port

uso - terminal serie linux



Conversión de datos del puerto serie a TCP/IP en un entorno Linux (10)

Necesito obtener datos del puerto serie de un sistema Linux y convertirlos a TCP / IP para enviarlos a un servidor. ¿Es esto difícil de hacer? Tengo experiencia en programación básica pero no mucha experiencia con Linux. ¿Hay alguna aplicación de código abierto que haga esto?


Puede encontrar que Perl o Python son útiles para obtener datos del puerto serie. Para enviar datos al servidor, la solución podría ser fácil si el servidor es (digamos) una aplicación HTTP o incluso una base de datos popular. La solución no sería tan fácil si se trata de una aplicación TCP personalizada / propietaria.


Creo que tu pregunta no está del todo clara. Aquí hay varias respuestas sobre cómo capturar los datos que ingresan al puerto serie de un linux, ¿pero tal vez su problema sea al revés? Si necesita capturar los datos que salen del puerto serie de un linux y enviarlos a un servidor, hay varios pequeños artilugios de hardware que pueden hacer esto, comenzando con el simple servidor de impresión en serie como este [lantronix gizmo] [1]

No, no estoy afiliado a Lantronix de ninguna manera.

[1]: http://www.lantronix.com/device-networking/external-device-servers/mss100.html "


Tropecé con esta pregunta a través de la búsqueda en google por una muy similar (usando el puerto serie en un servidor de un cliente Linux sobre TCP / IP), entonces, aunque esta no es una respuesta a la pregunta original exacta, parte del código podría ser útil para el cartel original, creo:

  • Hacer una caja de linux con un puerto serial escuchar en el puerto TCP para compartir el módem: ser2net
  • Usando este módem "compartido" desde otra estación de trabajo Linux: remtty

Yo tuve el mismo problema. No estoy seguro de las aplicaciones de código abierto, pero he probado la línea de comandos Serial over Ethernet para Linux y ... funciona para mí.

También gracias al juez Maygarden por las instrucciones


He estado luchando con el problema por unos días. El problema para mí se originó con Virtual Box / Ubuntu. Tengo muchos puertos serie USB en mi máquina. Cuando traté de asignar uno de ellos a la máquina virtual, los golpeó a todos, es decir. el host y otras máquinas virtuales ya no pueden usar sus dispositivos seriales USB.

Mi solución es configurar un servidor en serie independiente en una netbook que tengo en el armario.

Intenté ser2net y funcionó poner el puerto serial en el cable, pero remtty no funcionó. Necesito obtener el puerto como tty en la Vm.

Socat funcionó a la perfección. Aquí hay buenas instrucciones: http://www.dest-unreach.org/socat/doc/socat-ttyovertcp.txt


Puede crear una conexión Serial-Over-Lan (SOL) utilizando socat . Se puede utilizar para "reenviar" un ttyS a otra máquina para que aparezca como uno local o puede acceder a él a través de un puerto TCP / IP.


Abra un puerto en su servidor con netcat y comience a escuchar

nc -lvp número de puerto

Y en la máquina estás leyendo el puerto serie, envíalo con netcat como root

nc portnumber de dirección IP </ dev / ttyACM0

Si desea almacenar los datos en el servidor, puede redirigir los datos a un archivo de texto. Primero crea un archivo donde guardas los datos

toque data.txt

Y luego comience a guardar datos

nc -lvp número de puerto> data.txt


todas las herramientas que necesitaría ya están disponibles para usted en la mayoría de las distribuciones modernas de Linux.

Como varios han señalado, puede canalizar los datos de serie a través de netcat. Sin embargo, necesitaría relanzar una nueva instancia cada vez que haya una conexión. Para que esto persista entre las conexiones, puede crear un servicio xinetd usando la siguiente configuración:

service testservice { port = 5900 socket_type = stream protocol = tcp wait = yes user = root server = /usr/bin/netcat server_args = "-l 5900 < /dev/ttyS0" }

Asegúrese de cambiar el / dev / ttyS0 para que coincida con el dispositivo en serie con el que intenta interactuar.


No necesita escribir un programa para hacer esto en Linux. Simplemente canalice el puerto serie a través de netcat .

netcat www.example.com port </dev/ttyS0 >/dev/ttyS0

Simplemente reemplace la dirección y la información del puerto. Además, puede estar utilizando un puerto serie diferente (es decir, cambiar la parte /dev/ttyS0 ). Puede usar los comandos stty o setserial para cambiar los parámetros del puerto serie (velocidad en baudios, paridad, bits de parada, etc.).


Puede encontrar esto útil para la parte TCP / IP y los puertos seriales, de modo que puede obtener mucha ayuda aquí . Tenga en cuenta que todo en Linux es "un archivo", por lo que probablemente pueda "cat" el serialport.