Problema
- A nuestro alrededor hay muchos dispositivos que se conectan mediante puertos seriales (comúnmente llamados puertos COM). Módulos GPS, IRDA, etc.
- Lo que queremos es conectar el dispositivo físico a una sola computadora y ejecutar la aplicación desde un equipo remoto a través de la red
- Como la aplicación solo puede leer datos desde un puerto serial, el cliente debe usar un puerto serial virtual
- Por lo tanto, necesitamos lo siguiente
- Un servidor que se comunique con el dispositivo a través del puerto serial físico y lo publique por la red
- Un cliente conectado al servidor
- Un puerto serial virtual
Solución
- Una de las soluciones es usar Telnet junto con RFC2217 - Opción de control de puerto COM para Telnet
- Esto resuelve perfectamente el problema anterior
- Hay mucho software que soporta reenvío de puertos seriales con Telnet+RFC2217 (servidores y clientes compatibles con Windows y Linux)
- Si hace falta, se puede multiplexar el puerto COM o cifrar los datos transmitidos
Ejemplos de implementación
Windows
- El servidor se implementa con hub4com
- El cliente usa hub4com y el controlador de puerto serial virtual com0com
Linux
- El servidor se implementa con ser4net
- El cliente usa el comando socat
5 comentarios
Con
com0com, al conectar dos puertos seriales, es posible desarrollar y probar software de comunicación serial sin hardware adicional.Todavía me queda un módem externo en casa, pero ya no tengo línea telefónica.
Antes desarrollé bastante CTI, así que conseguí una central telefónica antigua de segunda mano y la dejé en la oficina.
También compré una tarjeta Dialogic en eBay jaja.
Ahora que también salió la API en tiempo real de OpenAI, quería intentar desarrollar GeekNews para escucharlo por teléfono... pero uf, tengo tantas cosas que hacer que lo sigo posponiendo.
Hace muchísimo que no escuchaba la expresión puerto COM jaja.
Hoy en día hay mucha gente que ni siquiera usa computadoras de escritorio, así que capaz ni sabe qué es.
De forma similar, también es posible acceder a USB a través de la red.