2010-01-19 7 views
5

Ich arbeite an Treiber, der mit einem Gerät über eine serielle Schnittstelle in C# spricht. Ich habe nicht immer das Gerät zur Verfügung, um physikalische Tests mit zu machen. Gibt es eine Möglichkeit, ein Gerät an einer seriellen Schnittstelle so zu simulieren, dass es optimal reagiert?Wie simulierst du ein serielles Gerät?

Antwort

8

Holen Sie sich einen zweiten COM-Port und verwenden Sie ein Nullmodemkabel, um die COM-Ports zu verbinden, damit zwei C# -Programme miteinander kommunizieren können.

6

Ich verwendete Com0Com für eine Weile und schrieb einige Simulator/Emulator-Code.

0

Bei der Arbeit in einem Team, das einige benutzerdefinierte Hardware entwarf, benutzte ich einen großartigen Terminalemulator namens ZTerm (nur für Mac, glaube ich). Es erlaubt Ihnen, Antworten zu schreiben, die es mir ermöglichten, die Software zu unserer vorher vereinbarten Spezifikation zu vervollständigen, während sich die kundenspezifischen Controller-Chips noch in der Design-Iterationsstufe befanden.

1

Welche Art von Treiber? Wenn es der Treiber der seriellen Schnittstelle ist, wird das ziemlich schwierig.

Wenn Ihr Treiber jedoch eine Anwendungsebene über dem Windows-Gerätetreiber ist, ist es ziemlich einfach, das E/A-Verhalten zu ersetzen, indem Sie die an CreateFile übergebene Zeichenfolge oder die darüber liegende Ebene ändern.

== == Mehr

Da Sie die .net-Bibliothek-Tools verwenden, diese Technik zu eklig sein kann zu stören. Die Idee ist es jedoch zu ersetzen, wo zu irgendeinem Zeitpunkt Ihr Code sagt COM1: oder was auch immer. Ändere das als eine Datei mit den simulierten Daten, sagen wir `c: /com1testdata.txt '. Ein zusätzlicher Emulationscode, der den Inhalt der Datei für Pausen und/oder Antworten erkennt, könnte für einige Protokolle nützlich sein. Daten, die in den Port geschrieben werden, können je nach Ihren Anforderungen protokolliert oder ignoriert werden.

+0

Es ist ein Application-Layer-Treiber und ich benutze nur die .NET-Serien-Tools zum Senden und Empfangen von Zeichenfolgen auf dem Port ... Können Sie mir ein wenig mehr Informationen geben? – PICyourBrain

0

Wenn Sie in einer VM ausgeführt werden, können Sie möglicherweise Dinge an die serielle Schnittstelle anhängen. Mit QEMU können Sie beispielsweise den virtuellen seriellen Port an ein TTY anschließen, mit dem Sie dann entweder manuell oder mit einem Programm interagieren können, das auf dem Host ausgeführt wird.

Verwandte Themen