Virtuellen COM-Port für die Softwareentwicklung erzeugen

Entwickelt man eine Software die über einen COM-Port mit einem Gerät kommuniziert, möchte man dies natürlich testen. Manchmal möchte man aber auch das Gerät entwickeln und die Software existiert schon. In beiden Fällen ist ein virtueller COM-Port eine gute Hilfe.

Man benötigt eine Software, welche dem Betriebssystem vorgaukelt das ein neuer COM-Port gefunden und mit einem Schnittstellen-Index (z.B. „COM2“) bereitgestellt wurde. Aus Sicht der Applikation welche diesen nutzt, sieht der Port so aus wie ein physikalischer. In wirklichkeit ist es aber nur Software, also ein Virtueller COM-Port.

Bei echten COM-Ports ist irgendwo ein Stück Hardware an dem eine andere Hardware über ein Kabel oder Funk verbunden wird. In unserem Fall soll das andere „Ende“ aber ebenfalls wieder eine Software sein, beispielsweise HTerm, ein Terminalprogramm für alle Arten von serieller Kommunikation. Solche Software verbindet sich ebenfalls nur direkt mit einem COM-Port.

Man macht nun einfach folgendes: Man erzeugt einen weiteren, virtuellen COM-Port (z.B. „COM3“) mit dem man seine Clientsoftware verbindet. Nun werden beide COM-Ports mit einem virtuellen „Null-Modem-Kabel“ verbunden. D.H. die Sendeleitung der einen wird auf die Empfangsleitung der anderen übertragen und umgekehrt.

So können nun die Programme miteinander reden, ohne das echte Hardware im Spiel wäre. Aufgrund des universellen Ansatzes kann jede Software verwendet werden, da sie keine spezielle Schnittstelle benötigt.

com0com

Wohl einer der bekanntesten OpenSource-Vertreter auf diesem Gebiet. Die Software existiert schon sehr lange. Ab Windows 10 läuft der Original-Branch nicht mehr, da Windows für Treiber nur noch „signierte“ Software zur Installation zulässt. Dazu muss der Entwickler bei Microsoft registiert sein und sich ein entsprechendes Treiberzertifikat ausstellen lassen. Mit einigen Klimmzügen kann man auch solche Treiber installieren, aber die dabei entstehenden Gefahren und Umstände stehen in keinem Verhältnis zum Nutzen.

Zum Glück gibt es auch signierte Varianten davon, die von anderen bereitgestellt werden die diese Software in ihrem eigenen Projekt nutzen. Hier z.B. kann man signierte Treiber der Version 3.0.0.0 herunterladen: