Pregunta

Estoy tratando con algunos sistemas heredados que utilizan RS232 para comunicarse con los periféricos. No estoy muy experimentado con interfaz COM. Tengo algo de código que puede abrir y utilizar los puertos COM, pero no puedo abrir los puertos que son utilizados por otras aplicaciones. Necesito cuadro negro de los paquetes de manera que podemos utilizar el mismo protocolo para las comunicaciones actualizados.

¿Hay alguna manera de "intermediario" paquetes entrantes a un puerto COM abierto y detectar qué paquetes se están enviando? Estoy usando .NET, pero estoy abierto a cualquier tipo de solución.

(me encontré este por ahí, pero no creo que esto va a funcionar para mí.)

¿Fue útil?

Solución

He usado com0com - que es ideal para la creación de puertos COM virtuales -. Que no le ayuda en absoluto

La interfaz de puerto COM es básicamente un 'archivo leído'. Mi solicitud de una excepción cuando intento conectar a un puerto COM que ya tiene otra lectura de la misma instancia. No estoy seguro de si podría intentar abrirlo como 'sólo lectura' en lugar de lectura-escritura, pero vale la pena intentarlo.

Usted debe ser capaz de escribir un puerto COM virtual que puede bifurcar fuera de sus datos a un archivo de registro. Com0com es de código abierto, por lo que podría utilizar como punto de partida.

Otra posible solución podría ser la de recoger una rs232 cable divisor horquillas de la señal serie a otro puerto serie.

O otra posibilidad es un programa de serie Sniffer (o un abierto fuente sniffer ).

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

Otros consejos

  

¿Hay alguna manera de "intermediario"

Sí, hay muchos. Fuertemente apoyada en Windows a través del concepto de un "controlador de filtro". un conductor de este tipo puede ser insertado por delante de un controlador que llegar solicitudes de E / S y ve todo lo que pasa. Normalmente destinada a alterar las solicitudes de E / S, pero también muy adecuado para una simple revisión de las solicitudes. Hombre en el medio.

El ejemplo canónico de un conductor de este tipo es el SysInternals' utilidad PortMon . te muestra todo lo que una aplicación envía y recibe a / desde un puerto serie, incluyendo la configuración y datos. Hay muchas de estas aplicaciones, sólo Google "controlador de filtro de puerto serie" (pesado en ejemplos de código fuente) y "monitor de puerto serie".

Una nota al pie con esto, tienden a tener un problema en una versión de 64 bits de Windows. La gran mayoría de estas aplicaciones, incluyendo PortMon, sólo funcionan en la versión de 32 bits. La versión de 64 bits sólo permite controladores certificados para ser instalado, hay muy poco dinero en la venta de estas aplicaciones para justificar el gasto. Cuidado con esto cuando vaya de compras.

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

hub4com configuración implicará el asistente "Agregar nuevo hardware". Si usted tiene una gran cantidad de máquinas, máquinas geográficamente separadas, o los usuarios que no son afines a la tecnología y carecen de los permisos necesarios, la instalación podría ser incómodo.

Si se trata de una aplicación heredada, ¿nos vendrá ntvdm? Si es así, usted podría funcionar en DOSBox lugar y alterar el código DOSBox para escribir en un archivo, además de envío / recepción a / desde el puerto serie. DOSBox es plataforma cruzada también.

También es posible usar TCPcom para convertir los datos en paquetes Ethernet y monitor se con Wireshark - y también difundirlo en otros lugares. A continuación se usa otra instancia de TCPcom remitirlo a cualquier puerto COM se quiere - que incluye un puerto COM virtual. Ahora que ha secuestrado esencialmente los datos a través de Ethernet. https://sourceforge.net/projects/combytcp/?source=directory

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top