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
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í.
Usé Com0Com por un tiempo y escribí un código de simulador/emulador.
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.
¿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.
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.
- 1. Android simula la ubicación en el dispositivo?
- 2. ¿Simula un dispositivo de bloque defectuoso con errores de lectura?
- 3. Recomendaciones para un dispositivo de serie económico
- 4. Dispositivo serie virtual en Python?
- 5. ¿Cómo se simula escribir usando jQuery?
- 6. C: ¿Cómo se simula una 'excepción'?
- 7. ¿Cómo se simula el evento táctil?
- 8. ¿Cómo se simula un clic completo con Java Swing?
- 9. Recuperando el número de serie del dispositivo
- 10. Generando un número de serie específico del dispositivo
- 11. ¿Cómo se simula el error "MYSQL se ha ido"?
- 12. ¿Cómo se crea un dispositivo virtual io en Linux que transmite datos a un dispositivo real?
- 13. ¿Cómo encontrar el UUID del puerto serie del dispositivo Bluetooth?
- 14. Simula un método en la misma clase que se prueba
- 15. ¿Cómo se simula el envío del formulario con jQuery?
- 16. ¿Cómo se simula poca memoria en el emulador de Android?
- 17. ¿Cómo encontrar qué dispositivo está conectado a un puerto serie USB en Linux usando C?
- 18. ¿Cómo controlar un dispositivo serial en Android?
- 19. Número de serie del dispositivo USB leído en C#
- 20. ¿Simula un navegador en Ruby, con cookies?
- 21. Aplicación simple que simula un accesorio bluetooth
- 22. ¿Cómo se desarrollan generadores/grietas en serie?
- 23. ¿Cómo registrar un número de serie en un archivo ejecutable?
- 24. Simula un objeto con un constructor - Rhino Mocks
- 25. ¿Cómo se simula un transportador en el motor de física de bala?
- 26. ¿Tubería en la línea de comandos que simula un archivo?
- 27. Liberación de un puerto serie virtual desconectado
- 28. Cómo se obtiene el nombre del dispositivo de un iPhone
- 29. ¿Cómo se usa File Explorer en un dispositivo rooteado?
- 30. ¿Cómo se determina la velocidad de un dispositivo Android?
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