2010-01-19 23 views
5

Estoy trabajando en un controlador que habla con un dispositivo a través de un puerto serie en C#. No siempre tengo el dispositivo disponible para hacer pruebas físicas con. ¿Hay alguna manera de simular un dispositivo en un puerto serie para que responda de manera ideal?¿Cómo se simula un dispositivo serie?

Respuesta

8

Obtenga un segundo puerto COM y use un cable de módem nulo para conectar los puertos COM para permitir que dos programas C# hablen entre sí.

6

Usé Com0Com por un tiempo y escribí un código de simulador/emulador.

0

Cuando trabajaba en un equipo diseñando hardware personalizado usé un gran emulador de terminal llamado ZTerm (solo disponible para Mac, creo). Le permite escribir respuestas que me permitieron completar el software según nuestra especificación previamente acordada, mientras que los chips del controlador personalizado aún estaban en la etapa de iteración del diseño.

1

¿Qué tipo de controlador? Si es el controlador de interfaz en serie, entonces eso se vuelve bastante complicado.

Sin embargo, si su controlador es un nivel de aplicación por encima del controlador de dispositivo de Windows, entonces es bastante fácil reemplazar el comportamiento de E/S alterando la cadena pasada a CreateFile, o cualquier capa encima de C#.

== == Más

Dado que utiliza las herramientas de la biblioteca .NET, esta técnica puede ser demasiado asqueroso molestar. Sin embargo, la idea es reemplazar donde, en algún momento, su código dice COM1: abierto o lo que sea. Cambie eso para que sea un archivo que tenga los datos simulados, diga `c: /com1testdata.txt '. El código de emulación adicional que reconoce los contenidos del archivo para pausas y/o respuestas puede ser útil para algunos protocolos. Los datos que se escriben en el puerto se pueden registrar o ignorar, según sus requisitos.

+0

Es un controlador de capa de aplicación y solo uso las herramientas de serie .NET para enviar y recibir cadenas en el puerto ... ¿Me puede dar un poco más de información? – PICyourBrain

0

Si está ejecutando en una máquina virtual, es posible que pueda adjuntar cosas al puerto serie. QEMU, por ejemplo, le permite conectar el puerto serie virtual a un TTY, con el que puede interactuar manualmente o con un programa que se ejecuta en el host.

Cuestiones relacionadas