visual studio serie serial recibir receive read puertos puerto net listar leer enviar datos data comunicacion .net serial-communication

.net - studio - vb net serial



Escuchar los puertos serie de serie que están en uso (4)

¿Hay alguna manera de "hombre medio"

Sí, hay muchos. Totalmente compatible en Windows a través del concepto de "controlador de filtro". Dicho controlador puede insertarse antes que un controlador que recibe solicitudes de E / S y ve todo lo que pasa. Normalmente está destinado a alterar las solicitudes de E / S, pero también es muy adecuado para controlar simplemente las solicitudes. Hombre en el medio.

El ejemplo canónico de dicho controlador es la utilidad PortMon de los venerables SysInternals . Le muestra todo lo que una aplicación envía y recibe a / desde un puerto serie, incluidos la configuración y los datos. Hay muchas de estas aplicaciones, solo el "controlador de filtro de puerto serie" de Google (que contiene muchos ejemplos de código fuente) y el "monitor de puerto serie".

Una nota al pie con esto, tiende a tener un problema en una versión de Windows de 64 bits. La gran mayoría de estas aplicaciones, incluido PortMon, solo funcionan en la versión de 32 bits. La versión de 64 bits solo permite que se instalen controladores certificados, hay muy poco dinero en vender estas aplicaciones para justificar el gasto. Ten cuidado con esto cuando compras.

Estoy tratando con algunos sistemas heredados que usan RS232 para comunicarse con periféricos. No tengo mucha experiencia con la interfaz COM. Tengo algún código que puede abrir y usar puertos COM, pero no puede abrir puertos que son usados ​​por otras aplicaciones. Necesito poner los paquetes en una caja negra para que podamos usar el mismo protocolo para las comunicaciones actualizadas.

¿Hay alguna forma de "intermediar" paquetes entrantes a un puerto COM abierto y detectar qué paquetes se envían? Estoy usando .NET, pero estoy abierto a cualquier tipo de solución.

(Encontré this por ahí, pero no creo que esto funcione para mí).


He estado en este mismo camino. Un divisor de hardware es la solución más fácil.

La configuración de hub4com incluirá el asistente "Agregar nuevo hardware". Si tiene muchas máquinas, máquinas separadas geográficamente o usuarios que no tienen conocimientos técnicos y carecen de los permisos necesarios, la instalación podría ser incómoda.

Si esta es una aplicación heredada, ¿se ejecuta en ntvdm? Si es así, puede ejecutarlo en DosBox en su lugar y modificar el código de DosBox para escribir en un archivo además de enviar / recibir desde / hacia el puerto serie. DosBox también es multiplataforma.


He usado com0com, es genial para configurar puertos de comunicaciones virtuales, lo que no ayuda en absoluto.

La interfaz del puerto COM es básicamente un ''archivo leído''. Mi aplicación lanza una excepción cuando intento conectarme a un puerto COM que ya tiene otra instancia que lee. No estoy seguro de si podrías intentar abrirlo como ''solo lectura'' en lugar de leer-escribir, pero vale la pena intentarlo.

Debería poder escribir un puerto de comunicaciones virtual que pueda bifurcar sus datos en un archivo de registro. Com0com es de código abierto, por lo que podría usarlo como punto de partida.

Otra solución posible podría ser recoger un cable divisor rs232 y enviar la señal serial a otro puerto serial.

O otra posibilidad más es un programa Serial Sniffer (o un sniffer de código abierto ).

¡O pruebe la aplicación hub4com desde el mismo sitio web com0com!


También puede usar TCPcom para convertir los datos a paquetes Ethernet y monitorearlos con Wireshark, y también transmitirlos a cualquier otro lugar. Luego, usa otra instancia de TCPcom para reenviarla a cualquier puerto de comunicaciones que desee, incluido un puerto de comunicaciones virtual. Ahora, esencialmente, has secuestrado los datos a través de Ethernet. TCPcom